DMDRS搭建

DMDRS搭建

本次进行DMDRS工具的部署搭建以及使用

环境配置

操作系统及数据库配置

  • 操作系统:使用CentOS7
  • 数据库:dm8_20240408_x86_rh7_64

服务器配置

实例名服务器IP
DM1192.168.19.7(源DMDRS)
DM2192.168.19.4(目的DMDRS)

目录配置

目录类型源DMDRS数据库目的DMDRS数据库
安装路径/home/dmdba/dmdrs5/home/dmdba/dmdrs5
执行程序目录/home/dmdba/dmdrs5/bin/home/dmdba/dmdrs5/bin
配置文件路径/home/dmdrs/dmdrs5/bin/cpt.xml/home/dmdrs/dmdrs5/bin/exec.xml
服务脚本目录/home/dmdrs/dmdrs5/bin/home/dmdrs/dmdrs5/bin
console远程控制工具/home/dmdrs/dmdrs5/bin/drcsl/home/dmdrs/dmdrs5/bin/drcsl

数据库准备工作

开启源数据库的归档和逻辑日志(源端)

  • 动态配置(推荐)

    • 使用disql登录数据库,执行命令进行归档配置

      SQL> alter database mount;
      SQL> alter database add archivelog 'DEST=/home/dmdba/arch,TYPE=LOCAL,FILE_SIZE=512,SPACE_LIMIT=10240';
      SQL> alter database archivelog;
      SQL> alter database open;
      

      在这里插入图片描述

    • 调用系统过程SP_SET_PARA_VALUE修改RLOG_APPEND_LOGIC参数值

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

      在这里插入图片描述

  • 静默配置

    • 进入DM数据库的配置文件dm.ini中修改ARCH_INI参数为1,RLOG_APPEND_LOGIC根据情况配置

      #configuration file
      ARCH_INI = 1
        
      #redo log
      RLOG_APPEND_LOGIC = 1
      
    • 在dm.ini同目录下,新建配置文件dmarch.ini,并添加归档配置文件

      [ARCHIVE_LOCAL1]
      	ARCH_TYPE = LOCAL
      	ARCH_DEST = /home/dmdba/arch
      	ARCH_FILE_SIZE = 512
      	ARCH_SPACE_LIMIT = 10240
      
    • 配置完毕后重启服务器

配置DDL同步(源端)

  • 辅助表方式(推荐)

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

      SQL>set define off;
      SQL>start /home/dmdba/dmdrs5/bin/scripts/ddl_sql_dm8.sql
      

      ​ 建议:

      ​ 这里建议使用manager工具执行脚本,使用disql执行的话很容易出现部分语句报错

      在这里插入图片描述

    • 检查创建的触发器和辅助表是否有效

      SQL> select owner, trigger_name from dba_triggers where owner = 'SYSDBA' and trigger_name like 'DRS_$%' and status = 'Y';
      
      SQL> select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DRS_$%' and status = 'VALID';
      

      在这里插入图片描述

      • 出现4个触发器、9个辅助表则表示配置成功
  • 系统表方法

    • 静默配置

      • 设置数据库配置文件dm.ini中RLOG_APPEND_LOGIC参数值为1

        #redo log
        RLOG_APPEND_SYSTAB_LOGIC = 1
        
      • 重启数据库服务,使配置生效

    • 动态配置

      • 调用系统过程SP_SET_PARA_VALUE修改RLOG_APPEND_SYSTAB_LOGIC参数值

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

创建数据库同步用户DMDRS(源端&目的端)

  • 在源端和目的端创建数据库同步用户DMDRS,并赋予同步权限

    注:

    如果是在测试环境下学习,可以直接赋予DBA权限;如果是在生产环境下,需要执行权限管控,配置同步用户最小权限

    • 这里我使用manager工具创建用户

      在这里插入图片描述

DMDRS准备工作

DMDRS服务管理规划(源端&目的端)

  • DMDRS服务运行过程中,需要使用数据库的驱动文件访问数据库数据,需要为运行DMDRS的用户设置环境变量

    • 在系统中查询驱动文件的所在位置

      find /home/dmdba/dmdbms -name *dmdpi*
      

      在这里插入图片描述

    • 设置环境变量,添加驱动文件路径

      export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/dmdba/dmdbms/drivers/dpi"
      echo $LD_LIBRARY_PATH
      

      在这里插入图片描述

DMDRS配置

配置源DMDRS

  • 源DMDRS服务包括Manager管理模块和CPT模块,在dmdrs安装目录下的bin/conf_sample下存有配置文件模板

    <?xml version="1.0" encoding="GB18030"?>
    <drs>
        <base>
            <mgr_port>5345</mgr_port><!--如:5345-->
            <siteid>1</siteid><!--如:1-->
        </base>
        <cpt>
            <name>cpt_dm8</name><!--如:cpt_dm8-->
            <login>
                <dbtype>dm8</dbtype><!--如:dm8-->
                <server>192.168.19.142</server><!--如:192.168.20.24-->
                <user>DMDRS</user><!--如:DMDRS-->
                <pwd>DMDRS</pwd><!--如:DMDRS-->
                <port>5236</port><!--如:5236-->
            </login>
            <send>
                <ip>192.168.19.139</ip><!--如:192.168.20.21-->
                <port>5345</port><!--如:5345-->
                <target_name>exec_dm8</target_name><!--如:exec_dm8-->
                <map>
                    <item>*.*==*.*</item><!--如:*.*==*.*-->
                </map>
            </send>
        </cpt>
    </drs>
    

    在这里插入图片描述

