达梦DRS数据分发

目录

1 场景规划

2.开启源数据库的归档和逻辑日志

3.配置DMDRS服务

3.1配置DMDSS服务

3.2 配置源DMDRS服务

3.3 配置目标DMDRS A服务

3.4 配置目标DMDRS B服务

4 运行DMDRS服务

4.1 启动DMDSS服务

4.2 启动源DMDRS服务

4.3 启动源DMDRS服务中的CPT模块

4.4 启动目标DMDRS A服务

4.5 启动目标DMDRS A服务中的EXEC模块

4.6 启动目标DMDRS B服务

4.7 启动目标DMDRS B服务中的EXEC模块

4.8 验证同步结果

5.源端查看字典


使用DSS模块部署DMDRS同步链路,源端DM库同步A、B表到目的端DM库1,同步C、D表到目的端DM库2;

1 场景规划

业务规划

  • 源DMDRS:捕获源数据库的数据,将捕获到的数据发送到DMDSS。

  • DMDSS:缓存数据流并向目标DMDRS A和目标DMDRS B分发数据。

  • 目标DMDRS A:将接收的数据复制到目标数据库A。

  • 目标DMDRS B:将接收的数据复制到目标数据库B。

网络规划

DMDRS服务IP地址和端口站点号连接数据库说明
源DMDRS192.168.20.24:53451源数据库 DM8
192.168.20.24:5236
源DMDRS服务器需要安装DMDPI驱动与源数据库DM8连接。
DMDSS192.168.20.23:53452//
目标DMDRS A192.168.20.21:53453目标数据库A DM8
192.168.20.21:5236
目标DMDRS A服务器需要安装DMDPI驱动与目标数据库A DM8连接。
目标DMDRS B192.168.20.22:53454目标数据库B DM8
192.168.20.22:5236
目标DMDRS B服务器需要安装DMDPI驱动与目标数据库B DM8连接。

目录规划

源数据库、源DMDRS服务、DMDSS服务、目标DMDRS A服务和目标DMDRS B服务相关的目录规划如下表所示。

目录类型目录名目录示例
源数据库数据库归档文件目录/dm8data/arch
数据库DDL同步脚本目录/home/dmdrs/dmdrs5/bin/scripts
源DMDRS安装目录/home/dmdrs/dmdrs5
执行程序目录/home/dmdrs/dmdrs5/bin
配置文件路径/home/dmdrs/dmdrs5/bin/cpt.xml
服务脚本模板目录/home/dmdrs/dmdrs5/bin/service_template
服务脚本目录/home/dmdrs/dmdrs5/bin
console远程控制工具/home/dmdrs/dmdrs5/bin
DMDSS安装目录/home/dmdrs/dmdrs5
执行程序目录/home/dmdrs/dmdrs5/bin
配置文件路径/home/dmdrs/dmdrs5/bin/dssa.xml
服务脚本模板目录/home/dmdrs/dmdrs5/bin/service_template
服务脚本目录/home/dmdrs/dmdrs5/bin
日志流的存储路径/home/dmdrs/dmdrs5/bin/logfile
目标DMDRS A安装目录/home/dmdrs/dmdrs5
执行程序目录/home/dmdrs/dmdrs5/bin
配置文件路径/home/dmdrs/dmdrs5/bin/exec.xml
服务脚本模板目录/home/dmdrs/dmdrs5/bin/service_template
服务脚本目录/home/dmdrs/dmdrs5/bin
console远程控制工具/home/dmdrs/dmdrs5/bin/drcsl
目标DMDRS B安装目录/home/dmdrs/dmdrs5
执行程序目录/home/dmdrs/dmdrs5/bin
配置文件路径/home/dmdrs/dmdrs5/bin/exec.xml
服务脚本模板目录/home/dmdrs/dmdrs5/bin/service_template
服务脚本目录/home/dmdrs/dmdrs5/bin
console远程控制工具/home/dmdrs/dmdrs5/bin/drcsl

2.开启源数据库的归档和逻辑日志

以动态修改的方式开启源数据库的归档和逻辑日志。

  1. 挂载源数据库。

    SQL> alter database mount;
    
  2. 源数据库添加归档日志配置项。

    SQL> alter database add archivelog 'DEST=<归档文件路径>,TYPE=LOCAL,FILE_SIZE=512,SPACE_LIMIT=10240';
    
  3. 源数据库应用配置项修改。

    SQL> alter database archivelog;
    
  4. 开启源数据库。

    SQL> alter database open;
    
  5. 配置源数据库逻辑日志。

    SQL> call sp_set_para_value(1,'RLOG_APPEND_LOGIC',1);

