达梦 8 使用 dmhs 实现 DM 8 — DM 8数据双向与单向同步

本文主要介绍使用DMHS软件,该软件支持异构和同构同步数据,本文主要是实现DM8——>DM8 的数据双向与单向同步。具体内容如下:

目录

1 软件版本:

2 安装dmhs

2.1 图形方式安装dmhs

3 准备数据库环境

3.1 开归档

3.2 开启逻辑日志

3.3  配置DDL辅助表和触发器

3.4 创建dmhs连接数据库的用户

4 源端和目标端环境准备

4.1 同步目标说明

4.2 源端和目标端环境准备

4.2.1 准备源端HR模式的数据

4.2.2 准备目标端DMHR及SALES模式

5 dmhs服务配置

5.1 配置服务

5.2 配置dmhs用于同步的配置文件

5.2.1 节点一 : 配置文件

5.2.2 节点二:配置文件

5.3 启动dmhs服务

5.3.1 启动节点一服务

5.3.2 启动节点二服务

5.3.3 服务启动的日志

6 Load装载数据即初始化

6.1 节点二执行:

6.1.1 DMHS> start exec

6.1.2 查看日志

6.1.3 查看5346端口

6.2 节点一执行:

6.2.1 start exec

6.2.4 set clear lsn

6.2.5 同步hr模式的字典

6.2.6 节点一查看日志

6.2.7 节点二查看日志

6.2.8 节点一执行装载数据

6.3 验证数据

7 启动cpt,实现双向同步和单向同步

7.1 初始化节点一和节点二exec和cpt字典

7.2 节点一启动CPT

7.3 节点二启动CPT

7.4 数据对比

7.5 双向同步验证

7.5.1 DML语句双向同步验证

7.5.2 DDL语句的双向同步验证


1 软件版本:

DMHS 软件支持同构和异构数据库数据同步。

1、如果源端数据库平台与目的端数据库平台完全一致(数据库类型、操作系统、硬件架构),则只需要一个 DMHS 产品版本,DMHS 版本不区分源端软件与目的端软件。

2、如果源端数据库平台与目的端数据库平台不一致,则需要两个对应的 DMHS 版本。

Dmhs:dmhs_V4.3.32_dm8_rev163952_rh6_64_20240710.bin 

数据库:dm8

节点一:192.168.6.220 数据库端口:5236

节点二:192.168.6.221 数据库端口:5237

2 安装dmhs

注:节点一和节点二做相同的工作。

将软件包拷贝到/home/dmdba/目录,并授权:

[root@dba ~]# mv dmhs_V4.3.32_dm8_rev163952_rh6_64_20240710.bin /home/dmdba

[root@dba ~]# chown dmdba:dinstall /home/dmdba/dmhs

dmhs/

dmhs_V4.3.32_dm8_rev163952_rh6_64_20240710.bin

[root@dba ~]# chown dmdba:dinstall /home/dmdba/dmhs_V4.3.32_dm8_rev163952_rh6_64_20240710.bin

[root@dba ~]# chmod 755 /home/dmdba/dmhs_V4.3.32_dm8_rev163952_rh6_64_20240710.bin

2.1 图形方式安装dmhs

[dmdba@dba ~]$ export DISPLAY=192.168.6.1:0.0

[dmdba@dba ~]$ pwd

/home/dmdba

[dmdba@dba ~]$ ./dmhs_V4.3.32_dm8_rev163952_rh6_64_20240710.bin

3 准备数据库环境

注:节点一和节点二做相同的操作

3.1 开归档

Alter database mount;

alter database archivelog;

alter database add archivelog 'DEST=/home/dmdba/arc, TYPE=LOCAL, FILE_SIZE=64, SPACE_LIMIT=0, ARCH_FLUSH_BUF_SIZE=0';

Alter database open;

SQL>  select  arch_mode from v$database;

行号     ARCH_MODE

---------- ---------

1          Y

3.2 开启逻辑日志

SQL> SP_SET_PARA_VALUE(1,'RLOG_APPEND_LOGIC',1);

DMSQL 过程已成功完成

已用时间: 16.797(毫秒). 执行号:1904.

SQL> select para_value from v$dm_ini where para_name in ('RLOG_APPEND_LOGIC');

