db2数据库复制.docx
- 文档编号:17901048
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:15
- 大小:233.57KB
db2数据库复制.docx
《db2数据库复制.docx》由会员分享,可在线阅读,更多相关《db2数据库复制.docx(15页珍藏版)》请在冰点文库上搜索。
db2数据库复制
DB2与DB2之间的远程SQL复制
白玉媛 (baiyy@),软件工程师,IBM中国软件开发中心,IBM
肖振春 (xiaozc@),软件工程师,IBM中国软件开发中心
简介:
本文介绍了基于SQL的DB2与DB2之间的远程复制,力求为初学者掌握DB2复制提供一个参考步骤。
标记本文!
发布日期:
2006年12月21日
级别:
中级
访问情况 2363次浏览
建议:
0 (添加评论)
平均分(共3个评分)
本文介绍了基于“SQL复制”的DB2与DB2之间的远程复制。
很多读者反映,对于初学者,由于对DB2的复制概念不是很清楚,在实践中或多或少遇到了入手难的问题。
本文通过对远程DB2之间的复制的介绍,力求为初学者对DB2的掌握提供一个参考步骤。
背景
“SQL”复制又称为“DB2复制”,是为DB2开发的两种数据复制类型中的一种,它是通过SQL进行的复制。
在这里简单提一下,DB2复制中的另一种”Q复制”是通过WebSphereMQ队列进行的。
在进行SQL复制时,Capture程序读取DB2恢复日志以获取对指定源表的更改。
该程序将更改保存到分级表中,Apply程序并行读取更改并应用于目标事务。
见图1。
图1.SQL复制的结构
动机
商业上用复制出于很多原因,可以归纳为:
∙分散,把数据分散到各个地方
∙整合,把其他地方的数据联合起来
∙交换,与其他地方进行双向的数据交换
∙灵活应用,对上面提到的进行一些改变或者结合
在企业的生产环境中,常常会遇到把分公司的数据汇总到总公司的情况。
这些数据可能分别建立在不同的数据库系统之中,也可能只使用DB2数据库。
无论哪种情况,都可以通过IBM的DB2ESE和WebshpereII产品进行操作。
如果产品只是DB2之间的SQL复制,那么生产环境中只需安装DB2ESE即可。
假设用户有两台服务器都在使用DB2V8。
用户想把其中一台DB2V8中的数据复制到另外一台的DB2系统中。
这种情况下,可以选定任意一台服务器中的DB2作为控制平台,为了方便,本例中直接使用了所要复制到的目标所在的DB2V8为控制平台。
如图二所示:
图2.数据复制目标图
回页首
实现的步骤
首先需要确定本地计算机安装了:
DB2ESE(DB2EnterpriseServerEdition)。
本文把复制的过程分为五步介绍,分别为:
∙DB2数据库环境及配置
∙编目(Catalog)DB2数据库
∙密码配置
∙建立DB2与DB2之间的复制过程及错误分析
DB2数据库环境及配置
在本例中采用了Windows2000运行环境,具体配置见表1:
表1.操作系统环境与DB2版本
描述
ServerA
ServerB
主机名
WSII155
db2repl
主机IP
9.181.139.155
9.181.138.233
操作系统
Windows2000ServerSP4(Eng)
Windows2000ServerSP4(Eng)
DB2版本
V8
V8fp11
DB2实例拥有者
DB2
DB2
DB2TCP端口
50000
50000
数据库服务器别名
TARGET
ISOURCE
远程服务器名称
WEST
EAST
SQL复制的配置信息见表2:
表2.SQL复制配置信息
描述
ServerA
ServerB
SQLCaptureSchema
ASN
ASN
SQLApplySchema
ASN
ASN
SQLCapture路径
C:
\sqlrep
C:
\sqlrep
建立远程连接
1.在DB2CLP中利用下面的命令把远程服务器编目(catalog)到当前的服务器。
列表1.编目(catalog)远程服务器
db2catalogtcpipnodeEASTremote9.181.138.233server50000
db2catalogdatabaseISOURCEatnodeEAST
db2terminate
2.在服务器A上执行命令 db2listnodedirecoty。
可以检查节点EAST是不是成功的被编目了。
见图3:
图3.查看节点
这样就把远程的数据库映射到了本地数据库中。
见图4,参考图3。
图4.远程数据编目到本地
3.通过在服务器A上执行命令 db2listdatabasedirectory。
可以检查数据库ISOURCE是不是成功的编目了。
见图4:
图5.测试从节点West到节点East的连接情况
4.测试从节点West到节点East的连接情况:
列表2.测试节点连接情况
db2connecttoISOURCEuseradministratorusing***
db2terminate
图6.检查两个系统的连接状况
配置密码和连接
在进行capture/apply服务器的配置之前,首先需要配置密码和连接。
如果不配置密码连接,会影响复制。
1.配置系统密码
本文中需要配置IP地址为9.181.139.155的系统WSII155(WEST)和IP地址为9.181.138.233的系统db2Repl(EAST)。
需要注意的是,复制控制中心建立在WSII155系统中,在配置系统密码和参数的时,属于远程服务器的db2repl系统需要用其IP地址进行配置,如果用机器名db2repl可能会出现配置不成功的状况。
打开复制中心:
点击复制中心>管理密码和连接,见图7。
图7.打开密码和连接管理
如果要测试两个机器的连接情况,则可以选中所需要测试的服务器,这时对话框右边的Test按钮会变化到可点击状态,点击Test按钮,则会显示当前的连接状态,见图8。
图8.系统密码配置
测试的结果见图9。
图9.测试服务器的连接情况
2.配置数据库的密码
与上面的步骤类似,点击“添加”按钮可以增加一个用作capture/apply服务器的数据库。
可以通过测试按钮进行数据库之间的连接测试。
见图10,图11。
图10.数据库的密码配置
图11.数据库连接测试成功
3.密码文件的配置
创建密码文件的步骤为:
∙把目录转换到所要创建密码文件的文件夹中,例如:
C:
\>cdsqlrep
∙敲入asnpwd,按回车键可查询与密码文件相关的命令
∙敲入asnpwdINITENCRYPTPASSWORD,按回车可创建密码文件
∙依次键入自己需要访问的数据库到密码文件中,例如:
asnpwdADDALIASSAMPLEIDdb2adminPASSWORDadmindb2
∙想查看密码文件内容,可用命令:
asnpwdLIST
见图12。
图12.创建密码文件过程
4.SQL复制的配置过程
首先介绍SQL复制的实现过程。
a.建立SQLcaptureserver(ISOURCE)和SQLapplyserver(TARGET)。
图13.建立capture和applyserver
我们能查看到ISOURCEcaptureserver的类型是远程(Remote)。
图14.ISOURCEcaptureserver的定义
相应的TARGETapplyserver的类型是本地。
图15.TARGETapplyserver的定义
b.注册一个远程服务器中的表QHDSVT.STUDB559到ISOURCE中。
图16.注册表
c.在TAEGETapplyserver中建立订阅集。
图17.建立订阅集
d.在captureserver和applyserver所在的系统上建立password文件。
具体步骤请参阅“创建密码文件”一节。
这里需要注意的是,如果数据库所在的DB2是V8,则必须建立password文件,否则复制不会成功。
若数据库所在的DB2是V9,则可不必建立password文件。
在此例中,ISOURCE所在的DB2是V8,所以必须建立password文件。
e.启动captureserver,applyserver,检查他们的状态。
图18.检查capture,apply服务器的状态
f.启动capture,apply服务器之后,检查QHDSVT.STUDB559。
看到表已经复制到target数据库中。
点开目标数据库中的TGSTUDB559,可以查到所有的数据已经复制到了目标表中。
图19.检查capture,apply服务器的状态
至此,数据复制成功,整个复制过程结束。
图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:
∙db2getdbcfgforISOURCE:
检查数据库ISOURCE所用的codepage
∙db2getdbcfgforTARGET:
检查数据库TARGET所用的codepage
∙db2set:
检查当前DB2所在系统的codepage
用下面的命令改变DB2服务器所用的codepage:
∙db2setdb2codepage=serverdbcodepage(e.g."1252")
∙db2terminate
检查是否连接成功:
∙db2connecttoISOURCEuseradministratorusingpassw0rd
详细细节读者可参阅参考资料中的“理解DB2UniversalDatabase的字符转换”。
回页首
结论
随着DB2的推广,国内越来越多的企业选择使用了DB2产品。
但是由于缺乏实践经验,入门往往比较难,本文针对初学DB2的客户:
∙深入浅出的介绍了如何进行两个DB2服务器之间的数据复制
∙为读者提供了初步认识DB2复制的平台
回页首
益处
随着“DB2与Oracle之间的远程复制”一文的发表,很多读者写信询问DB2与DB2之间的远程复制怎么实现。
针对读者的需求,写出本文,供广大读者参考。
参考资料
学习
∙“ DB2与Oracle之间的远程复制”(developerWorks,2006年3月)
∙“ 理解DB2UniversalDatabase的字符转换”(developerWorks,2005年6月)
∙红皮书:
APracticalGuidetoDB2UDBDataReplicationV8
∙在 developerWorks中国网站InformationManagement专区 可以找到更多DB2参考资料。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- db2 数据库 复制
![提示](https://static.bingdoc.com/images/bang_tan.gif)