<!-- [if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8</w:DrawingGridVerticalSpacing><w:View>Normal</w:View><w:Compatibility></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]-->
  
  
    
      
      
    
    
      
        1.
      
      
        系統環境準備
      
    
    
      
        1.1
      
      
        用戶和組
      
    
    
      
        創建如下用戶,用戶的屬組如下所示:
      
    
    
      
        A機:源數據庫
      
      
      
      
        10.68.22.231
      
    
    
      
      
      
        uid=301(db2inst1)gid=301(db2ig
      
      
        rp1)groups=1(staff),501(mqm)
      
    
    
      
      
      
        uid=303(db2fusr1)gid=30
      
      
        3
      
      
        (db2fgrp1)groups=1(staff),501(mqm)
      
    
    
      
      
      
        uid=501(mqm)gid=501(mqm)groups=1(staff)
      
    
    
      
        uid=305(dasusr1)gid=305(dasgrp1)groups=1(staff),501(mqm)
      
    
    
    
    
      
        B機:目標數據庫
      
      
      
      
        10.68.22.23
      
      
        2
      
    
    
      
      
      
        uid=302(db2inst2)gid=30
      
      
        2
      
      
        (db2igrp
      
      
        2
      
      
        )groups=1(staff),50
      
      
        2
      
      
        (mqm)
      
    
    
      
      
      
        uid=304(db2fusr2)gid=30
      
      
        4
      
      
        (db2fgrp
      
      
        2
      
      
        )groups=1(staff),50
      
      
        2
      
      
        (mqm)
      
    
    
      
      
      
        uid=50
      
      
        2
      
      
        (mqm)gid=50
      
      
        2
      
      
        (mqm)groups=1(staff)
      
    
    
      
        uid=306(dasusr2)gid=306(dasgrp2)groups=1(staff),502(mqm)
      
    
    
    
    
      
        1.2
      
      
        文件系統
      
    
    
      
        在A機創建如下文件系統:
      
    
    
      
        
          | 
              
                文件系統名
              
             | 
              
                大小
              
             | 
              
                裸設備名
              
             | 
              
                描述
              
             | 
        
          | 
              
                /caplog
              
             | 
              
                10G
              
             | 
              
                /dev/caploglv
              
             | 
             | 
        
          | 
              
                /var/mqm/QMCAP
              
             | 
              
                3G
              
             | 
              
                /dev/qmcaplv
              
             | 
             | 
        
          | 
              
                /var/mqm/QMCAP/log
              
             | 
              
                7G
              
             | 
              
                /dev/qmcaploglv
              
             | 
             | 
      
    
    
    
    
      
        在B機創建如下文件系統:
      
    
    
      
        
          | 
              
                文件系統名
              
             | 
              
                大小
              
             | 
              
                裸設備名
              
             | 
              
                描述
              
             | 
        
          | 
              
                /applog
              
             | 
              
                10G
              
             | 
              
                /dev/apploglv
              
             | 
             | 
        
          | 
              
                /var/mqm/QMAPP
              
             | 
              
                3G
              
             | 
              
                /dev/qmapplv
              
             | 
             | 
        
          | 
              
                /var/mqm/QMAPP/log
              
             | 
              
                7G
              
             | 
              
                /dev/qmapploglv
              
             | 
             | 
      
    
    
    
    
      
        2.
      
      
        軟件安裝
      
    
    
      
        2.1
      
      
        DB2UDB安裝
      
    
    
      
        DB2UDB版本情況:
      
    
    
      
        $db2level
      
    
    
      
        DB21085IInstance"db2inst1"uses"64"bitsandDB2coderelease"SQL09013"withlevelidentifier"01040107".
      
    
    
      
        Informationaltokensare"DB2v9.
      
      
        5
      
      
        .0.
      
      
        7
      
      
        ","s070719","U811590",andFixPack"
      
      
        7
      
      
        ".Productisinstalledat"/db2/V9.
      
      
        5
      
      
        ".
      
    
    
      
        2.2
      
      
        WebSphereMQ安裝
      
    
    
      
        $dspmqver
      
    
    
      
        Name:WebSphereMQ
      
    
    
      
        Version:6.0.
      
      
        0
      
      
        .
      
      
        0
      
    
    
      
        CMVClevel:p600-101-060504
      
    
    
      
        BuildType:IKAP-(Production)
      
    
    
      
        2.3
      
      
        注冊Q復制服務器license
      
    
    
      
        在A機注冊Q復制服務器license
      
    
    
      
        $su
      
      
        –
      
      
        db2inst1
      
    
    
      
        $db2licm-awsrs.lic
      
    
    
      
        在B機注冊Q復制服務器license
      
    
    
      
        $su
      
      
        –
      
      
        db2inst1
      
    
    
      
        $db2licm-awsrs.lic
      
    
    
    
    
      
        3.
      
      
        DB2UDB配置
      
    
    
      
        3.1
      
      
        介紹數據環境
      
    
    
      
        在A機和B機上創建數據庫,數據庫名都為
      
      
        BPFDB,apply
      
    
    
    
    
      
        3.2
      
      
        配置編目信息
      
    
    
      
        在A機的db2inst1用戶進行如下編目:
      
    
    
      
        $su
      
      
        –
      
      
        db2inst1
      
    
    
      
        $db2catalogtcpipnode
      
      
        CCZFDB1
      
      
        remote
      
      
        10.68.22.231
      
      
        server
      
      
        50010
      
    
    
      
        $db2catalogtcpipnode
      
      
        CCZFDB
      
      
        2remote
      
      
        10.68.22.232
      
      
        server
      
      
        500
      
      
        2
      
      
        0
      
    
    
      
        $db2catalogdb
      
      
        APPLY
      
      
        atnode
      
      
        CCZFDB
      
      
        2
      
    
    
      
        $db2terminate
      
    
    
    
    
      
        在B機的db2inst2用戶進行如下編目:
      
    
    
      
        $su
      
      
        –
      
      
        db2inst2
      
    
    
      
        $db2catalogtcpipnode
      
      
        CCZFDB1
      
      
        remote
      
      
        10.68.22.231
      
      
        server
      
      
        50010
      
    
    
      
        $db2catalogtcpipnode
      
      
        CCZFDB
      
      
        2remote
      
      
        10.68.22.232
      
      
        server
      
      
        500
      
      
        2
      
      
        0
      
    
    
      
        $db2catalogdb
      
      
        BPFDB
      
      
        atnode
      
      
        CCZFDB1
      
    
    
      
        $db2terminate
      
    
    
    
    
      
        4.
      
      
        WebSphereMQ配置
      
    
    
      
        4.1
      
      
        創建MQ對象
      
    
    
      
        4.1.1.
      
      
        A機MQ配置
      
    
    
      
        $su-mqm
      
    
    
      
        $envMQSPREFIX=
      
      
        /var/mqm/QMCAP
      
      
      
    
    
      
        $crtmqm-ld
      
      
        /var/mqm/QMCAP/log
      
      
        -lc-lf15000-lp30-ls10QMCAP
      
    
    
      
        $strmqmQMCAP
      
    
    
      
        $runmqscQMCAP<crt_cap_obj.tst>crt_cap_obj.log
      
    
    
    
    
      
        創建QMCAP隊列和通道的腳本crt_cap_obj.tst內容:
      
      
      
      
      
    
    
      
        
          | 
              
                DEFINEQLOCAL('DEADQ')MAXMSGL(4194403)MAXDEPTH(5000)
              
             
              
                ALTERQMGRDEADQ('DEADQ')
              
             
              
                DEFINEQLOCAL('ASN.QMCAP.RESTARTQ')DEFPSIST(YES)PUT(ENABLED)GET(ENABLED)MAXMSGL(4194403)MAXDEPTH(5000)
              
             
              
                DEFINEQLOCAL('ASN.QMCAP.ADMINQ')DEFPSIST(YES)PUT(ENABLED)GET(ENABLED)MAXMSGL(4194403)MAXDEPTH(5000)
              
             
              
                DEFINEQLOCAL('ASN.QMAPP_TO_QMCAP.DATAQ')DEFPSIST(YES)SHAREMSGDLVSQ(PRIORITY)MAXMSGL(4194403)MAXDEPTH(5000)
              
             
              
                DEFINEQREMOTE('ASN.QMAPP.ADMINQ')RNAME('ASN.QMAPP.ADMINQ')RQMNAME('QMAPP')XMITQ('QMAPP')DEFPSIST(YES)
              
             
              
                DEFINEQLOCAL('QMAPP')USAGE(XMITQ)DEFPSIST(YES)TRIGGERTRIGTYPE(FIRST)TRIGDATA(QMCAP_TO_QMAPP)INITQ(SYSTEM.CHANNEL.INITQ)MAXMSGL(4194403)MAXDEPTH(5000)
              
             
              
                DEFINEQREMOTE('ASN.QMCAP_TO_QMAPP.DATAQ')RNAME('ASN.QMCAP_TO_QMAPP.DATAQ')RQMNAME('QMAPP')XMITQ('QMAPP')DEFPSIST(YES)
              
             
              
                DEFINECHL('QMCAP_TO_QMAPP')CHLTYPE(SDR)TRPTYPE(TCP)CONNAME('
              
              
                10.68.22.23
              
              
                2
              
              
                (1415)')XMITQ('QMAPP')DISCINT(0)HBINT(300)
              
             
              
                DEFINECHL('QMAPP_TO_QMCAP')CHLTYPE(RCVR)TRPTYPE(TCP)HBINT(300)
              
             
              
                DEFINEQMODEL('IBMQREP.SPILL.MODELQ')DEFSOPT(SHARED)MAXDEPTH(500000)MSGDLVSQ(FIFO)DEFTYPE(PERMDYN)MAXMSGL(
              
              
                5
              
              
                00000)
              
             
              
                ALTERQMGRMAXUMSGS(10000)MAXMSGL(4194403)
              
             
              
                definelistener(listener1)trptype(TCP)control(MANUAL)IPADDR('
              
              
                10.68.22.23
              
              
                1
              
              
                ')PORT(1414)
              
             
              
                startlistener(listener1)
              
             
              
                STARTCHL('QMCAP_TO_QMAPP')
              
             
             | 
      
    
    
    
    
      
        4.1.2.
      
      
        B機MQ配置
      
    
    
      
        創建MQ隊列管理器(QMAPP):
      
    
    
      
        $su-mqm
      
    
    
      
        $envMQSPREFIX=
      
      
        /var/mqm/QMAPP
      
    
    
      
        $crtmqm-ld
      
      
        /var/mqm/QMAPP/log
      
      
        -lc
      
      
        -
      
      
        lf15000-lp30-ls10QMAPP
      
    
    
      
        $strmqmQMAPP
      
    
    
      
        $runmqscQMAPP<crt_app_obj.tst>crt_app_obj.log
      
    
    
    
    
      
        創建QMAPP隊列和通道的腳本crt_app_obj.tst內容:
      
      
      
      
      
    
    
      
        
          | 
              
                DEFINEQLOCAL('DEADQ')MAXMSGL(4194403)MAXDEPTH(5000)
              
             
              
                ALTERQMGRDEADQ('DEADQ')
              
             
              
                DEFINEQLOCAL('ASN.QMAPP.RESTARTQ')DEFPSIST(YES)PUT(ENABLED)GET(ENABLED)MAXMSGL(4194403)MAXDEPTH(5000)
              
             
              
                DEFINEQLOCAL('ASN.QMAPP.ADMINQ')DEFPSIST(YES)PUT(ENABLED)GET(ENABLED)MAXMSGL(4194403)MAXDEPTH(5000)
              
             
              
                DEFINEQLOCAL('ASN.QMCAP_TO_QMAPP.DATAQ')DEFPSIST(YES)SHAREMSGDLVSQ(PRIORITY)MAXMSGL(4194403)MAXDEPTH(5000)
              
             
              
                DEFINEQREMOTE('ASN.QMCAP.ADMINQ')RNAME('ASN.QMCAP.ADMINQ')RQMNAME('QMCAP')XMITQ('QMCAP')DEFPSIST(YES)
              
             
              
                DEFINEQLOCAL('QMCAP')USAGE(XMITQ)DEFPSIST(YES)TRIGGERTRIGTYPE(FIRST)TRIGDATA(QMAPP_TO_Q1)INITQ(SYSTEM.CHANNEL.INITQ)MAXMSGL(4194403)MAXDEPTH(5000)
              
             
              
                DEFINEQREMOTE('ASN.QMAPP_TO_QMCAP.DATAQ')RNAME('ASN.QMAPP_TO_QMCAP.DATAQ')RQMNAME('QMCAP')XMITQ('QMCAP')DEFPSIST(YES)
              
             
              
                DEFINECHL('QMAPP_TO_QMCAP')CHLTYPE(SDR)TRPTYPE(TCP)CONNAME('
              
              
                10.68.22.231
              
              
                (1414)')XMITQ('QMCAP')DISCINT(0)HBINT(300)
              
             
              
                DEFINECHL('QMCAP_TO_QMAPP')CHLTYPE(RCVR)TRPTYPE(TCP)HBINT(300)
              
             
              
                DEFINEQMODEL('IBMQREP.SPILL.MODELQ')DEFSOPT(SHARED)MAXDEPTH(500000)MSGDLVSQ(FIFO)DEFTYPE(PERMDYN)MAXMSGL(
              
              
                5
              
              
                00000)
              
             
              
                ALTERQMGRMAXUMSGS(10000)MAXMSGL(4194403)
              
             
              
                definelistener(listener1)trptype(TCP)control(MANUAL)IPADDR('
              
              
                10.68.22.23
              
              
                2
              
              
                ')PORT(1415)
              
             
              
                startlistener(listener1)
              
             
              
                STARTCHL('QMAPP_TO_QMCAP')
              
             
             | 
      
    
    
    
    
      
        4.2
      
      
        刷新用戶安全信息
      
    
    
      
        在A機刷新實例用戶的MQ安全信息:
      
    
    
      
        $su-mqm
      
    
    
      
        $runmqscQMCAP
      
    
    
      
      
      
      
      
        refreshsecurity
      
    
    
      
      
      
        end
      
    
    
    
    
      
        在B機刷新實例用戶的MQ安全信息:
      
    
    
      
        $su-mqm
      
    
    
      
        $runmqscQMAPP
      
    
    
      
      
      
      
      
        refreshsecurity
      
    
    
      
      
      
        end
      
    
    
      
        5.
      
      
        實施DB2Q復制
      
    
    
      
        以下內容建議使用
        
          windows
        
        
          客戶端編目后的
        
        
          db2rc
        
        
          復制中心實施。
        
      
    
    
    
    
      
        在
        
          DB2RC
        
        
          的所在客戶端驚醒
        
        
          DB2
        
        
          編目:
        
      
    
    
      
        db2=>catalogtcpipnodeCCZFDB1remote10.68.22.231server50010
      
    
    
      
        DB20000ICATALOGTCPIPNODE
        
          命令成功完成。
        
      
    
    
      
        DB21056W
        
          直到刷新目錄高速緩存之后,目錄更改才生效。
        
      
    
    
      
        db2=>catalogtcpipnodeCCZFDB2remote10.68.22.232server50020
      
    
    
      
        DB20000ICATALOGTCPIPNODE
        
          命令成功完成。
        
      
    
    
      
        DB21056W
        
          直到刷新目錄高速緩存之后,目錄更改才生效。
        
      
    
    
      
        db2=>catalogdbAPPLYatnodeCCZFDB2
      
    
    
      
        DB20000ICATALOGDATABASE
        
          命令成功完成。
        
      
    
    
      
        DB21056W
        
          直到刷新目錄高速緩存之后,目錄更改才生效。
        
      
    
    
      
        db2=>db2catalogdbBPFDBatnodeCCZFDB1
      
    
    
      
        SQL0104N
        
          在
        
        
          "
        
        
          語句開始
        
        
          "
        
        
          后面找到異常標記
        
        
          "db2"
        
        
          。預期標記可能包括:
        
        
          "SELECT"
        
        
          。
        
      
    
    
      
        SQLSTATE=42601
      
    
    
      
        db2=>catalogdbBPFDBatnodeCCZFDB1
      
    
    
      
        DB20000ICATALOGDATABASE
        
          命令成功完成。
        
      
    
    
      
        DB21056W
        
          直到刷新目錄高速緩存之后,目錄更改才生效。
        
      
    
    
      
        db2=>terminate
      
    
    
      
        DB20000ITERMINATE
        
          命令成功完成。
        
      
    
    
    
    
      
        C:/IBM/SQLLIB/BIN>
      
    
    
    
    
    
    
    
    
      
        5.1
      
      
        創建Qcapture和Qapply控制表
      
    
    
      
        使用initii.txt腳本產生capture控制表腳本qcapctrl.sql和apply控制表腳本qappctrl.sql。
      
    
    
      
        在源數據庫中執行capture控制表腳本qcapctrl.sql,在目標數據庫中執行apply控制表腳本qappctrl.sql。
      
    
    
      
        操作步驟如下:
      
    
    
      
        $su
      
      
        –
      
      
        db2inst1
      
    
    
      
        $cd/caplog
      
    
    
      
        $asnclp
      
      
        -
      
      
        finitii.txt
      
    
    
      
        $db2connectto
      
      
        BPFDB
      
      
        userdb2inst1using
      
      
        123456
      
    
    
      
        $db2
      
      
        –
      
      
        tvfqcapctrl.sql
      
    
    
      
        $db2connectto
      
      
        APPLY
      
      
        userdb2inst2using
      
      
        123456
      
    
    
      
        $db2
      
      
        –
      
      
        tvfqappctrl.sql
      
    
    
      
        Initii.txt腳本內容:
      
      
      
      
      
    
    
      
        
          | 
              
                #setenvironment
              
             
              
                ASNCLPSESSIONSETTOQREPLICATION;
              
             
              
                SETLOG"qcontrol.err";
              
             
              
                SETSERVERCAPTURETODB
              
              
                BPFDB
              
              
                IDdb2inst1PASSWORD"
              
              
                123456
              
              
                ";
              
             
              
                SETQMANAGER"QMCAP"FORCAPTURESCHEMA;
              
             
              
                SETCAPTURESCHEMASOURCEASN;
              
             
              
                SETSERVERTARGETTODB
              
              
                APPLY
              
              
                IDdb2inst2PASSWORD"
              
              
                123456
              
              
                ";
              
             
              
                SETQMANAGER"QMAPP"FORAPPLYSCHEMA;
              
             
              
                SETAPPLYSCHEMAASN;
              
             
              
                SETOUTPUTCAPTURESCRIPT"qcapctrl.sql"TARGETSCRIPT"qappctrl.sql";
              
             
              
                SETRUNSCRIPTLATER;
              
             
             
              
                #2CreatingQCapturecontroltables.
              
             
              
                CREATECONTROLTABLESFORCAPTURESERVERUSING
              
             
              
                RESTARTQ"ASN.QMCAP.RESTARTQ"ADMINQ"ASN.QMCAP.ADMINQ"
              
             
              
                MEMORYLIMIT64MONITORINTERVAL600000
              
              
                INUWTBSPACE
              
              
                TBSCAP
              
              
                ;
              
             
             
              
                #3CreatingQApplycontroltables.
              
             
              
                #Thiscommandspecifiesapasswordfile,asnpwd.aut.TheQApplyprogamusesthis
              
             
              
                #filetoconnecttotheQCaptureserverwhenitloadsthetargettable.
              
             
              
                CREATECONTROLTABLESFORAPPLYSERVERUSINGPWDFILE"asnpwd.aut"
              
             
              
                INUWTBSPACETBSAPP;
              
             
             
              
                #4EndingtheASNCLPsession.
              
             
              
                QUIT;
              
             
             | 
      
    
    
    
    
      
        5.2
      
      
        創建Q復制隊列映射
      
    
    
      
        使用crt_map.txt腳本產生Qcapture隊列映射腳本
      
      
        qcapmap
      
      
        .sql和Qapply隊列映射腳本
      
      
        qappmap
      
      
        .sql。
      
    
    
      
        在源數據庫中執行Qcapture復制隊列腳本
      
      
        qcapmap
      
      
        .sql,在目標數據庫中執行apply復制隊列腳本
      
      
        qappmap
      
      
        .sql。
      
    
    
      
        操作步驟如下:
      
    
    
      
        $su
      
      
        –
      
      
        db2inst1
      
    
    
      
        $cd/caplog
      
    
    
      
        $asnclp
      
      
        –
      
      
        fcrt_map.txt
      
    
    
      
        $db2connectto
      
      
        BPFDB
      
      
        userdb2inst1using
      
      
        123456
      
    
    
      
        $db2
      
      
        –
      
      
        tvf
      
      
        qcapmap
      
      
        .sql
      
    
    
      
        $db2connectto
      
      
        APPLY
      
      
        userdb2inst2using
      
      
        123456
      
    
    
      
        $db2
      
      
        –
      
      
        tvf
      
      
        qappmap
      
      
        .sql
      
    
    
    
    
      
        crt_map.txt腳本內容如下:
      
    
    
      
        
          | 
              
                #1Settingtheenvironment.
              
             
              
                ASNCLPSESSIONSETTOQREPLICATION;
              
             
              
                SETLOG"rqmap.err";
              
             
              
                SETSERVERCAPTURETODB
              
              
                BPFDB
              
              
                IDdb2inst1PASSWORD"
              
              
                123456
              
              
                ";
              
             
              
                SETCAPTURESCHEMASOURCEASN;
              
             
              
                SETSERVERTARGETTODB
              
              
                APPLY
              
              
                IDdb2inst2PASSWORD"
              
              
                123456
              
              
                ";
              
             
              
                SETAPPLYSCHEMAASN;
              
             
              
                SETOUTPUTCAPTURESCRIPT"qcapmap.sql"TARGETSCRIPT"qappmap.sql";
              
             
              
                SETRUNSCRIPTLATER;
              
             
             
              
                #2Creatingareplicationqueuemap.
              
             
              
                CREATEREPLQMAPS_ASN_TO_T_ASNUSING
              
             
              
                ADMINQ"ASN.QMCAP.ADMINQ"RECVQ"ASN.QMCAP_TO_QMAPP.DATAQ"
              
             
              
                SENDQ"ASN.QMCAP_TO_QMAPP.DATAQ"NUMAPPLYAGENTS8HEARTBEATINTERVAL5;
              
             
             
              
                #3EndingtheASNCLPsession.
              
             
             
              
                QUIT;
              
             
             | 
      
    
    
    
    
      
        5.3
      
      
        創建Q預訂
      
    
    
      
        使用crt_q_order.txt腳本產生QcaptureQ預訂腳本qcapsub.sql和QapplyQ預訂腳本qappsub.sql。
      
    
    
      
        在源數據庫中執行QcaptureQ預訂腳本qcapsub.sql,在目標數據庫中執行applyQ預訂腳本qappsub.sql。
      
    
    
      
        操作步驟如下:
      
    
    
      
        $su
      
      
        -
      
      
        db2inst1
      
    
    
      
        $cd/caplog
      
    
    
      
        $asnclp
      
      
        -
      
      
        fcrt_q_order.txt
      
    
    
      
        $db2connectto
      
      
        BPFDB
      
      
        userdb2inst1using
      
      
        123456
      
    
    
      
        $db2
      
      
        -
      
      
        tvfqcapsub.sql
      
    
    
      
        $db2connectto
      
      
        APPLY
      
      
        userdb2inst2using
      
      
        123456
      
    
    
      
        $db2
      
      
        –
      
      
        tvfqappsub.sql
      
    
    
    
    
      
        crt_q_order.txt內容:
      
    
    
      
        
          | 
              
                #1Settingtheenvironment.
              
             
              
                #TheSETOUTPUTcommandcreatestwoSQLscripts:qcapsub.sql,whichadds
              
             
              
                #definitionsfortheQsubscriptiontotheQCapturecontroltables,and
              
             
              
                #qappsub.sql,whichaddsdefinitionsfortheQsubscriptiontotheQApply
              
             
              
                #controltables.
              
             
             
              
                ASNCLPSESSIONSETTOQREPLICATION;
              
             
              
                SETLOG"qsub.err";
              
             
              
                SETSERVERCAPTURETODB
              
              
                BPFDB
              
              
                IDdb2inst1PASSWORD"
              
              
                123456
              
              
                ";
              
             
              
                SETCAPTURESCHEMASOURCEASN;
              
             
              
                SETSERVERTARGETTODB
              
              
                APPLY
              
              
                IDdb2inst2PASSWORD"
              
              
                123456
              
              
                ";
              
             
              
                SETAPPLYSCHEMAASN;
              
             
              
                SETOUTPUTCAPTURESCRIPT"qcapsub.sql"TARGETSCRIPT"qappsub.sql";
              
             
              
                SETRUNSCRIPTLATER;
              
             
             
              
                CREATEQSUBUSINGREPLQMAPS_ASN_TO_T_ASN(SUBNAME
              
              
                Q訂閱名稱
              
              
              
              
                源表名
              
              
                OPTIONSHASLOADPHASEIexistTARGETNAME
              
              
                目標表名
              
              
                LOADTYPE2);
              
             
             
              
                #3EndingtheASNCLPsession.
              
             
             
              
                QUIT;
              
             | 
      
    
    
    
    
    
    
      
        以上
      
      
        OPTIONSHASLOADPHASEI
      
    
    
    
    
      
        HASLOADPHASE
      
    
    
      
        指定是否使用源中的數據裝入
        
          Q
        
        
          預訂的目標表。
        
      
    
    
      
        N
      
    
    
      
        目標中沒有裝入階段。這是缺省值。
      
    
    
      
        I
      
    
    
      
        指定自動裝入。
        
          QApply
        
        
          程序將裝入目標。裝入方法取決于
        
        
          LOAD_TYPE
        
        
          關鍵字。對于將存儲過程指定為目標的
        
        
          Q
        
        
          預訂,此參數無效。
        
      
    
    
      
        E
      
    
    
      
        指定手工裝入。除
        
          QApply
        
        
          程序外的應用程序將裝入目標。在這種情況下,應使用
        
        
          LOADDONE
        
        
          命令指示裝入已完成。
        
      
    
    
    
    
    
    
      
        以上
      
      
        EXIST
      
    
    
      
        EXIST
      
    
    
      
        指定目標表已存在。
      
    
    
      
        ·
      
      
        如果指定
        
          EXIST
        
        
          但未提供目標表名稱,則
        
        
          ASNCLP
        
        
          程序將查找缺省表
        
      
      
        TGT-SOURCETABLENAME
      
      
        。
      
    
    
      
        ·
      
      
        如果指定
        
          EXIST
        
        
          和單個
        
        
          TARGETNAME
        
        
          ,并且使用
        
        
          SOURCEALL
        
        
          或
        
        
          SOURCENAMELIKE
        
        
          ,則所有源表將映射至指定的那個現有目標表。
        
      
    
    
      
        ·
      
      
        如果未指定
        
          EXIST
        
        
          并且使用
        
        
          SOURCEALL
        
        
          或
        
        
          SOURCENAMELIKE
        
        
          ,則源表將與使用缺省名稱
        
      
      
        TGT-SOURCETABLENAME
      
      
        的目標表配對。
      
    
    
      
        以上軟件
      
      
        LOADTYPE2
      
    
    
      
        LOADTYPE
      
    
    
      
        指定裝入類型。
      
    
    
      
        0
      
    
    
      
        自動選擇最佳類型。
      
    
    
      
        1
      
    
    
      
        僅使用
        
          LOADfromCURSOR
        
        
          。此參數對于經典復制無效。
        
      
    
    
      
        2
      
    
    
      
        僅使用
        
          SELECT/IMPORT
        
        
          。此參數對于經典復制無效。
        
      
    
    
      
        3
      
    
    
      
        僅使用
        
          SELECT/LOAD
        
        
          。此參數對于經典復制無效。
        
      
    
    
      
        4
      
    
    
      
        從經典源裝入。
      
    
    
      
        5.4
      
      
        口令配置
      
    
    
      
        在A機配置口令:
      
    
    
      
        $su
      
      
        –
      
      
        db2inst1
      
    
    
      
        $cd/caplog
      
    
    
      
        $asnpwdinit
      
    
    
      
        $asnpwdaddalias
      
      
        BPFDB
      
      
        iddb2inst1password
      
      
        123456
      
    
    
      
        $asnpwdaddalias
      
      
        APPLY
      
      
        iddb2inst2password
      
      
        123456
      
    
    
    
    
      
        在B機
      
    
    
      
        $su
      
      
        –
      
      
        db2inst2
      
    
    
      
        $cd/applog
      
    
    
      
        $asnpwdinit
      
    
    
      
        $asnpwdaddalias
      
      
        BPFDB
      
      
        iddb2inst1password
      
      
        123456
      
    
    
      
        注意:由于創建數據庫BPFDB的時候沒有指定別名,所以這里別名自動成為數據庫名
      
    
    
      
        $asnpwdaddalias
      
      
        APPLY
      
      
        iddb2inst2password
      
      
        123456
      
    
    
    
    
      
        6.
      
      
        常用DB2Q復制命令
      
    
    
      
        6.1
      
      
        檢查Websphere
      
      
        ReplicationServer
      
      
        環境
      
    
    
      
        使用check_mq.txt腳本檢查WebSphereMQ環境。
      
    
    
      
        操作步驟如下:
      
    
    
      
        $su
      
      
        –
      
      
        db2inst1
      
    
    
      
        $cd/caplog
      
    
    
      
        $asnclp
      
      
        -
      
      
        fcheck_mq.txt
      
    
    
      
        確保命令執行后沒有錯誤輸出。
      
    
    
    
    
      
        WebSphereMQ環境檢查腳本check_mq.txt內容:
      
    
    
      
        
          | 
              
                #1Settingtheenvironment.
              
             
              
                #NoSETRUNstatementisrequired.Thecommandsrunimmediatelyandsend
              
             
              
                #resultstothecommandwindowandlog.
              
             
              
                ASNCLPSESSIONSETTOQREPLICATION;
              
             
              
                SETLOG"qchecks.err";
              
             
              
                SETSERVERCAPTURETODB
              
              
                BPFDB
              
              
                IDdb2inst1PASSWORD"
              
              
                123456
              
              
                ";
              
             
              
                SETQMANAGER"QMCAP"FORCAPTURESCHEMA;
              
             
              
                SETCAPTURESCHEMASOURCEASN;
              
             
              
                SETSERVERTARGETTODB
              
              
                APPLY
              
              
                IDdb2inst2PASSWORD"
              
              
                123456
              
              
                ";
              
             
              
                SETQMANAGER"QMAPP"FORAPPLYSCHEMA;
              
             
              
                SETAPPLYSCHEMAASN;
              
             
             
              
                #2Checkingthequeuemanagersandqueues.
              
             
              
                #Thesecommandscheckwhetherthequeuemanagersandqueuesexist,andvalidate
              
             
              
                #theirsettingsagainsttherequirementsforQreplication.Iferrorsaredetected,
              
             
              
                #youmustcorrectthembeforeyoustarttheQCaptureandQApplyprograms.
              
             
              
                VALIDATEWSMQENVIRONMENTFORCAPTURESCHEMA;
              
             
              
                VALIDATEWSMQENVIRONMENTFORAPPLYSCHEMA;
              
             
              
                VALIDATEWSMQENVIRONMENTFORREPLQMAPS_ASN_TO_T_ASN;
              
             
             
              
                #3Sendingtestmessages.
              
             
              
                #Thiscommandputsatestmessageonthesendqueue,ASN1.QM1_TO_QM2.DATAQ,
              
             
              
                #andtriestogetthemessagefromthereceivequeue,ASN1.QM1_TO_QM2.DATAQ.
              
             
              
                #ThecommandalsoputsatestmessageontheQApplyadministrationqueue,
              
             
              
                #ASN1.QM1.ADMINQ,andtriestogetthemessagefromtheQCaptureadministration
              
             
              
                #queue,ASN1.QM1.ADMINQ.
              
             
             
              
                VALIDATEWSMQMESSAGEFLOWFORREPLQMAPS_ASN_TO_T_ASN;
              
             
             
              
                #4EndingtheASNCLPsession.
              
             
              
                QUIT;
              
             | 
      
    
    
      
        6.2
      
      
        啟動caputer和apply
      
    
    
      
        第一次啟動,startmode=cold執行
      
    
    
    
    
      
        以下是這三種模式的解釋:
      
    
    
      ![]() 
    
    
    
    
      ![]() 
    
    
      ![]() 
    
    
    
    
      
        在A機啟動caputer
      
    
    
      
        $su
      
      
        -
      
      
        db2inst1
      
    
    
      
        $nohupasnqcapcapture_server=
      
      
        BPFDB
      
      
        startmode=coldcapture_path="/caplog"logreuse=ylogstdout=ymemory_limit=512&
      
    
    
    
    
      
        在B機啟動apply
      
    
    
      
        $su
      
      
        -
      
      
        db2inst2
      
    
    
      
        $nohupasnqappapply_server=
      
      
        APPLY
      
      
        apply_path="/applog"logreuse=y&
      
    
    
    
    
    
    
      
        以后第二次及以后的維護過程中進行同步啟動,使用模式為
      
      
        WARMSI
      
    
    
    
    
      
        在A機啟動caputer
      
    
    
      
        $su
      
      
        -
      
      
        db2inst1
      
    
    
      
        $nohupasnqcapcapture_server=
      
      
        BPFDB
      
      
        startmode=
      
      
        WARMSI
      
      
        capture_path="/caplog"logreuse=ylogstdout=ymemory_limit=512&
      
    
    
    
    
      
        在B機啟動apply
      
    
    
      
        $su
      
      
        -
      
      
        db2inst2
      
    
    
      
        $nohupasnqappapply_server=
      
      
        APPLY
      
      
        apply_path="/applog"logreuse=y&
      
    
    
    
    
      
        6.3
      
      
        停止caputer和apply
      
    
    
      
        在A機停止capture
      
    
    
      
        $su
      
      
        -
      
      
        db2inst1
      
    
    
      
        $asnqccmdCAPTURE_SERVER=
      
      
        BPFDB
      
      
        STOP
      
    
    
    
    
      
        在B機停止apply
      
    
    
      
        $su
      
      
        -
      
      
        db2inst2
      
    
    
      
        $asnqacmdapply_server=
      
      
        APPLY
      
      
        STOP
      
    
    
      
        6.4
      
      
        啟動Q預訂
      
    
    
      
        $su
      
      
        –
      
      
        db2inst1
      
    
    
      
        $cd/caplog
      
    
    
      
        $asnclp
      
      
        –
      
      
        fq_start.txt
      
    
    
      
        $db2connectto
      
      
        BPFDB
      
      
        userdb2inst1using
      
      
        123456
      
    
    
      
        $db2
      
      
        –
      
      
        tvf
      
      
        q_start
      
      
        .sql
      
    
    
    
    
      
        WebSphere
      
      
        ReplicationServer
      
      
        環境檢查腳本q_start.txt內容:
      
    
    
      
        
          | 
              
                ASNCLPSESSIONSETTOQREPLICATION;
              
             
              
                SETLOG"start_q_sub.err";
              
             
              
                SETSERVERCAPTURETODB
              
              
                BPFDB
              
              
                IDdb2inst1PASSWORD"
              
              
                123456
              
              
                ";
              
             
              
                SETQMANAGER"QMCAP"FORCAPTURESCHEMA;
              
             
              
                SETCAPTURESCHEMASOURCEASN;
              
             
              
                SETSERVERTARGETTODB
              
              
                APPLY
              
              
                IDdb2inst2PASSWORD"
              
              
                123456
              
              
                ";
              
             
              
                SETQMANAGER"QMAPP"FORAPPLYSCHEMA;
              
             
              
                SETAPPLYSCHEMAASN;
              
             
              
                SETOUTPUTCAPTURESCRIPT"q_start.sql"TARGETSCRIPT"q_start1.sql";
              
             
              
                STARTQSUBforSUBNAMElike"SUB%";
              
             | 
      
    
    
    
    
      
        7.
      
      
        簡單測試
      
    
    
      
        7.1
      
      
        插入:
      
      
        
      
      
      
      
        
      
      
        在
      
      
        10.68.22.231
        
          上的
        
      
      
        BPFDB
      
      
      
      
        庫執行:
        
          INSERTINTO
        
      
      
        表名
      
      
        values(
        
          值
        
      
      
        1
      
      
        ,'
        
          值
        
      
      
        2
      
      
        ')
      
      
        
      
      
        在
      
      
        10.68.22.232
        
          上的
        
        
          APPLY
        
      
      
        庫執行:
        
          SELECT*FROM
        
        
          表名
        
      
      
        
      
      
      
      
        
      
      
        確認在
      
      
        apply
      
      
        庫可以看到新插入的數據
      
      
        
      
      
      
      
        
      
      
      
      
        7.2
        
          更新:
        
      
      
        
      
      
      
      
        
      
      
        在
      
      
        10.68.22.231
        
          上的
        
      
      
        BPFDB
      
      
      
      
        庫執行:
        
          UPDATE
        
      
      
        表名
      
      
        SETname='
        
          值
        
      
      
        1
      
      
        'WHEREid=1
      
      
        
      
      
        在
      
      
        10.68.22.232
        
          上的
        
        
          apply
        
      
      
        庫執行:
        
          SELECT*FROM
        
        
          表名
        
      
      
        
      
      
      
      
        
      
      
        確認在
      
      
        apply
      
      
        庫可以看到修改后的數據
      
      
        
      
      
      
      
        
      
      
      
      
        7.3
        
          刪除:
        
      
      
        
      
      
      
      
        
      
      
        在
      
      
        10.68.22.231
        
          上的
        
      
      
        BPFDB
      
      
      
      
        庫執行:
        
          DELETEFROM
        
        
          表名
        
        
          WHEREid=1
        
      
      
        
      
      
        在
      
      
        10.68.22.232
        
          上的
        
        
          apply
        
      
      
        庫執行:
        
          SELECT*FROM
        
        
          表名
        
      
      
        
      
      
      
      
        
      
      
        確認在
      
      
        apply
      
      
        庫不可以看到已刪除的數據
      
    
    
    
    
    
    
      
        8.
      
      
        常見問題
      
    
    
      
        問題一:
      
    
    
    
    
      
        ASN2270EThestoredprocedure"ASN.ADMINIF"indatabase"
      
      
        APPLY
      
      
        "isnotauthor
      
    
    
      
        izedtoaccesstheWebSphereMQqueuemanager"CCZFDB2_SVC-QMAPP"becausetheo
      
    
    
      
        peratingsystemuserID"db2inst2",whichistheDB2fenceduseroftheinstance
      
    
    
      
        thatcontainsthisdatabase,isnotamemberoftheoperatingsystemgroupfor
      
    
    
      
        WebSphereMQapplications(usuallymqm)atthehost"CCZFDB2_SVC".
      
    
    
    
    
      
        分析:
      
    
    
      
      
      
        需要把db2fence用戶屬于mqm組。