注册
DMDRS 复制配置
技术分享/ 文章详情 /

DMDRS 复制配置

Johnny 2025/12/12 61 0 0

基础环境:

环境:
源端和目标端都是单机 DM8 数据库。

源端数据库配置要求

  • 除数据迁移场景外,其他应用场景均需要开启源数据库的归档和逻辑日志。
  • 除数据迁移场景外,其他应用场景均需要配置DDL同步
  • 创建源数据库同步用户DMDRS。
  • 在源端数据库部署DMDRS数据复制软件。

目标端数据库配置要求

  • 创建目标数据库同步用户DMDRS。
  • 配置目标数据库同步用户最小权限。

1. 创建DMDRS 同步用户及存储表空间。

注意:当前环境源端和目标端都是 DM8。

源端和目标端都创建 DMDRS 管理用户和数据同步用户 TEST:

create tablespace DMDRS datafile 'DMDRS01.DBF' size 512 autoextend off CACHE = NORMAL;
create user DMDRS identified by "xx" default tablespace "DMDRS" default index tablespace "DMDRS";
grant "DBA","PUBLIC","RESOURCE","SOI" to DMDRS;

create tablespace TEST datafile 'TEST.DBF' size 128 autoextend off CACHE = NORMAL;
create user TEST identified by "xx" default tablespace "TEST" default index tablespace "TEST";
grant "PUBLIC","RESOURCE" to TEST;
grant select any DICTIONARY to TEST;
grant creeate table to test;

2. 开启归档(正常安装都是开的)和逻辑附加日志

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

检查ARCH_INI参数配置是否生效。
SQL> select para_name, para_value, sess_value, file_value from V$DM_INI where para_name = 'ARCH_INI';

检查RLOG_APPEND_LOGIC参数配置是否生效。
SQL> select para_name, para_value, sess_value, file_value from V$DM_INI where para_name = 'RLOG_APPEND_LOGIC';

3. 如需单独开启源数据库的归档和逻辑日志

方式一:静态配置

设置DM8数据库配置文件“dm.ini”中ARCH_INI参数值为1,根据实际需求配置RLOG_APPEND_LOGIC的参数值,参数配置说明如下所示:

  1. 如果有主键列,记录UPDATE和DELETE操作时只包含主键列信息,若没有主键列则包含所有列信息。
  2. 不论是否有主键列,记录UPDATE和DELETE操作时都包含所有列的信息。
  3. 记录UPDATE时包含更新列的信息以及ROWID,记录DELETE时只有ROWID。
#configuration file
ARCH_INI = 1

#redo log
RLOG_APPEND_LOGIC = 1

在与dm.ini 相同目录下,新建配置文件dmarch.ini,并添加归档配置参数。配置示例如下:

DM8单机

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/data/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 10240

方式二:动态配置

开启数据库归档。

DM8单机

SQL> alter database mount;
executed successfully
used time: 00:00:01.144. Execute id is 0.
SQL> alter database archivelog;
executed successfully
used time: 10.277(ms). Execute id is 0.
SQL> alter database add archivelog        'DEST=/dm8/data/arch,TYPE=LOCAL,FILE_SIZE=512,SPACE_LIMIT=10240';
executed successfully
used time: 7.437(ms). Execute id is 0.
SQL> alter database open;
executed successfully
used time: 00:00:01.262. Execute id is 0.

4. 指定对应安装目录进行DRS软件安装

./dmdrs_rev200238_x86_rh6_64_20250922.bin -i

注意:未选择任何组件

5. 配置DDLDML语句同步,创建辅助表

同步DDL语句,创建DDL触发器和辅助表时,请使用具有DBA权限的用户。

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

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

select owner, trigger_name from dba_triggers where owner = 'SYSDBA' and trigger_name like 'DRS_$%' and status = 'Y';

检查创建的辅助表(9)

select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DRS_$%' and status = 'VALID';

调整源和目的的环境变量

vi ~/.bash_profile
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dmdbms/bin:/dmdbms/drivers/dpi"
source ~/.bash_profile

6. 配置 /etc/dm_svc.conf 文件配置

源端

