LoveUnix » DB2 & Informix » Db2数据复制预定(自己翻译的,译的一般请大家包涵)
让LU留住您的每

一天 让LU博客留住您的每一天
2003-10-18 18:10 燕狂徒
DB2数据复制<br /><br />在实际应用中可能会需要定时的复制某个服务器上的数据到本地<br />以适应工作的需要<br />由于现在工作中恰恰遇到这个问题,所以好好研究了一下DB2的数据复制预定<br />感觉还是很方便的。定时从OS/390上的DB2复制几个表的数据到6000机器上,<br />这里用window下的db2做例子,基本原文翻译,有些翻译的比较直 :)<br /><br />开始前:<br />1、        确认你已经在你的计算机上安装了DB2 for WINNT;<br />2、        确认DB2控制中心用的默认的设置。否则可能会有问题;<br />3、        创建C:\scripts目录,用来为复制存储SQL文件;<br />4、        用DB2控制中心创建一个新数据库叫做COPYDB,这个库将用来作为目标和控制服务器,创建这个数据库用右键单击 Database文件夹, 按照模板介绍创建一个新的数据库。<br />5、        用第一步(Start -&gt; Programs -&gt; DB2 for Windows NT -&gt; First Steps)创建一个SAMPLE数据库,或者用DB2命令行用db2sampl创建。<br /><br />我们将使用数据SAMPLE中的DEPARTMENT表。内容如下:<br />Table 1. DEPARTMENT table<br />DEPTNO         DEPTNAME         MGRNO         ADMRDEPT         LOCATION <br />A00         SPIFFY COMPUTER SERVICE         000010         A00         - <br />B01         PLANNING         000020         A00         - <br />C01         INFORMATION CENTER         000030         A00         - <br />D01         DEVELOPMENT CENTER         -         A00         - <br />D11         MANUFACTURING SYSTEMS         000060         D01         - <br />D21         ADMINISTRATION SYSTEMS         000070         D01         - <br />E01         SUPPORT SERVICES         000050         A00         - <br />E11         OPERATIONS         000090         E01         - <br />E21         SOFTWARE SUPPORT         000100         E01         - <br />  下面的练习中,还用刚刚创建了SMPLE和COPYDB的用户操作。因为这个用户拥有这两个库的验证信息。<br /><br />计划。<br />设置应用环境。<br />第一步:自定义控制表<br />控制中心在源服务器和目标服务器自动创建控制表,默认情况下,创建的是缺省设置的表,这个设置适合测试但补适合产品环境,在产品环境中要自定义控制表,在做其他的复制任务前必须编辑运行dpcntl.udb文件。<br />1、        在DB2生产服务器上,改变目录到sqllib\samples\repl\下;<br />2、        打开dpcntl.udb文件,如果你是在你的产品环境下,需要编辑运行你需要的自定义控制表的这个文件,在这个试验里不要编辑这个文件。<br />3、        关闭dpcntl.udb文件<br />第二步:定义复制源<br />    在定义了控制表后,到控制中心定义DEPARTMENT表作为复制源。<br />    定义复制源:<br />1、        在目表树,点SAMPLE书库库下的TABLES,在目录中列出存在SAMPLE表中的所有表。<br />2、        右击DEPARTMENT表,选择Define as Replication Source -&gt; Custom,定义复制源窗口打开了;<br />3、        在这个练习里,不用改变任何东西,直接点OK;<br />4、        Run Now or Save SQL 窗口打开:<br />A、        你可以运行SQL现在或是以后,接受缺省设置(save the SQL to a file and run it later),点OK;<br />B、        system name窗口打开,选择OK;<br />C、        下面创建保存SQL的文件,文件浏览器当前目录为c:\scripts,路径中输入replsrc.sql,点OK;<br />提示:默认的SQL文件保存在sqllib目录,自己的环境目录自己定义。<br />5、        运行文件定义复制源:<br />a、        右击Replication Sources选择Run SQL Files;<br />b、        选择刚才建立的replsrc.sql,<br />c、        OK<br />6、        验证DEPARTMENT被定义为复制源,右击Replication Sources -&gt; Refresh,显示在右边的目录中;<br />运行了SQL,控制中心为这个复制源创建了change data(CD)表和一个目标表,也定义了一些复制参数;<br />定义预定:<br />1、        选择Replication Sources,在右边显示的DEPARTMENT右击,选择Define Subscription。这个Define Subscription窗口打开。<br />2、        设置目标表和预定:<br />a、        在Subscription name中命名预定DEPTSUB,<br />b、        在Target server中选择目标数据库COPYDB;<br />c、        在Apply qualifier输入DEPTQUAL,<br />d、        选择要创建的表的复选框;<br />e、        点Change,改变userid.DEPARTMENT to userid.DEPTCOPY,然后返回到Define replication subscription窗口;<br />f、        点Advanced,在Target Columns选DEPTNO为目标表主键,在Rows页面,where窗口中输入指定的信息,如   DEPTNO &gt;=&#39;A00&#39;<br />点OK返回到Define replication subscription窗口。<br />3、        定义预定设置运行时的SQL语句:<br />a、        点SQL打开SQL窗口;<br />b、        点ADD打开添加SQL窗口;<br />c、        指定语句例如:<br />DELETE FROM ASN.IBMSNAP_APPLYTRAIL WHERE LASTRUN<br />&lt; (CURRENT TIMESTAMP - 7 DAYS)<br />d、        在SQLSTATE中输入02000,然后点OK,变量被加到Acceptable SQLSTATE values列表中。(可以定于10条语句)<br />e、        选择At the target server before subscription is processed;<br />f、        选OK,SQL语句被加到SQLwindows中;<br />g、        选OK在SQL window返回到Define replication subscription窗口。<br />4、        点Timing,在Source to Target page of the Subscription Timing页指定复制频率时间。在Data Blocking可以指定1分钟。<br />5、        提交预定设置。<br />a、        点OK在Define replication subscription窗口,Run Now or Save SQL窗口打开;<br />b、        指定控制server,这里选择COPYDB,这个server是要存储预定控制信息的数据库。<br />c、        选择save the SQL file and run it later,然后OK;<br />d、        System name窗口打开,选OK<br />e、        找到c:\scripts目录,在Path输入 replsub.sql,点OK关闭浏览。<br />6、        在SAMPLE下的Replication Subscriptions点右键,选择Run SQL Files.指定第五步生成的replsub.sql文件,OK。<br />7、        刷新Replication Subscriptions。<br />第四步,配置源数据库<br />如果数据库在另外的机器上,那么需要先通过网络登录。<br />  配置Capture:<br />1、        右键SAMPLE选择Configure<br />2、        在Logs页,选择Retain log files for roll-forward recovery and/or Capture,在Value中选择CAPTURE<br />3、        OK保存变量<br />4、        右键SAMPLE,选择Disconnect<br />5、        右击SAMPLE选择Backup -&gt; Database,先备份一下数据库。<br />第五步:bind Capture<br />    bind<br />1、        Start -&gt; Programs -&gt; DB2 for Windows NT -&gt; Command Window。<br />2、        DB2 CONNECT TO SAMPLE<br />3、        到sqllib\bnd目录<br />4、        输入<br />DB2 BIND @CAPTURE.LST ISOLATION UR BLOCKING ALL<br />capture.lst 被创建。<br />手工bind<br />1、        在源创建bind<br />DB2 BIND @APPLYUR.LST ISOLATION UR BLOCKING ALL <br />DB2 BIND @APPLYCS.LST ISOLATION CS BLOCKING ALL<br />       2、连接目标服务器<br />          db2 connect to copydb<br />在目标服务器创建bind<br />   DB2 BIND @APPLYUR.LST ISOLATION UR BLOCKING ALL <br />DB2 BIND @APPLYCS.LST ISOLATION CS BLOCKING ALL<br /><br /><br />第六步,创建口令文件<br />    在C:\scripts创建deptqual.pwd口令文件,内容如下<br />SERVER=SAMPLE USER=userid  PWD=password <br />SERVER=COPYDB USER=userid  PWD=password <br />命名规定<br />1.        Password file naming convention: <br />The password file name is applyqual.pwd; where applyqual is a case-sensitive string that must match the case and value of the Apply qualifier (APPLY_QUAL) in the subscription set table. The file naming convention from Version 5 of DB2 DataPropagator is also supported: ApplyqualInstance_nameControl_server.pwd; which includes the case-sensitive Apply qualifier, the instance name that the Apply program runs under (the default name is DB2, in uppercase), and the name of the control server in uppercase (for example, COPYDB). <br />第七步,复制数据<br />   A、 开始Capture程序<br />在c:\scripts目录下执行<br />     ASNCCP SAMPLE COLD NOPRUNE<br />通常可以不用指定COLD选项,执行这条命令不会有新的命令行出现,它创建一个*.ccp文件。<br />B、开始Apply程序<br />在另一个命令窗口,进到存储了口令文件的目录,输入<br />ASNAPPLY DEPTQUAL COPYDB注意DEPTQUAL必须大写<br />可以在ASN.IBMSNAP_APPLYTRAIL) COPYDB查看信息<br />执行完后可以看到DEPTCOPY表内容<br />Table 2. DEPTCOPY table<br />DEPTNO         DEPTNAME         MGRNO         ADMRDEPT         LOCATION <br />A00         SPIFFY COMPUTER SERVICE         000010         A00         - <br />B01         PLANNING         000020         A00         - <br />C01         INFORMATION CENTER         000030         A00         - <br />D01         DEVELOPMENT CENTER         -         A00         - <br />D11         MANUFACTURING SYSTEMS         000060         D01         - <br />D21         ADMINISTRATION SYSTEMS         000070         D01         - <br />E01         SUPPORT SERVICES         000050         A00         - <br />E11         OPERATIONS         000090         E01         - <br />E21         SOFTWARE SUPPORT         000100         E01         - <br /> <br /><br />在复制环境中操作<br /><br />第一步:在源表中插入两条记录,在命令行:<br />1、连接源服务器<br />db2 connect to SAMPLE<br />2、插入两条记录<br /> DB2 INSERT INTO DEPARTMENT VALUES (&#39;F01&#39;,&#39;TECHNICAL WRITING&#39;,&#39;000110&#39;,&#39;F01&#39;,NULL)<br /><br />DB2 INSERT INTO DEPARTMENT VALUES (&#39;G01&#39;,&#39;PUBLIC RELATIONS&#39;,&#39;000120&#39;,&#39;G01&#39;,NULL)<br /><br />3、连接目标服务器<br />   db2 connect to COPYDB<br />4、验证DB2 SELECT * FROM DEPTCOPY 应显示<br />Table 3. DEPTCOPY table after changes are replicated<br />DEPTNO         DEPTNAME         MGRNO         ADMRDEPT         LOCATION <br />F01         TECHNICAL WRITING         000110         F01         - <br />G01         PUBLIC RELATIONS         000120         G01         - <br />A00         SPIFFY COMPUTER SERVICE         000010         A00         - <br />B01         PLANNING         000020         A00         - <br />C01         INFORMATION CENTER         000030         A00         - <br />D01         DEVELOPMENT CENTER         -         A00         - <br />D11         MANUFACTURING SYSTEMS         000060         D01         - <br />D21         ADMINISTRATION SYSTEMS         000070         D01         - <br />E01         SUPPORT SERVICES         000050         A00         - <br />E11         OPERATIONS         000090         E01         - <br />E21         SOFTWARE SUPPORT         000100         E01         - <br /><br />第二步:剪除控制表<br /><br />1、db2 connect to SAMPLE<br />2、DB2 SELECT COUNT(*) FROM ASN.IBMSNAP_UOW<br />   应该显示有两行<br />3、输入剪除命令ASNCMD SAMPLE PRUNE<br />4、校验DB2 SELECT COUNT(*) FROM ASN.IBMSNAP_UOW,应该显示没有行<br />停止复制预定<br />ASNCMD SAMPLE STOP<br />ASNASTOP DEPTQUAL

2003-10-19 22:48 果壳
燕哥把英文也贴了吧!对照着学习! <!--emo&;)--><img src='style_emoticons/default/wink.gif' border='0' style='vertical-align:middle' alt='wink.gif' /><!--endemo-->

2003-10-20 10:49 燕狂徒
其实就是win下db2的帮助文档<br />C:/Program Files/SQLLIB/doc/html/db2e0/,<br />装个db2,自己找来看吧

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.