前事不忘,后事之师,不忘国耻!

 注册  找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2826|回复: 0

DB2 与 DB2 之间的远程 SQL 复制(zt)

[复制链接]

DB2 与 DB2 之间的远程 SQL 复制(zt)

[复制链接]
ehxz

主题

0

回帖

7157

积分

管理员

积分
7157
2006-12-22 18:07:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×

级别: 中级

白玉 媛 (baiyy@cn.ibm.com), 软件工程师,IBM 中国软件开发中心,IBM
肖 振春 (xiaozc@cn.ibm.com), 软件工程师, IBM 中国软件开发中心

2006 年 12 月 21 日

本文介绍了基于 SQL 的 DB2 与 DB2 之间的远程复制,力求为初学者掌握 DB2 复制提供一个参考步骤。

本文介绍了基于“SQL复制”的 DB2 与 DB2 之间的远程复制。很多读者反映,对于初学者,由于对 DB2 的复制概念不是很清楚,在实践中或多或少遇到了入手难的问题。本文通过对远程 DB2 之间的复制的介绍,力求为初学者对 DB2 的掌握提供一个参考步骤。

背景

“SQL”复制又称为“DB2 复制”,是为 DB2 开发的两种数据复制类型中的一种,它是通过 SQL 进行的复制。在这里简单提一下,DB2 复制中的另一种”Q 复制”是通过 WebSphere MQ 队列进行的。在进行 SQL 复制时,Capture 程序读取 DB2 恢复日志以获取对指定源表的更改。该程序将更改保存到分级表中,Apply 程序并行读取更改并应用于目标事务。见图 1。


图 1. SQL复制的结构
图 1. SQL复制的结构

动机

商业上用复制出于很多原因,可以归纳为:

  • 分散,把数据分散到各个地方
  • 整合,把其他地方的数据联合起来
  • 交换,与其他地方进行双向的数据交换
  • 灵活应用,对上面提到的进行一些改变或者结合

在企业的生产环境中,常常会遇到把分公司的数据汇总到总公司的情况。这些数据可能分别建立在不同的数据库系统之中,也可能只使用 DB2 数据库。无论哪种情况,都可以通过 IBM 的 DB2 ESE 和 Webshpere II 产品进行操作。如果产品只是 DB2 之间的 SQL 复制,那么生产环境中只需安装 DB2 ESE 即可。

假设用户有两台服务器都在使用 DB2 V8。用户想把其中一台 DB2 V8 中的数据复制到另外一台的 DB2 系统中。这种情况下,可以选定任意一台服务器中的 DB2 作为控制平台,为了方便,本例中直接使用了所要复制到的目标所在的 DB2 V8 为控制平台。如图二所示:


图 2. 数据复制目标图
图 2. 数据复制目标图




回页首


实现的步骤

首先需要确定本地计算机安装了:DB2 ESE(DB2 Enterprise Server Edition)。

本文把复制的过程分为五步介绍,分别为:

  • DB2 数据库环境及配置
  • 编目(Catalog)DB2 数据库
  • 密码配置
  • 建立 DB2 与 DB2 之间的复制过程及错误分析

DB2 数据库环境及配置

在本例中采用了 Windows 2000 运行环境,具体配置见表 1:


表 1. 操作系统环境与 DB2 版本
描述Server AServer B
主机名WSII155db2repl
主机 IP9.181.139.1559.181.138.233
操作系统Windows 2000 Server SP4 (Eng)Windows 2000 Server SP4 (Eng)
DB2 版本V8V8 fp11
DB2 实例拥有者DB2DB2
DB2 TCP 端口5000050000
数据库服务器别名TARGETISOURCE
远程服务器名称WESTEAST

SQL 复制的配置信息见表 2:


表 2. SQL 复制配置信息
描述Server AServer B
SQL Capture SchemaASNASN
SQL Apply SchemaASNASN
SQL Capture 路径C:\sqlrepC:\sqlrep

建立远程连接

1. 在 DB2 CLP 中利用下面的命令把远程服务器编目(catalog)到当前的服务器。


列表 1. 编目(catalog)远程服务器
				
db2 catalog tcpip node EAST remote 9.181.138.233 server 50000
db2 catalog database ISOURCE at node EAST
db2 terminate
			

