首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用SQLServer2005复制功能实现与Oracle数据库同步

在项目中经常会遇到一个项目操作几个数据库的情况,若是同种类型的数据库也还好说,可以直接链接两个数据库,也可以用数据库的同步功能。若我们的项目使用SQLServer2005进行开发,而且项目中要用到Oracle数据库中的数据,那么又该怎么实现拉?一般来说方案有以下几种。 1.分别建立链接对数据库进行操作,SQLServer可以用ADO.NET,操作Oracle可以用OLEDB或者用System.Data.OracleClient(需要添加引用才能用) 这种方案的优点就是简单,各自写各自的数据库操作代码,缺点就是不能将两个数据库中的表直接进行联合查询,链接Oracle的每台机器必须安装OracleClient才可以使用。 2.使用同义词操作Oracle数据库。 这种方法的具体操作我在以前的文章中已经写清楚了,这样做一来可以进行表的联合查询二来不需要每台机器都安装OracleClient,但是还是有一个缺点:效率低,比如对同义词使用like去查找需要的数据,如果是直接连Oracle数据库也许只要0.1秒就可以找到答案,但是用同义词可能就要等10秒20秒或更久。原来SQLServer并不是直接把查询语句传递给Oracle,让Oracle执行操作,而是将所有数据都取到SQLServer服务器上,边取数据边分析,直到满足查询条件为止。其实这种数据放在两个服务器上还有一个缺点就是一旦Oracle服务器宕机,即使我们这边的所有服务器都是好的,那么我们的程序中用到Oracle数据的地方就无法使用。 3.直接链接Oracle数据库+同义词+作业+异常跳转 方式。 这种方法具体讲就是我们的程序直接用OLEDB(OracleClient)链接Oracle数据库,同时SQLServer服务器也建立了同义词指向Oracle,在SQLServer上建立作业,将同义词中的数据拷贝到SQLServer服务器的表中。一旦Oracle宕机,程序中就会捕捉到异常,于是就使用SQLServer中的数据。这样做比较复杂,需要一定的编程,效率也不是特别高,但是优点也是明细的,平时链接Oralce服务器,异常情况下链接SQLServer中的备份数据,保证了程序的正常运行。 4.直接编写一个程序,以服务或自启动方式一直运行,每隔一段时间将Oracle数据库中的数据写到SQLServer数据库中。 这种方法就是编程复杂,具有很大难度。 5.利用SQLServer2005的复制功能将Oracle数据库中的数据同步到SQLServer服务器中,程序只操作SQLServer,不链接Oracle数据库。 这种方法不需要编写任何代码,由于只对SQLServer进行查询,所以查询效率高可以做多表链接,开发人员也不需要再装OracleClient,也不用害怕Oracle服务器宕机导致我们的相关程序无法使用。优点倒是很多,那么有没有缺点拉?缺点还是有的,主要是取得的数据不是实时的数据,Oracle那边的数据更新了,我们这边还有可能是老数据。 前面的四种方法我就不用多讲了,这次主要是讲第五种方法的具体实现:

01
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Oracle 的安装与基本操作

    在计算机信息安全领域中,数据库系统无疑有着举足轻重的地位。例如,微软的SQL server、IBM的DB2,以及甲骨文公司的Oracle、MySQL等,都是比较知名的数据库管理软件,其中Oracle数据库更是在电信、银行、证券、交通等大型应用场合拥有着绝对领先的优势。 这里我们就来说说Oracle 12c的安装。 Oracle 12c明确支持的Linux操作系统包括Oracle Linux 7、Oracle Linux 6. Oracle Linux 5. Red Hat Enterprise Linux 7、Red Hat Enterprise Linux 6. Red Hat Enterprise Linux 5. SUSE Linux Distributions .NeoKylin Linux Advanced Server Distributions。 因为Red Hat Enterprise 和CentOS属于同步发行的操作系统,所以Oracle 12c也同样支持CentOS7. CentOS6. CentOS5 操作系统。在其他Linux系统中安装时,个别软件或配置文件可能需要做适当调整。

    02

    【数据库健康巡检脚本】支持Oracle、MySQL、SQL Server、PG和OS的检查

    目前一共包含7个脚本,若脚本的扩展名为“.sql”则表示该脚本为sql脚本,若脚本的扩展名为“.pl”则表示该脚本为perl脚本。 对于Oracle的SQL脚本而言,脚本DB_Oracle_HC_lhr_vxxx_10g.sql适用于Oracle 10g数据库,脚本DB_Oracle_HC_lhr_v6.0.8_11g.sql适用于Oracle 11g的数据库,脚本DB_Oracle_HC_lhr_v6.0.8_12c.sql适用于Oracle 12c及其以上版本,这3个脚本都是只读版本,这3个脚本只会对数据库做查询操作,不会做DML和DDL操作,这也是很多朋友所期待的功能。 脚本DB_OS_HC_lhr_v6.0.7.pl是perl脚本,执行后会对OS的信息进行收集,并且输出到html中。 脚本DB_MySQL_HC_lhr_v6.0.8.sql是MySQL脚本,执行后会产生MySQL的健康检查html报告,该脚本为只读脚本。 脚本DB_MSSQL_HC_lhr_v3.2.sql是SQL Server脚本,存在部分DDL和DML操作,执行后会产生SQL Server的健康检查html报告。

    07
    领券