行号     PARA_VALUE

---------- ----------

1          1

3.3  配置DDL辅助表和触发器

使用manager工具执行如下脚本:

/home/dmdba/dmhs/scripts/ddl_sql_dm8.sql

(通过ftp下载到本地,打开复制粘贴里面的内容到manager工具执行)

注:使用manager工具执行脚本。这里使用disql执行会报错。报177行的17列else附近有错误。

并且提示输入变量的值(set define off)

查看创建的辅助表:

SQL> select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DMHS%' and status = 'VALID';

行号     OWNER  TABLE_NAME      

---------- ------ ----------------

1          SYSDBA DMHS_DDL_COL

2          SYSDBA DMHS_DDL_SQL

3          SYSDBA DMHS_DDL_CONS

4          SYSDBA DMHS_DDL_IDX

5          SYSDBA DMHS_DDL_RENAME

6          SYSDBA DMHS_DDL_SEQ

7          SYSDBA DMHS_DDL_PART

8          SYSDBA DMHS_DDL_COMMENT

9          SYSDBA DMHS_DDL_LOG

查询创建的触发器:

SQL> select owner, trigger_name from dba_triggers where owner = 'SYSDBA' and trigger_name like 'DMHS%' and status = 'Y';

行号     OWNER  TRIGGER_NAME           

---------- ------ -----------------------

1          SYSDBA DMHS_DDL_TRIGGER_AFTER

2          SYSDBA DMHS_DDL_TRIGGER_BEFORE

3          SYSDBA DMHS_DDL_TRIGGER_GRANT

4          SYSDBA DMHS_DDL_TRIGGER_REVOKE

这里共创建了9个表,4个触发器。如果以上脚本报错,创建的表数和触发器数会少。

3.4 创建dmhs连接数据库的用户

这里为了方便操作授予dba权限了。

SQL> create tablespace dmhstbs datafile '/dm8/data/DAMENG/dmhstbs.dbf' size  200;

操作已执行

已用时间: 121.212(毫秒). 执行号:66107.

SQL> create user dmhsuser identified by dameng123 default tablespace dmhstbs;

操作已执行

已用时间: 15.739(毫秒). 执行号:66108.

SQL> grant dba to dmhsuser;

操作已执行

4 源端和目标端环境准备

4.1 同步目标说明

如图实现两个目标:

双向同步:

双向同步适用于“双活”数据库场景,将节点1:192.168.6.220:5236的DMSERVER库的HR模式的数据和192.168.6.221:5237的DMSERVER数据库的HR进行双向同步。

单向同步:

将节点1:192.168.6.220:5236的DMSERVER库的HR模式的test表单向同步到节点二:192.168.6.221:5237 DMSERVER数据库中的sales模式。

4.2 源端和目标端环境准备

4.2.1 准备源端HR模式的数据

节点一数据库:192.168.6.220:5236

SQL> show parameter instance_name

行号     PARA_NAME     PARA_VALUE

---------- ------------- ----------

1          INSTANCE_NAME DMSERVER

DMHR模式的准备,只需在通过dbca.sh工具建库时,勾选了该模式:

创建的结果:

将DMHR数据导出,建立hr模式,将DMHR的数据导入到HR模式。

[dmdba@dba ~]$ dexp sysdba/SYSDBA schemas=dmhr file=/home/dmdba/dmhr.dump log=/home/dmdba/dmhr.log

SQL>create tablespace dmhrtbs datafile '/dm8/data/DM/dmhrtbs.dbf' size 200;

SQL>create user hr identified by dameng123 default tablespace dmhrtbs;

SQL> grant VTI to hr;

操作已执行

已用时间: 10.965(毫秒). 执行号:64410.

SQL> grant public,resource to hr;

操作已执行

已用时间: 9.845(毫秒). 执行号:64411.

SQL> grant dba to hr;

操作已执行

[dmdba@dba ~]$ dimp sysdba/SYSDBA file=/home/dmdba/dmhr.dump log=/home/dmdba/dmhr.log remap_schema=dmhr:hr

4.2.2 准备目标端DMHR及SALES模式

节点二:DM数据库,192.168.6.221:5237