2. 在服务器 A 上执行命令 db2 list node direcoty可以检查节点 EAST 是不是成功的被编目了。见图 3:


图 3. 查看节点
图 3. 查看节点

这样就把远程的数据库映射到了本地数据库中。见图 4,参考图 3。


图 4. 远程数据编目到本地
图 4. 远程数据编目到本地

3. 通过在服务器 A 上执行命令 db2 list database directory可以检查数据库 ISOURCE 是不是成功的编目了。见图 4:


图 5. 测试从节点 West 到节点 East 的连接情况
图 5. 测试从节点 West 到节点 East 的连接情况

4. 测试从节点 West 到节点 East 的连接情况:


列表 2. 测试节点连接情况
				
db2 connect to ISOURCE user administrator using ***
db2 terminate
			


图 6. 检查两个系统的连接状况
图 6. 检查两个系统的连接状况

配置密码和连接

在进行 capture/apply 服务器的配置之前,首先需要配置密码和连接。如果不配置密码连接,会影响复制。

1. 配置系统密码

本文中需要配置 IP 地址为 9.181.139.155 的系统 WSII155(WEST)和 IP 地址为 9.181.138.233 的系统 db2Repl(EAST)。需要注意的是,复制控制中心建立在 WSII155 系统中,在配置系统密码和参数的时,属于远程服务器的 db2repl 系统需要用其 IP 地址进行配置,如果用机器名 db2repl 可能会出现配置不成功的状况。

打开复制中心:点击复制中心 > 管理密码和连接,见图 7。


图 7. 打开密码和连接管理
图 7. 打开密码和连接管理

如果要测试两个机器的连接情况,则可以选中所需要测试的服务器,这时对话框右边的 Test 按钮会变化到可点击状态,点击 Test 按钮,则会显示当前的连接状态,见图 8。


图 8. 系统密码配置
图 8. 系统密码配置

测试的结果见图 9。


图 9. 测试服务器的连接情况
图 9. 测试服务器的连接情况

2. 配置数据库的密码

与上面的步骤类似,点击“添加”按钮可以增加一个用作 capture/apply 服务器的数据库。可以通过测试按钮进行数据库之间的连接测试。见图 10,图 11。


图 10. 数据库的密码配置
图 10. 数据库的密码配置

图 11. 数据库连接测试成功
图 11. 数据库连接测试成功

3. 密码文件的配置

创建密码文件的步骤为:

  • 把目录转换到所要创建密码文件的文件夹中,例如:C:\>cd sqlrep
  • 敲入 asnpwd,按回车键可查询与密码文件相关的命令
  • 敲入 asnpwd INIT ENCRYPT PASSWORD, 按回车可创建密码文件
  • 依次键入自己需要访问的数据库到密码文件中,例如:asnpwd ADD ALIAS SAMPLE ID db2admin PASSWORD admindb2
  • 想查看密码文件内容,可用命令:asnpwd LIST

见图 12。


图 12. 创建密码文件过程
图 12. 创建密码文件过程

4. SQL 复制的配置过程

首先介绍SQL复制的实现过程。

a. 建立 SQL capture server (ISOURCE) 和 SQL apply server (TARGET)。


图 13. 建立 capture 和 apply server
图 13. 建立 capture 和 apply server

我们能查看到 ISOURCE capture server 的类型是远程(Remote)。


图 14. ISOURCE capture server 的定义
图 14. ISOURCE capture server 的定义

相应的 TARGET apply server 的类型是本地。


图 15. TARGET apply server 的定义
图 15. TARGET apply server 的定义

b. 注册一个远程服务器中的表 QHDSVT.STUDB559 到 ISOURCE 中。


图 16. 注册表
图 16. 注册表

c. 在 TAEGET apply server 中建立订阅集。


图 17. 建立订阅集
图 17. 建立订阅集

d. 在 capture server 和 apply server 所在的系统上建立 password 文件。具体步骤请参阅“创建密码文件”一节。这里需要注意的是,如果数据库所在的 DB2 是 V8,则必须建立 password 文件,否则复制不会成功。若数据库所在的 DB2 是 V9,则可不必建立 password 文件。在此例中,ISOURCE 所在的 DB2 是 V8,所以必须建立 password 文件。

