|
登录注册 |
☦ 上海交通大学论坛 > 数据库 > 浏览当前帖子 | 手机版 关闭左侧栏 |
在异构环境中数据库复制技术的实现方法 |
【返回本版】 【发表帖子】 【回复帖子】 | 浏览量 4360 回帖数 0 |
wzalanyao 等级 ★ 楼主 发表于 2011/9/19 18:58:07 编 辑 |
||
华中理工大学电力技术研究所 沈宇亮 ---- 在企业级的网络环境中,异种操作系统同时并存的现象越来越普遍地存在, 在部 门级服务器中采用微软的NT服务器,企业的总服务器采用unix服务器。在许多系 统集成 的方案与实施中屡见不鲜,在不同操作系统之间运行的数据库内容的共享是一个 普遍令 人关心的问题。在这里介绍各大数据库均使用的复制技术实现数据向中心汇集, 并可方 便地实现集中式备份。实现的实例是SQL SERVER 6.5向SYBASE 11.9.2 for SCO unix复 制。 ---- 1. 操作环境介绍 ---- 1) NT 4.0中文版 SP4 服务器名:dls SQL SERVER 6.5 数据库 pubs, comm SYBASE OPEN CLIENT 11.9.2 ---- 2) SCO unix 5.03 服务器名: jc Sybase 11.9.2 for SCO unix 数据库 pubs2 ---- 3) 网络间的通讯协议: TCP/IP ---- 2. 复制拓朴 (图略) person的表结构 CREATE TABLE dbo.person( Id int NOT NULL, Name Varchar(10) NOT NULL, CONSTRAINT PK_person PRIMARY KEY CLUSTERED( id ) ) ---- 3. 复制的操作步骤 ---- 1) 以管理员身份的用户启动MSSQL SERVER 及 SQL EXCUTIVE 服务。 ---- 2) 使用SQL Enterprise Manager/Replication Configureation / insta ll publishing制作分发数据库distribution,实验时取数据设备为15M,日志设备为 5M。 ---- 3) 在NT上使用Sybase Central建立一个名为Sybase的服务器,用于联接u nix服 务器上的SQL SERVER并调通。 ---- 4) 在NT服务器上使用第三步建立的服务器建立一个名为Sybase的ODBC 数 据源用 来联接unix服务器。 ---- 5) 使用SQL Enterprise Manager/Replication Configuration/Publish设 置 pubs为出版数据库,并设置两个订阅服务器,一个为dls,另一个为ODBC Subscr iber, 选择已定义好的sybase数据源,并提供登录用户及登录密码。 ---- 6) 使用SQL Enterprise Manager/Replication Configuration/Subscrib e设置 本地的COMM库为订阅数据库。 ---- 7) 设置完后NT显示的复制拓朴图如下所示:(图略) ---- 8)设置向本机复制使用的出版物pub_nt其中包括一篇出版文章为person ---- 9) 以同样的方法设置向unix服务器的复制使用的出版物pub_unix,注意进 行设置 时Synchronization选项卡中的initial Synchronizaton的method 为Bulk Data Copy – Character Format ( Compatibility ) ---- 10)把pub_nt的内容发向dls的comm数据库,同步的类型可以选为手工同步, 自动 同步或不同步中的任意一种。 ---- 11)把pub_unix的内容发向sybase服务器的pubs2数据库,同步的方法只能设 为不 同步(No Data Synchronization ) ---- 12)向NT的pubs数据库中插入三行数据。 Insert person values( 1, ‘a’ ) Insert person values( 2, ‘b’ ) Insert person values( 3, ‘c’ ) ---- 13)查看NT的distribution库中msjob_commands表内容,发现SQL SERVER 日志读 任务可以完整地记录下对数据库的操作。列表如下: publisher_id publisher_db job_id command_id art_id incomplete command ------------ -------------- --------------------- 0 pubs 14 1 6 0 insert into "person" values (1, 'a') 0 pubs 14 2 7 0 insert into "person" values (1, 'a') 0 pubs 15 1 6 0 insert into "person" values (2, 'b') 0 pubs 15 2 7 0 insert into "person" values (2, 'b') 0 pubs 16 1 6 0 insert into "person" values (3, 'c') 0 pubs 16 2 7 0 insert into "person" values (3, 'c') ---- 14)查看二个目的数据库中的person表,看新插入的记录是否成功地把表内 容复制 到目的表中,如没有则需要看分发任务(任务类型为distribution)的执行情况 。依据 错误提示进行修改。常见的操作可能是服务器未联上或延时错误等。 |
1 |
论坛帮助 会员认证删帖申请 联系我们 |