Dbca.sh建库时不创建sample模式。

当前模式为如下图:

创建两个空用户:此时为了操作方便授予dba权限了。

SQL> create tablespace dmhrtbs datafile '/dm8/data/DM/dmhrtbs.dbf' size 200;操作已执行

已用时间: 75.199(毫秒). 执行号:64403.

SQL> create tablespace dmsaletbs datafile '/dm8/data/DM/dmsaletbs.dbf' size 200;

操作已执行

已用时间: 72.351(毫秒). 执行号:64404.

SQL> create user dmhr identified by dameng123 default tablespace dmhrtbs;

操作已执行

已用时间: 12.768(毫秒). 执行号:64405.

SQL> create user sales identified by dameng123 default tablespace dmsaletbs;

操作已执行

已用时间: 11.725(毫秒). 执行号:64406.

SQL> grant VTI to sales;

操作已执行

已用时间: 12.552(毫秒). 执行号:64407.

SQL> grant public,resource to sales;

操作已执行

已用时间: 4.165(毫秒). 执行号:64408.

SQL> grant dba to sales;

操作已执行

已用时间: 9.164(毫秒). 执行号:64409.

SQL> grant VTI to dmhr;

操作已执行

已用时间: 10.965(毫秒). 执行号:64410.

SQL> grant public,resource to dmhr;

操作已执行

已用时间: 9.845(毫秒). 执行号:64411.

SQL> grant dba to dmhr;

操作已执行

已用时间: 9.136(毫秒). 执行号:64412.

5 dmhs服务配置

注:节点一和节点二做相同的操作

5.1 配置服务

[dmdba@dba ~]$ cd dmhs/

[dmdba@dba dmhs]$ ls

bin   desktop   include  jdk             log      tool         web

bin2  doc       install  license_en.txt  samples  uninst.sh

db    hs_agent  JAPI     license.txt     scripts  version.txt

[dmdba@dba dmhs]$ cd bin

[dmdba@dba bin]$ cp TemplateDmhsService DmhsService

[dmdba@dba bin]$ vi DmhsService

DMHS_HOME=/home/dmdba/dmhs

#REPLACE program dir

PROG_DIR=/home/dmdba/dmhs/bin

#REPLACE program config path

CONF_PATH=/home/dmdba/dmhs/bin/dmhs.hs

#REPLACE need library path, LD_LIBRARY_PATH/LIBPATH

NEED_LIB_PATH=/home/dmdba/dmhs/bin:/dm8/bin:/home/dmdba/dmhs/hs_agent

HS_NLS_LANG="american_america.AL32UTF8"

节点二:192.168.6.221做以上相同的操作。

5.2 配置dmhs用于同步的配置文件

5.2.1 节点一 : 配置文件

[dmdba@dba bin]$ pwd

/home/dmdba/dmhs/bin

[dmdba@dba bin]$ cat dmhs.hs

<?xml version="1.0" encoding="GB2312" standalone="no"?>

<dmhs>

    <base>

        <lang>en</lang>

        <mgr_port>5345</mgr_port>

        <ckpt_interval>60</ckpt_interval>

        <siteid>20</siteid>

        <version>2.0</version>

    </base>

    <cpt>

        <name>cpt0620</name>

        <db_type>dm8</db_type>

        <db_server>192.168.6.220</db_server>

        <db_user>DMHSUSER</db_user>

        <db_ssl_path/>

        <db_ssl_pwd/>

        <db_pwd>dameng123</db_pwd>

       #<char_code>PG_UTF8</char_code>

        <db_port>5236</db_port>

      <ddl_mask>op:TABLE:VIEW:PROCEDURE:FUNCTION:TRIGGER:INDEX:CHECK:SEQUENCE:TYPE:PACKAGE:SYNONYM</ddl_mask>

        <parse_thr>1</parse_thr>

        <arch>

            <clear_flag>1</clear_flag>

            <clear_interval>600</clear_interval>

        </arch>

        <send>

            <ip>192.168.6.221</ip>

            <mgr_port>5345</mgr_port>

            <data_port>5346</data_port>

            <trigger>1</trigger>

            <constraint>1</constraint>

            <identity>1</identity>

            <net_turns>0</net_turns>

            <filter>

                <enable>