e. 启动capture server,apply server,检查他们的状态。


图 18. 检查 capture,apply 服务器的状态
图 18. 检查 capture,apply 服务器的状态

f. 启动 capture,apply 服务器之后,检查 QHDSVT.STUDB559。看到表已经复制到 target 数据库中。点开目标数据库中的 TGSTUDB559,可以查到所有的数据已经复制到了目标表中。


图 19. 检查 capture,apply 服务器的状态
图 19. 检查 capture,apply 服务器的状态

至此,数据复制成功,整个复制过程结束。


图 20. 数据复制成功
图 20. 数据复制成功

5. 错误分析

编目远程数据库的过程中,读者可能会碰到如下的错误信息:SQL30081N 检测到通信错误。正在使用的通信协议:"TCP/IP"。正在使用的通信API:"SOCKETS"。检测到错误的位置:"9.181.139.155"。检测到错误的通信函数:"connect"。协议特定的错误代码:"10060"、"*"、"*"。 SQLSTATE=08001

原因解析:碰到这种错误可能是由于网络连接的不稳定造成的。

解决方案:检查并保证EAST和WEST两个服务器之间的网络连接是可用的,并且服务器的路径设置正确。此问题也可能由于防火墙的存在而引起。如果服务器有病毒,也可能早晨服务器的网络不能正常工作,因此读者需根据自己的实际情况寻找原因。

读者也可能会碰到如下的错误信息:SQL0332N 没有从源代码页 "1252" 至目标代码页 "1386" 的转换。原因码为 "1"。SQLSTATE=57017

原因解析:这个问题是由于本地和远程服务器之间的 codepage 不同造成的,本例中由于源表服务器和目标表服务器都是英文操作系统,因此不会遇到这一问题。但是客户的环境比较复杂,有可能两个操作系统的语言不同,例如,有中文和英文操作系统等。

解决方案:改变 codepage。用下面的语句检查 codepage:

  • db2 get db cfg for ISOURCE: 检查数据库 ISOURCE 所用的 codepage
  • db2 get db cfg for TARGET: 检查数据库 TARGET 所用的 codepage
  • db2set: 检查当前DB2所在系统的 codepage
用下面的命令改变 DB2 服务器所用的 codepage:
  • db2set db2codepage=serverdb codepage (e.g. "1252")
  • db2 terminate
检查是否连接成功:
  • db2 connect to ISOURCE user administrator using passw0rd
详细细节读者可参阅参考资料中的“理解 DB2 Universal Database 的字符转换”。





回页首


结论

随着DB2的推广,国内越来越多的企业选择使用了DB2产品。但是由于缺乏实践经验,入门往往比较难,本文针对初学DB2的客户:

  • 深入浅出的介绍了如何进行两个DB2服务器之间的数据复制
  • 为读者提供了初步认识DB2复制的平台




回页首


益处

随着“DB2 与 Oracle 之间的远程复制”一文的发表,很多读者写信询问 DB2 与 DB2 之间的远程复制怎么实现。针对读者的需求,写出本文,供广大读者参考。



参考资料

学习

获得产品和技术
  • 从 developerWorks 下载 IBM 试用软件,构建您的下一个开发项目。


作者简介

白玉媛,IBM中国软件开发中心软件工程师,来自 DB2 WebSphere Information Integrator 项目组。从事 DB2 UDB for Linux、UNIX 和 Windows 软件测试和技术支持。目前着重于 DB2 Federation System 和 DB2 Replication。Mail:baiyy@cn.ibm.com


肖振春,IBM中国软件开发中心软件工程师,DB2 Information Integrator(现改名为Websphere Information Integrator)项目组。从事DB2 UDB for Linux、UNIX和Windows软件开发和技术支持。目前着重于DB2 Federation System和DB2 Replication,主要关注SQL、DB2应用程序开发及客户技术支持。

免责申明1、欢迎访问本站,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@dbabbs.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|DBA论坛中国 ( 鲁ICP备20017503号-2 )

GMT+8, 2024-5-4 06:35 , Processed in 0.088955 second(s), 11 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表