在源数据库执行“ddl_sql_dm8.sql”脚本创建辅助表,脚本默认位置在DMDRS执行程序目录下的scripts子目录中。

SQL> start ddl_sql_dm8.sql

3.配置DMDRS服务

3.1配置DMDSS服务

在DMDSS服务的配置文件目录,打开并修改dss.xml配置文件,修改后配置文件如下所示。

<?xml version="1.0" encoding="GB18030"?>
<drs>
    <base>
        <mgr_port>5345</mgr_port>	
        <siteid>2</siteid>
    </base>
    <dss>
        <name>dss_dm8</name>
        <dir>/home/dmdrs/dmdrs5/bin/logfile</dir>
    </dss>
</drs>

3.2 配置源DMDRS服务

在源DMDRS服务的配置文件目录,打开并修改cpt.xml配置文件,修改后配置文件如下所示。

<?xml version="1.0" encoding="GB18030"?>
<drs>
    <base>
        <mgr_port>5345</mgr_port>     
        <siteid>1</siteid>
    </base>
    <cpt>
        <name>cpt_dm8</name>
        <login>
            <dbtype>dm8</dbtype>
            <server>192.168.20.24</server>
            <user>DMDRS</user>
            <pwd>DMDRS</pwd>
            <port>5236</port>
        </login>
        <send>
            <ip>192.168.20.23</ip>
            <port>5345</port>
            <target_name>dss_dm8</target_name>
            <map>
                <item>*.*==*.*</item>
            </map>
        </send>
    </cpt>
</drs>

3.3 配置目标DMDRS A服务

在目标DMDRS A服务的配置文件目录,打开并修改exec.xml配置文件,修改后配置文件如下所示。

<?xml version="1.0" encoding="GB18030"?>
<drs>
    <base>
        <mgr_port>5345</mgr_port>
        <siteid>3</siteid>
    </base>
    <exec>
        <name>exec_dm8</name>
        <dss>
        	<item>
            	<name>dss_dm8</name>
            	<ip>192.168.20.23</ip>
                <port>5345</port>
                <topic>cpt_dm8</topic>
                <map>
                    <item>DMDRS.A==DMDRS.A</item>
                    <item>DMDRS.B==DMDRS.B</item>
                </map>
        	</item>
        </dss>
        <login>
            <dbtype>dm8</dbtype>
            <server>192.168.20.21</server>
            <user>DMDRS</user>
            <pwd>DMDRS</pwd>
            <port>5236</port>    
        </login>
        <group>
            <item>
                <id>35</id>
                <exec_policy>0</exec_policy>                    
                <desc>
                    <table>*.*</table>
                </desc>
            </item>
        </group>
    </exec>
</drs>

3.4 配置目标DMDRS B服务

在目标DMDRS B服务的配置文件目录,打开并修改exec.xml配置文件,修改后配置文件如下所示。

<?xml version="1.0" encoding="GB18030"?>
<drs>
    <base>
        <mgr_port>5345</mgr_port>
        <siteid>4</siteid>
    </base>
    <exec>
        <name>exec_dm8</name>
        <dss>
        	<item>
            	<name>dss_dm8</name>
            	<ip>192.168.20.23</ip>
                <port>5345</port>
                <topic>cpt_dm8</topic>
                <map>
                    <item>DMDRS.C==DMDRS.C</item>
                    <item>DMDRS.D==DMDRS.D</item>
                </map>
        	</item>
        </dss>
        <login>
            <dbtype>dm8</dbtype>
            <server>192.168.20.22</server>
            <user>DMDRS</user>
            <pwd>DMDRS</pwd>
            <port>5236</port>    
        </login>
        <group>
            <item>
                <id>35</id>
                <exec_policy>0</exec_policy>                    
                <desc>
                    <table>*.*</table>
                </desc>
            </item>
        </group>
    </exec>
</drs>

4 运行DMDRS服务

按照服务的运行顺序,启动DMDSS服务、源DMDRS服务、目标DMDRS A服务和目标DMDRS B服务。

4.1 启动DMDSS服务

  1. 将服务脚本模板TemplateService拷贝到服务脚本目录并修改服务脚本的名称为DssService。

    $ cp TemplateService ../DssService
    
  2. 打开并修改DssService服务脚本中的相关配置参数。

    $ vi DssService
    
    INSTALL_HOME=/home/dmdrs/dmdrs5
    PROG_DIR=/home/dmdrs/dmdrs5/bin
    CONF_PATH=/home/dmdrs/dmdrs5/bin/dss.xml
    EXEC_PROG_NAME=dsssvr
    SERVICE_TYPE_NAME="dss server"
    
  3. 启动DMDSS服务。

    $ ./DssService start
    