<item>HR.CITY</item>

<item>HR.DEPARTMENT</item>

<item>HR.EMPLOYEE</item>

<item>HR.JOB</item>

<item>HR.JOB_HISTORY</item>

<item>HR.LOCATION</item>

<item>HR.REGION</item>

<item>HR.TEST</item>

                </enable>

            </filter>

            <map>

<item>HR.CITY==DMHR.CITY</item>

<item>HR.DEPARTMENT==DMHR.DEPARTMENT</item>

<item>HR.EMPLOYEE==DMHR.EMPLOYEE</item>

<item>HR.JOB==DMHR.JOB</item>

<item>HR.JOB_HISTORY==DMHR.JOB_HISTORY</item>

<item>HR.LOCATION==DMHR.LOCATION</item>

<item>HR.REGION==DMHR.REGION</item>

<item>HR.TEST==SALES.TEST</item>

            </map>

        </send>

    </cpt>

    <exec>

        <recv>

            <mgr_port>5345</mgr_port>

            <data_port>5346</data_port>

        </recv>

        <enable>1</enable>

        <name>exec0620</name>

        <db_type>DM8</db_type>

        <db_server>192.168.6.220</db_server>

        <db_user>DMHSUSER</db_user>

        <db_pwd>dameng123</db_pwd>

        <db_port>5236</db_port>

 <exec_thr>1</exec_thr>

 <exec_sql>1024</exec_sql>

 <exec_trx> 5000 </exec_trx>

 <exec_rows>1000</exec_rows>

 <save_mask>EXEC</save_mask>

 <exec_policy>2</exec_policy>

 <ddl_continue>1</ddl_continue>

    </exec>

</dmhs>

5.2.2 节点二:配置文件

[dmdba@dba2 bin]$ pwd

/home/dmdba/dmhs/bin

[dmdba@dba2 bin]$ cat dmhs.hs

<?xml version="1.0" encoding="GB2312" standalone="no"?>

<dmhs>

    <base>

        <lang>en</lang>

        <mgr_port>5345</mgr_port>

        <ckpt_interval>60</ckpt_interval>

        <siteid>21</siteid>

        <version>2.0</version>

    </base>

    <cpt>

        <name>cpt0621</name>

        <db_type>dm8</db_type>

        <db_server>192.168.6.221</db_server>

        <db_user>DMHSUSER</db_user>

        <db_ssl_path/>

        <db_ssl_pwd/>

        <db_pwd>dameng123</db_pwd>

       # <char_code>PG_UTF8</char_code>

        <db_port>5237</db_port>

        <ddl_mask>op:TABLE:VIEW:PROCEDURE:FUNCTION:TRIGGER:INDEX:CHECK:SEQUENCE:TYPE:PACKAGE:SYNONYM</ddl_mask>

        <parse_thr>1</parse_thr>

        <arch>

            <clear_flag>1</clear_flag>

            <clear_interval>600</clear_interval>

        </arch>

        <send>

            <ip>192.168.6.220</ip>

            <mgr_port>5345</mgr_port>

            <data_port>5346</data_port>

            <trigger>1</trigger>

            <constraint>1</constraint>

            <identity>1</identity>

            <net_turns>0</net_turns>

            <filter>

                <enable>

<item>DMHR.CITY</item>

<item>DMHR.DEPARTMENT</item>

<item>DMHR.EMPLOYEE</item>

<item>DMHR.JOB</item>

<item>DMHR.JOB_HISTORY</item>

<item>DMHR.LOCATION</item>

<item>DMHR.REGION</item>

                </enable>

            </filter>

            <map>

<item>DMHR.*==HR.*</item>

            </map>

        </send>

    </cpt>

    <exec>

        <recv>

            <mgr_port>5345</mgr_port>

            <data_port>5346</data_port>

        </recv>

        <enable>1</enable>

        <name>exec0621</name>

        <db_type>DM8</db_type>

        <db_server>192.168.6.221</db_server>

        <db_user>DMHSUSER</db_user>

        <db_pwd>dameng123</db_pwd>

        <db_port>5237</db_port>

 <exec_thr>1</exec_thr>

 <exec_sql>1024</exec_sql>

 <exec_trx> 5000 </exec_trx>

 <exec_rows>1000</exec_rows>

 <save_mask>EXEC</save_mask>

 <exec_policy>2</exec_policy>

 <ddl_continue>1</ddl_continue>

    </exec>