TIME_ZONE=(480)
LANGUAGE=(cn)
DRSA=(192.168.56.51:5236)

目标端

TIME_ZONE=(480)
LANGUAGE=(cn)
DRSB=(192.168.56.52:5236)

7. 源端配置 cpt.xml 文件

<?xml version="1.0" encoding="GB18030"?>
<drs>
    <base>
        <mgr_port>5345</mgr_port>
        <siteid>1</siteid>       <===注意cpt.xml 和 exec.xml 不能一样
        <lang>en</lang>
    </base>
    <cpt>
        <name>cpt</name>
        <login>
            <dbtype>DM8</dbtype>
            <server>192.168.56.51</server>
            <user>DMDRS</user>
            <pwd>xx</pwd>
            <port>5236</port>
        <ddl_mask>OBJ:OP</ddl_mask>
        </login>
        <send>
            <ip>192.168.56.52</ip>
            <port>5345</port>
            <map>
            <target_name>exec</target_name>
                <item>TEST.*==TEST.*</item>   <===代表同步的模式
            </map>
        </send>
    </cpt>
</drs>

8. 目的端 exec.xml 文件配置

<?xml version="1.0" encoding="GB18030"?>
<drs>
    <base>
        <mgr_port>5345</mgr_port>
        <siteid>2</siteid>
        <lang>en</lang>
    </base>
    <exec>
        <name>exec</name>
        <login>
            <dbtype>DM8</dbtype>
            <server>192.168.1.52</server>
            <user>DMDRS</user>
            <pwd>xx</pwd>
            <port>5236</port>
        </login>
    </exec>
</drs>

9. 源端注册服务

$ cp service_template/TemplateService ./DrsService
#set execute environment
#REPLACE INSTALL_HOME path
INSTALL_HOME=/data/dmdrs5
#REPLACE program dir
PROG_DIR=/data/dmdrs5/bin
#REPLACE program config path
#If drs server is BP node and wants to startup without drs.xml,please specify the running port in CONF_PATH,for example,CONF_PATH="-port 5345"
CONF_PATH=/data/dmdrs5/bin/cpt.xml
#REPLACE need library path, LD_LIBRARY_PATH/LIBPATH
NEED_LIB_PATH=/home/dmdba/dmdbms/bin

#REPLACE program name, drsvr/dssvr/dvsvr
EXEC_PROG_NAME=drsvr
#REPLACE service type,  drs server/dss server/dvs server
SERVICE_TYPE_NAME="drs server"

10. 目的端注册服务

[dmdba@kylin1:/dmdrs/bin]$ cp service_template/TemplateService ./DrsService
#set execute environment
#REPLACE INSTALL_HOME path
INSTALL_HOME=/data/dmdrs5
#REPLACE program dir
PROG_DIR=/data/dmdrs5/bin
#REPLACE program config path
#If drs server is BP node and wants to startup without drs.xml,please specify the running port in CONF_PATH,for example,CONF_PATH="-port 5345"
CONF_PATH=/data/dmdrs5/bin/exec.xml
#REPLACE need library path, LD_LIBRARY_PATH/LIBPATH
NEED_LIB_PATH=/home/dmdba/dmdbms/bin

#REPLACE program name, drsvr/dssvr/dvsvr
EXEC_PROG_NAME=drsvr
#REPLACE service type,  drs server/dss server/dvs server
SERVICE_TYPE_NAME="drs server"

11. 启动源端目的端 cpt 和 exec 服务

目标端启服务:
[dmdba@kylin1:/dmdrs/bin]$ ./DrsService start
Starting DrsService:                                       [ OK ]

源端启服务:
[dmdba@kylin1:/dmdrs/bin]$ ./DrsService start
Starting DrsService:                                       [ OK ]

12. 连接目标端exec 服务

$ ./drcsl exec.xml 
CSL> connect
CSL> show mode
CSL> exit

13. 连接源端cpt 服务

$ ./drcsl cpt.xml
CSL> connect
CSL> alter cpt set lsn
CSL> alter cpt add table "sch.name='TEST'"
CSL> start
CSL> show mode
CSL> exit
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服