配置目标DMDRS

  • 目标DMDRS服务包括Manager管理模块和EXEC模块

    <?xml version="1.0" encoding="GB18030"?>
    <drs>
        <base>
            <mgr_port>5345</mgr_port><!--如:5345-->
            <siteid>2</siteid><!--如:2-->
        </base>
        <exec>
            <name>exec_dm8</name><!--如:exec_dm8-->
            <login>
                <dbtype>dm8</dbtype><!--如:dm8-->
                <server>192.168.19.139</server><!--如:192.168.20.21-->
                <user>DMDRS</user><!--如:DMDRS-->
                <pwd>DMDRS</pwd><!--如:DMDRS-->
                <port>5236</port><!--如:5236-->
            </login>
        </exec>
    </drs>
    

    在这里插入图片描述

DMDRS运行

管理服务(源端&目的端)

  • 配置DMDRS服务脚本

    • 将服务脚本模板TemplateService拷贝到执行程序目录,并修改服务脚本的名称为默认服务脚本名

      cp /home/dmdba/dmdrs5/bin/service_template/TemplateService /home/dmdba/dmdrs5/bin/DrsService
      
    • 打开并修改服务脚本中的相关配置参数

      ##源端DMDRS配置
      INSTALL_HOME=/home/dmdba/dmdrs5
      PROG_DIR=/home/dmdba/dmdrs5/bin
      CONF_PATH=/home/dmdba/dmdrs5/bin/cpt.xml
      EXEC_PROG_NAME=drsvr
      SERVICE_TYPE_NAME="drs server"
      
      ##目的端DMDRS配置
      INSTALL_HOME=/home/dmdba/dmdrs5
      PROG_DIR=/home/dmdba/dmdrs5/bin
      CONF_PATH=/home/dmdba/dmdrs5/bin/exec.xml
      EXEC_PROG_NAME=drsvr
      SERVICE_TYPE_NAME="drs server"
      

      在这里插入图片描述

启动DMDRS服务

  • 启动源DMDRS服务器

    ./DrsService start
    

    在这里插入图片描述

  • 启动目的端服务器

    ./DrsService start
    

    在这里插入图片描述

数据复制

数据迁移

  • 在源端DMDRS服务中执行数据迁移命令

    说明:

    ​ 数据迁移功能无需启动CPT功能模块,直接执行相应的数据迁移命令即可

    • 启动控制台

      ./drcsl cpt.xml
      
    • 连接源DMDRS服务

      CSL> connect
      
    • 将源数据库DMDRS模式下表EMPLOYEE的全量数据迁移到目标数据库

      CSL> alter cpt_dm8 cp "sch.name='DMDRS' and tab.name='EMPLOYEE'"
      

      在这里插入图片描述

  • 验证迁移结果
    • 到目的端数据库上去查看是否存在表EMPLOYEE,表中是否存在数据,数据是否能够对得上

      ##查看表EMPLOYEE中的所有数据
      select * from DMDRS.EMPLOYEE;
      
      ##查看EMPLOYEE表中的数据量
      select count(*) from DMDRS.EMPLOYEE;
      

      在这里插入图片描述

      • 35个数据完完整整地迁移过来了

数据同步

  • 配置目标DMDRS服务
    • 在目标DMDRS服务中打开exec.xml配置文件,修改配置文件内容

      <?xml version="1.0" encoding="GB18030"?>
      <drs>
          <base>
              <mgr_port>5345</mgr_port>
              <siteid>2</siteid>
          </base>
          <exec>
              <name>exec_dm8</name>
              <login>
                  <dbtype>dm8</dbtype>
                  <server>192.168.19.4</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>
      

      在这里插入图片描述

  • 配置源端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.19.7</server>
                  <user>DMDRS</user>
                  <pwd>DMDRS</pwd>
                  <port>5236</port>
              </login>
              <send>
                  <ip>192.168.19.4</ip>
                  <port>5345</port>
                  <target_name>exec_dm8</target_name>
                  <map>
                      <item>*.*==*.*</item>
                  </map>
              </send>
          </cpt>
      </drs>
      
  • 运行DMDRS服务器
    • 启动目标DMDRS服务器

      ./DrsService start
      
    • 启动源DMDRS服务器

      ./DrsService start
      
  • 启动源端CPT模块
    • 启动控制台,连接服务

      ##启动控制台
      ./drcsl cpt.xml
      
      ##连接DMDRS服务
      CSL> connect
      
    • 设置数据库当前最新的日志LSN作为日志解析的起始位置

      CSL> alter cpt_dm8 set lsn
      
    • 启动CPT模块,将源数据库中DMDRS模式下所有的表添加同步,并在同步之前把源端表的全量数据装载到目标数据库

      ##启动CPT模块
      CSL> start
      
      ##添加同步
      CSL> alter cpt_dm8 add table "sch.name='DMDRS'" 
      

      在这里插入图片描述

  • 验证同步结果
    • 在源DMDRS服务上创建表test,并插入数据

      ##创建表test
      CREATE TABLE DMDRS.test(
      	id INTEGER,
      	name VARCHAR(20)
      );
      
      ##插入数据
      INSERT INTO DMDRS.TEST VALUES(1,'Tom'),(2,'Jerry');
      
      ##提交
      commit;
      
    • 到目的DMDRS服务上查看数据是否同步过来

      在这里插入图片描述

      • 源端DMDRS服务上的表已经同步过来了,同时表中的数据也过来了

至此,DMDRS工具的数据迁移和同步已经验证成功。

总结

  • 本次主要是DMDRS工具的搭建使用,需要注意许可证的时间,我最开始搭建的时候没有注意到这个问题,在配置完后启动服务就报错了。还有要多注意源端DMDRS的LSN序列与目的端DMDRS的LSN是否能够对得上,不然就会报错网络连接失败,数据也会同步不过去。

参考

  • 达梦在线服务平台——https://eco.dameng.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值