</dmhs>

注:以上的配置文件中的内容可以参考dem的手册来查看,手册所在位置为$DMHS_HOME/doc目录下。这里不再详细解释。

5.3 启动dmhs服务

5.3.1 启动节点一服务

[dmdba@dba bin]$ ./DmhsService start

Starting DmhsService:                                      [ OK ]

[dmdba@dba bin]$ pwd

/home/dmdba/dmhs/bin

[dmdba@dba bin]$ netstat -anlp | grep 5345

(Not all processes could be identified, non-owned process info

 will not be shown, you would have to be root to see it all.)

tcp        0      0 0.0.0.0:5345            0.0.0.0:*               LISTEN      31588/dmhs_server   

5.3.2 启动节点二服务

节点2:/home/dmdba/dmhs 启动服务:

[dmdba@dba2 bin]$ ./DmhsService start

Starting DmhsService:                                      [ OK ]

[dmdba@dba2 bin]$ ps -ef | grep dmhs

dmdba     73016      1  0 10:43 pts/4    00:00:00 /home/dmdba/dmhs/bin/dmhs_server /home/dmdba/dmhs/bin/dmhs.hs -noconsole

dmdba     73101  19978  0 10:47 pts/4    00:00:00 grep --color=auto dmhs

[dmdba@dba2 bin]$ netstat -anlp | grep 5345

(Not all processes could be identified, non-owned process info

 will not be shown, you would have to be root to see it all.)

tcp        0      0 0.0.0.0:5345            0.0.0.0:*               LISTEN      73016/dmhs_server   

5.3.3 服务启动的日志

如果服务启动异常可以查看日志

[dmdba@dba dmhs]$ cd log

[dmdba@dba log]$ ll

total 360

-rw-rw-rw- 1 dmdba dinstall  10366 Jul 31 14:05 DmhsService.log

-rwxr-xr-x 1 dmdba dinstall 355430 Jul 30 13:58 install.log

[dmdba@dba log]$ pwd

/home/dmdba/dmhs/log

[dmdba@dba log]$ tail DmhsService.log

MGR[WARN]: License will expire on 2024-10-10

MGR[INFO]: load config file successful,site no:91, manager port :5345, poll interval:3, max mem size:64(GB)

MGR[INFO]: manager listening port:5345

MGR[INFO]: loading the execute module...

error in load libodbcinst.so!!: No such file or directory

EXE[INFO]: CONNECT: SERVER=192.168.6.220;DRIVER=DM8 ODBC DRIVER;UID=dmhsuser;PWD=******;TCP_PORT=5236;

EXE[INFO]: DM8 SAVEPOINT_LIMIT of dm.ini is 512, so SAVEPOINT optimization is enabled.

EXE[INFO]: EXEC_V4.3.32_D64

REV[INFO]: exec server data receiving thread created successfully, listening data port : 5346

2024-07-31 14:05:50 Dmhs server starting finished...

6 Load装载数据即初始化

6.1 节点二执行:

[dmdba@dba2 bin]$ ./dmhs_console

DMHS console tool: V4.3.32-Build(2024.07.10-163952trunc)_D64_2407

Copyright (c) 2020, DMHS. All rights reserved.

Type ? or "help" for help, type "quit" to quit console.

Connected to DMHS: 127.0.0.1:5345

execute success

Dameng HS Server V4.3.32-Build(2024.07.10-163952trunc)_D64_2407

6.1.1 DMHS> start exec

execute success

6.1.2 查看日志

[dmdba@dba2 dmhs]$ cd bin/log

[dmdba@dba2 log]$ ls

csl_202408.log  dmhs_202408.log

[dmdba@dba2 log]$ tail -f dmhs_202408.log

2024-08-01 13:06:39 MGR[INFO]: loading the execute module...

2024-08-01 13:06:39 EXE[INFO]: CONNECT: SERVER=192.168.6.221;DRIVER=DM8 ODBC DRIVER;UID=DMHSUSER;PWD=******;TCP_PORT=5237;