4.2 启动源DMDRS服务

  1. 将服务脚本模板TemplateService拷贝到服务脚本目录并修改服务脚本的名称为DrsService。

    $ cp TemplateService ../DrsService
    
  2. 打开并修改DrsService服务脚本中的相关配置参数。

    $ vi DrsService
    
    INSTALL_HOME=/home/dmdrs/dmdrs5
    PROG_DIR=/home/dmdrs/dmdrs5/bin
    CONF_PATH=/home/dmdrs/dmdrs5/bin/cpt.xml
    EXEC_PROG_NAME=drsvr
    SERVICE_TYPE_NAME="drs server"
    
  3. 启动源DMDRS服务。

    $ ./DrsService start
    

4.3 启动源DMDRS服务中的CPT模块

使用服务脚本启动服务后,需要使用远程控制台对服务中的模块执行启动命令。

  1. 启动控制台。

    $ ./drcsl cpt.xml
    
  2. 连接源DMDRS服务。

    CSL> connect
    
  3. 设置数据库当前最新的日志LSN作为日志解析的起始位置。

    CSL> alter cpt_dm8 set lsn
    
  4. 启动源DMDRS服务中的CPT模块。

    CSL> start
    
  5. 将源数据库中”RESOURCES“模式下所有的表添加同步,并在同步之前把源端表的全量数据装载到目标数据库。

    CSL> alter cpt_dm8 add table "sch.name='RESOURCES'"
    
  6. 使用命令查看数据装载的监控信息

4.4 启动目标DMDRS A服务

  1. 将服务脚本模板TemplateService拷贝到服务脚本目录并修改服务脚本的名称为DrsService。

    $ cp TemplateService ../DrsService
    
  2. 打开并修改DrsService服务脚本中的相关配置参数。

    $ vi DrsService
    
    INSTALL_HOME=/home/dmdrs/dmdrs5
    PROG_DIR=/home/dmdrs/dmdrs5/bin
    CONF_PATH=/home/dmdrs/dmdrs5/bin/exec.xml
    EXEC_PROG_NAME=drsvr
    SERVICE_TYPE_NAME="drs server"
    
  3. 启动目标DMDRS A服务。

    $ ./DrsService start
    

4.5 启动目标DMDRS A服务中的EXEC模块

使用服务脚本启动服务后,需要使用远程控制台对服务中的模块执行启动命令。

  1. 启动控制台。

    $ ./drcsl exec.xml
    
  2. 连接目标DMDRS服务。

    CSL> connect
    
  3. 启动目标DMDRS A服务中的EXEC模块。

    CSL> start
    

4.6 启动目标DMDRS B服务

  1. 将服务脚本模板TemplateService拷贝到服务脚本目录并修改服务脚本的名称为DrsService。

    $ cp TemplateService ../DrsService
    
  2. 打开并修改DrsService服务脚本中的相关配置参数。

    $ vi DrsService
    
    INSTALL_HOME=/home/dmdrs/dmdrs5
    PROG_DIR=/home/dmdrs/dmdrs5/bin
    CONF_PATH=/home/dmdrs/dmdrs5/bin/exec.xml
    EXEC_PROG_NAME=drsvr
    SERVICE_TYPE_NAME="drs server"
    
  3. 启动目标DMDRS B服务。

    $ ./DrsService start
    

4.7 启动目标DMDRS B服务中的EXEC模块

使用服务脚本启动服务后,需要使用远程控制台对服务中的模块执行启动命令。

  1. 启动控制台。

    $ ./drcsl exec.xml
    
  2. 连接目标DMDRS服务。

    CSL> connect
    
  3. 启动目标DMDRS B服务中的EXEC模块。

    CSL> start
    

4.8 验证同步结果

在源数据库中”RESOURCES“模式下所有的表中分别插入数据,如果插入的数据能正确地同步到目标数据库A和目标数据库B,则表示数据同步成功。

5.源端查看字典

结果说明

参数说明
序号从装载线程启动开始,第几个装载命令产生的装载表。
模式名装载字典所属的模式名。
表名装载字典的表名。
表ID装载表的ID。
时间字典装载开始的时间。
状态
  • COMPLETE:已完成装载。
  • ERROR:装载错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值