1. 源端数据库配置
- 在源端数据库创建数据复制用户并授予相关权限;
- 在源端数据库部署DMDRS数据复制软件。
- 检查DM的归档模式、补充日志开启等
实施步骤
2. 创建DMDRS 同步用户及存储表空间。
源端和目标端都创建 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;
3. 开启归档(正常安装都是开的)和逻辑附加日志
call sp_set_para_value(1,'RLOG_APPEND_LOGIC',1);
select PARA_VALUE from v$dm_ini where para_name = 'ARCH_INI';
PARA_VALUE
----------
1
select PARA_VALUE from v$dm_ini where para_name = 'RLOG_APPEND_LOGIC';
PARA_VALUE
----------
1
4. 指定对应安装目录进行DRS软件安装
./dmdrs_xx.bin -i
注意:未选择任何组件
5. 配置DDLDML语句同步,创建辅助表
同步DDL语句,创建DDL触发器和辅助表时,请使用具有DBA权限的用户。
start /data/dmdrs5/bin/scripts/ddl_sql_dm8.sql ----disql执行报错输入过长,最好管理工具跑 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. 源端配置 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>
7. 目的端 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>
8. 源端注册服务
$ 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"
9. 目的端注册服务
[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"
10. 启动源端目的端 cpt 和 exec 服务
目标端启服务:
[dmdba@kylin1:/dmdrs/bin]$ ./DrsService start
Starting DrsService: [ OK ]
源端启服务:
[dmdba@kylin1:/dmdrs/bin]$ ./DrsService start
Starting DrsService: [ OK ]
11. 连接目标端exec 服务
$ ./drcsl exec.xml
CSL> connect
CSL> show mode
CSL> exit
12. 连接源端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
欢迎访问达梦技术分享社区 ECO
https://eco.dameng.com