2024-08-01 13:06:39 EXE[INFO]: DM8 SAVEPOINT_LIMIT of dm.ini is 512, so SAVEPOINT optimization is enabled.

2024-08-01 13:06:39 EXE[WARN]: create table: DMHS_TRXID_TABLE

2024-08-01 13:06:39 EXE[WARN]: create table: DMHS_DTYPE_MAP

2024-08-01 13:06:40 EXE[WARN]: create table: DMHS_ERROR_TSK_TABLE

2024-08-01 13:06:40 EXE[WARN]: create table: DMHS_TABLE_SEQID

2024-08-01 13:06:40 EXE[WARN]: create table: DMHS_CHECKPOINT_TABLE

2024-08-01 13:06:40 EXE[WARN]: create table: DMHS_ERROR_TABLE

2024-08-01 13:06:40 EXE[WARN]: create table: DMHS_DPC_SYNC_TABLE

2024-08-01 13:06:40 EXE[INFO]: EXEC_V4.3.32_D64

2024-08-01 13:06:40 REV[INFO]: exec server data receiving thread created successfully, listening data port : 5346

6.1.3 查看5346端口

[dmdba@dba2 ~]$ netstat -anlp |grep 5346

(Not all processes could be identified, non-owned process info

 will not be shown, you would have to be root to see it all.)

tcp        0      0 0.0.0.0:5346            0.0.0.0:*               LISTEN      19008/dmhs_server   

6.2 节点一执行:

[dmdba@dba bin]$ ./dmhs_console

DMHS console tool: V4.3.32-Build(2024.07.10-163952trunc)_D64_2407

Copyright (c) 2020, DMHS. All rights reserved.

Type ? or "help" for help, type "quit" to quit console.

Connected to DMHS: 127.0.0.1:5345

execute success

Dameng HS Server V4.3.32-Build(2024.07.10-163952trunc)_D64_2407

6.2.1 start exec

DMHS> start exec

execute success

6.2.4 set clear lsn

DMHS> set clear lsn

execute success

6.2.5 同步hr模式的字典

DMHS> copy 0 "sch.name='HR'" CLEAR|DICT

CSL[WARN]: Detect the CLEAR mask, the mask will delete dict files, Whether to continue?(Y/N)Ycopy mask is : |DICT|PARTITION|REP

execute finish, please look up log file of exec module to check data load result

6.2.6 节点一查看日志

/home/dmdba/dmhs/bin/log/dmhs_202408.log

6.2.7 节点二查看日志

/home/dmdba/dmhs/bin/log/dmhs_202408.log

6.2.8 节点一执行装载数据

DMHS> copy 0 "sch.name='HR'" drop|create|insert|nolock|fast

CSL[WARN]: Detect the DROP mask, this mask will drop target db: TABLE, confirm to continue?(Y/N)

Y

copy mask is : |CREATE|DROP|NOLOCK|INSERT|TABLE|FAST|PARTITION|OBJID|REP

execute finish, please look up log file of exec module to check data load result

注:如上copy命令也是参考dem的手册,位置同样在$DMHS_HOME目录。

6.3 验证数据

在节点二上查看dmhr模式的数据情况:

7 启动cpt,实现双向同步和单向同步

7.1 初始化节点一和节点二exec和cpt字典

节点一操作:

[dmdba@dba bin]$ ./dmhs_console

DMHS console tool: V4.3.32-Build(2024.07.10-163952trunc)_D64_2407

Copyright (c) 2020, DMHS. All rights reserved.

Type ? or "help" for help, type "quit" to quit console.

Connected to DMHS: 127.0.0.1:5345

execute success

Dameng HS Server V4.3.32-Build(2024.07.10-163952trunc)_D64_2407

DMHS> clear exec lsn   

execute success

DMHS> copy 0 "sch.name='hr'" CLEAR|DICT

CSL[WARN]: Detect the CLEAR mask, the mask will delete dict files, Whether to continue?(Y/N)

Y

copy mask is : |DICT|PARTITION|REP

execute finish, please look up log file of exec module to check data load result

节点二操作:

