Sql server2000 到oracle 的数据库同步(快照形式)(部分质料收集自网页,测试成功)
----------------------------------------------------------------------------------------------------------------------------------------------
利用sql server的复制技术和oracle的odbc数据源我们可以实现数据库的同步,下面是一个从sql server到oracle数据同步的单向实现。
----------------------------------------------------------------------------------------------------------------------------------------------
首先安装sql server2000数据库和oracle10g数据库,在一般情况下数据库建好以后,在企业管理器里看到的sql注册是(local)(windows NT)
Sql server复制技术不支持昵称,例如使用“(local)”作为服务器名。因此我们需要这个服务的sql server注册,创建新的服务器就行注册。
步骤一:
先删除这个名为local的sql server注册,然后右击sql server组,新建sql server注册---》下一步,在可用的服务器的文本框会自动显示你的计算机名称我这是qb(在这里也可以在客户端网络使用工具失眠配置计算机的别名也可以实现这一步),点击添加,添加到“添加的服务器里”--一直下一步就好了。步骤二:
在要发布的数据库里面创建要发布的测试表。
单击刚刚以计算机名建好的sql server 注册,以选中它--》工具--》复制--》配置发布、订阅服务器和分发---》一直下一步到选择快照文件夹路径“\\qb\c$\Program Files\Microsoft SQL Server\MSSQL\ReplData”使用特殊的共享名称,该名称通常只能由在计算机“SEOGIRL”上有管理权限的登录访问。此共享可能不能由在其它计算机上运行的代理程序访问,例如请求订阅的代理程序。点击下一步到有提示确实要使用此快照文件夹路径吗?这一步要选择否;我们需要手动建一个问价夹:例如在C盘根目录下:建一个c:\ReplData,在这个文件夹的属性里设置“共享此文件夹”,然后返回咱们刚才的“快照文件夹”,在里边选择刚建的文件夹目录--》下一步--》下一步--》完成--》关闭
步骤三:配置发布和分发服务器和订阅服务器:
点击‘数据库’然后在菜单里面选择---工具----复制----》配置发布和分发服务器和订阅服务器,在这之前我们要配置oracle数据源。
首先我们要在oracle的net congigure assistant里面配置连接,
选择第三项下一步:
服务器名称就是你的oracle数据接口名称---下一步—》主机名就选你要连接的oracle的主机地址,要是本机的话就是loaclhost,要是吉他主机的话直接输入ip就可以了。然后一直下一步完成;接下来在控制面板里面---选择管理工具---数据源(odbc)选择系统dns:
点击添加:
选择mircosoft odbc for oracle确定后就是输入相关你的oracle数据库的信息:
输入相关信息
然后确定;关闭
返回到:sql server-工具----复制----》配置发布和分发服务器和订阅服务器,
选择发布服务器---》新建
输入你的发布服务器名称就是一开始新建的那个服务器注册名----》点击使用windows身份验证----》确定
接下点击发布数据库选择要发布的数据库
接下来点击订阅服务器----》点击新建---》点击ole db数据源—确定---》点击添加
在第一个文本框输入你的oracle连接数据库名称
服务器类型选择其他数据库---》选择mircosofe ole db provider oracle,产品名称可以不输入,
数据库源就是我们刚刚配置的那个
提供程序字符串要按照:UID=username;PWD=password输入就可以点击确定。
接下来选择 工具---》复制—》创建和管理发布---》选择要发布的数据库点击创建发布—》
一直点击到
我在这用的是快照发布---点击下一步—》
我们要用oeacle来订阅所以选择第三项:
下一步选择要发布的数据库表:然后一直点击到完成;
步骤四:
在发布内容里面的发布项里面点击右键选择强制订阅项:
下一步:
选择启动的oracle订阅服务器:
下一步一直点击到完成这样就创建了oracle对sqlserver相关表的订阅:
步骤5:
在发布内容项里面点击右键:属性:选择状态:点击代理程序属性—》-选择调度—》编辑—》更改—》选择同步代理程序的发生周期我这选的是1分钟,也就是每隔一分钟代理程序就会启动来同步sqlsever发布的表的数据到oracle数据库里面;如果成功的话你会在你的oracle数据库里面发现一面已经多了一张你在sqlserver里面建立的测试表;数据也一致,有兴趣的可以研究下。
-------------------------------------
当然我么在使用的时候可以选择增量的方式来建立这种同步事务,这样在源数据没有事务发生的情况下,代理程序就不会启动,就会处于空闲状态,当源数据有事务发生,比如添加或删除一条记录,这个发布服务器就会启动代理程序来同步这种事务到目标数据库里面。这应该是比较理想的做法。