拼吾爱程序人生数据库编程SQL Server 异地SQL Server与Oracle数据同步解决方案

1  /  1  页   1 跳转 查看:3084

异地SQL Server与Oracle数据同步解决方案

异地SQL Server与Oracle数据同步解决方案

文/cobra  出处/拼吾爱

最近公司一个项目,涉及到异地、异构数据库服务器的数据同步问题,搜集了一些资料并经过大量测试,总结了一套方案出来,希望对有相同业务需求的开发人员有所帮助:)

工作环境:SQL Server2000(Windows XP)、Oracle 8i(Windows 2003)、

准备工作:
使用Oracle的Net8 Configuration Assistant工具注册目标服务器;

一、建立链接目标服务器:
SQL语句:
创建:
sp_addlinkedserver '别名', 'Oracle', 'MSDAORA', '服务名'
GO
EXEC sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='oracle用户名',@rmtpassword='密码'
删除:
IF EXISTS (SELECT srvname FROM master.dbo.sysservers srv WHERE srvid != 0 AND srvname = N'链接服务器别名') EXEC master.dbo.sp_dropserver @server=N'链接服务器别名', @droplogins='droplogins'

二、创建发布服务器
企业管理器——复制——右键点发布内容选择新建发布,具体根据下面图示完成;






















友情提示:此文并不表示本站肯定持有相同观点,转载请注明出处。
 您可能对 [SQL Server] 的这些文章也感兴趣:

用SQLServer2000索引视图提高性能(下)  SQL Server 2008 Feb CTP开放下载
Microsoft SQL Server 2005 中的 XML 支持(1)  解读SQL Server 2008的新语句MERGE
SqlServer事务日志文件的“置疑”排除  SQL Server中的新数据类型:HierarchyId
如何获取SQL Server数据库里表的占用容量大小  微软将在八月发布SQL Server 2008
SQL Server 2005无法重装问题的解决办法  SQL Server静态页面导出技术2
在 SQL Server 2005 中查询表结构及索引  SQL Server静态页面导出技术4
如何在SQL Server中使用CLR调用.NET方法  SQL2005 在程序中调用另外一个预存程序
SQL Server 2008的Change Data Capture功能  数据库升迁从sqlserver6.5到sqlserver2000
使用ADO.NET配置SQL Server事务处理  SQL Server中全角和半角字符的比较问题
使用SQL Server 2000索引视图提高性能  电信肆意关停服务器 中小站长陷入恐慌混乱
 

回复: 异地SQL Server与Oracle数据同步解决方案

三、创建订阅服务器
企业管理器——复制——右键点发布内容选择配置发布、订阅服务器和分发,里面选择订阅服务器项,点新建——选择OLE DB数据源确定——里面选择链接服务器——在下面输入建立链接服务器时的用户和密码(如果没有可以空着)——应用确定,具体根据下面图示完成;





注意这里:是点新建按钮到下一步,上图显示的打勾的选项是在下面步骤完成后才会出现。




注意这里:如果准备工作里的注册目标服务器顺利完成的话,上图的选择框里应该有注册的服务器选项,选择后在下面的订阅服务器登录里输入帐号和密码确定即可,如果准备工作没有进行则直接点击添加到下一步。


注意这里:提供程序名称里选择OLE DB提供的ORACLE程序。其他按照注册服务器相关资料填写即可。

完成后会出现类似步骤二的提示窗口出现。
 

回复: 异地SQL Server与Oracle数据同步解决方案

四、连接订阅服务器
企业管理器——复制——右键点发布内容里面的刚才创建的发布服务器选择强制新订阅——点下一步——选择刚才配置的订阅服务器点下一步下来,具体按下面图示完成;






注意这里:选择上面步骤创建的订阅服务器。




注意这里:如果你在目标服务器上已经建立与源服务器相同的库结构、表结构,则如图选择否,否则选择是。



 

回复: 异地SQL Server与Oracle数据同步解决方案

五、修改代理程序属性
企业管理器——复制——右键点发布内容里面的刚才创建的发布服务器选择属性——选择状态项——选择代理程序属性——选择调度项——编辑需要的调度作业时间保存,具体请按下面图示完成;












上述过程全部顺利完成后,不要忘了一些小细节,比如启动作业或者解决SQL Server与Oracle字段类型不一致等问题,祝你好运!
 

回复: 异地SQL Server与Oracle数据同步解决方案


还是我实现 的
搂主 应该给我加分
 

回复: 异地SQL Server与Oracle数据同步解决方案



引用:
原帖由 licaiks 于 2008-4-17 15:36:00 发表

还是我实现 的
搂主 应该给我加分


我的灵感,,,
 

回复:异地SQL Server与Oracle数据同步解决方案

上述方案里在实际操作中需要注意几点:
一、该方案最好应用于局域网,在互联网上受限于带宽,大数据量下效率低得几乎失去同步的意义;

二、实施过程中需要注意的几点:
1、Win2000+Oracle8i客户端实施该方案还要修改注册表:
[hkey_local_machine\software\microsoft\msdtc\mtxoci
"oraclexalib"="oraclient8.dll" 
"oraclesqllib"="orasql8.dll" 
"oracleocilib"="oci.dll"

2、解决报错“ole db提供程序MSDAORA报错”:
连接SQL:sp_addlinkedserver 'goldwl', 'Oracle', 'MSDAORA', 'goldwl'
GO
EXEC sp_addlinkedsrvlogin @rmtsrvname='goldwl',@useself='false',@locallogin=null,@rmtuser='system',@rmtpassword='manager'

3、解决报错“请提供@job_id或@job_name来标识作业”:
重建MASTER:运行Program Files\Microsoft SQL Server\80\Tools\Binn\里的Rebuildm.exe。

基于互联网的数据同步解决稍后我会公布一个更具实际操作价值的方案出来
 
1  /  1  页   1 跳转

版权所有 拼吾爱程序人生 

Powered by Discuz!NT 2.1.202    Copyright © 2001-2008 Comsenz Inc. 鄂ICP备07500843号
返顶部