[dmdba@dba2 bin]$ ./dmhs_console

DMHS console tool: V4.3.32-Build(2024.07.10-163952trunc)_D64_2407

Copyright (c) 2020, DMHS. All rights reserved.

Type ? or "help" for help, type "quit" to quit console.

Connected to DMHS: 127.0.0.1:5345

execute success

Dameng HS Server V4.3.32-Build(2024.07.10-163952trunc)_D64_2407

DMHS> start exec

execute success

DMHS> clear exec lsn   

execute success

DMHS>  copy 0 "sch.name='dmhr'" CLEAR|DICT

CSL[WARN]: Detect the CLEAR mask, the mask will delete dict files, Whether to continue?(Y/N)

Y

copy mask is : |DICT|PARTITION|REP

execute finish, please look up log file of exec module to check data load result

7.2 节点一启动CPT

DMHS> start cpt

execute success

DMHS> state

MGR: Capture Execute

TYPE    VID SITEID EXEC/CPT IP   PORT DBNAME

------- --- ------ ------------- ---- ------

Capture 0   91     192.168.6.221 5345        

execute success

7.3 节点二启动CPT

DMHS> start cpt

CSL[ERROR]: cannot start analysis module

日志报错:

DMHS>  copy 0 "sch.name='DMHR'" CREATE|INSERT

copy mask is : |CREATE|INSERT|TABLE|PARTITION|OBJID|REP

execute finish, please look up log file of exec module to check data load result

注:目的端要启动cpt。如果没有启动的话,反向同步会有问题。当没有启动时,查看后台报错。

DMHS>  start cpt

execute success

DMHS> state

MGR: Execute

TYPE    VID SITEID EXEC/CPT IP   PORT DBNAME

------- --- ------ ------------- ---- ------

Capture 0   92     192.168.6.220 5345        

Execute 0   91     192.168.6.220 5345        

execute success

7.4 数据对比

节点二:DMHR

create table count_all_tables(tab_owner varchar(100),tab_name varchar(100),tab_count int);

declare

begin

for rec in (select owner,object_name from all_objects where owner in ('DMHR')  and object_type='TABLE') loop

begin

execute immediate 'insert into count_all_tables select '''|| rec.owner ||''','''|| rec.object_name ||''',count(*) from '|| rec.owner || '."' || rec.object_name||'"';

exception when others then

dbms_output.put_line( rec.owner || '.' || rec.object_name || 'get count error');

end;

end loop;

end;

select tab_owner,tab_name,tab_count from count_all_tables where TAB_OWNER='DMHR' order by 3 desc;

节点一:HR

create table count_all_tables(tab_owner varchar(100),tab_name varchar(100),tab_count int);

declare

begin

for rec in (select owner,object_name from all_objects where owner in ('HR')  and object_type='TABLE') loop

begin

execute immediate 'insert into count_all_tables select '''|| rec.owner ||''','''|| rec.object_name ||''',count(*) from '|| rec.owner || '."' || rec.object_name||'"';

exception when others then

dbms_output.put_line( rec.owner || '.' || rec.object_name || 'get count error');

end;

end loop;

end;

select tab_owner,tab_name,tab_count from count_all_tables where TAB_OWNER='HR' order by 3 desc;

7.5 双向同步验证

7.5.1 DML语句双向同步验证

节点一:执行如下update 2002号员工原工资5000。

update hr.employee set salary=8000 where employee_id=2002;

commit;

select employee_id,salary from hr.employee where employee_id=2002;

查看节点二中的数据同步过来:

节点二执行修改2002号员工工资:

update dmhr.employee set salary=10000 where employee_id=2002;

Commit

select employee_id,salary from dmhr.employee where employee_id=2002;

查看节点一的2002员工的数据:

7.5.2 DDL语句的双向同步验证

节点一执行删除表操作:

drop table hr.JOB_HISTORY;

节点二查看该表被删除:

节点二执行ddl语句:

drop table dmhr.employee;

查看节点一:

7.6 测试单向同步:源端hr.test-->目的端sales.test

节点一:

insert into hr.test values(3,'t3');

commit;

节点二:

select * from sales.test;

更多详情请参考 安装部署 | 达梦技术文档

至此结束!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值