注册
DM数据库迁移工具DRS学习验证-oracle2dm
专栏/技术分享/ 文章详情 /

DM数据库迁移工具DRS学习验证-oracle2dm

WXY是对称的 2025/07/18 146 0 0
摘要

DM数据库迁移工具DRS学习验证-oracle2dm

一、 实践部署

本次部署基于oracle-dm8进行一对一数据增量同步。

1. 环境准备

1.1 硬件环境

服务器名称 IP CPU 内存 硬盘
dms 192.168.30.28 2 5 50
slave 192.168.20.138 2 5 50

1.2 数据库环境

实例名 IP 端口 数据目录 归档目录 DRS目录
prod1 192.168.30.28 1521 /home/oracle/oracle/product/11.2.0 /home/oracle/oracle/prod1_archive_log /home/oracle/dmdrs
DMS 192.168.20.138 5236 /dmdba/dmdbms/data/DMSERVER /dmdba/dmdbms/data/DMSERVER/arch /dmdba/dmdrs

1.3 模块信息

实例名 IP 端口 管理端口mgr_port 站点号siteid 模块服务名
prod1 192.168.30.28 1521 5458 6 cpt_ora
DMS 192.168.20.138 5236 5457 4 exec_dm8

2. 软件准备

2.1 DRS软件准备(主备相同,略)

[root@dms ~]# chown -R oracle:oinstall  /home/oracle/su - dmdba
[root@dms ~]# su - oracle
[oracle@dms ~]$ chmod +x dmdrs_rev191718_x86_rh6_64_20250619.bin
[oracle@dms ~]$ ./dmdrs_rev191718_x86_rh6_64_20250619.bin -i
Extract install files.........

Please select the installer's language (E/e:English C/c:Chinese)[E/e]:c
-----------欢迎使用达梦数据复制软件安装工具-----------
输入[exit]可退出安装。
-----------安装目录-----------
指定安装目录[/home/oracle/dmdrs5]:
-----------安装组件-----------
请选择需要安装的组件
1.安装达梦数据融合管理平台
2.安装代理
请选择安装组件数字序号(使用空格间隔):1 2
选择的组件有:
1.安装达梦数据融合管理平台
2.安装代理
确认?[Y/y(确认选择) or N/n(重新选择)]:y
-----------许可证文件-----------
1.免费试用达梦数据复制软件(必须在试用期范围内使用,反复安装无效,使用时间为3个月)
2.使用许可证文件
指定许可证文件(1,2)[1]:1
expireDate----2025-09-17
免费试用许可证文件限制信息如下:
有效日期:2025-09-17
版本类型:试用版
许可证编号:dm66n367
授权顾客名称:DEVELOP USER
当前选择为免费试用,是否继续安装?[Y/y or N/n]:y
-----------配置-----------
依赖环境配置 -数据库动态库路径[/home/oracle/oracle/product/11.2.0/lib]:y
注意:代理配置IP不允许设置成127.0.0.1!
代理配置-代理IP(192.168.30.28):30
输入的IP非法,请重新输入!
注意:代理配置IP不允许设置成127.0.0.1!
代理配置-代理IP(192.168.30.28):192.168.30.28
代理配置-代理端口[19345]:
达梦数据融合管理平台配置-管理平台端口[8080]:
注意:密码必须至少8个字符,并且满足以下条件中的任意两项:数字、大写字母、小写字母、特殊字符(如!@#$%^&*等)。
达梦数据融合管理平台配置-管理平台密码:
达梦数据融合管理平台配置-管理平台确认密码:
是否使用外置库(0:不使用  1:使用 )[0]:
-----------安装小结-----------
安装目录:[/home/oracle/dmdrs5]
依赖环境配置-NEED_LIB_PATH:[y]
代理IP:[192.168.30.28]
代理端口:[19345]
达梦数据融合管理平台IP:[127.0.0.1]
达梦数据融合管理平台端口:[8080]
内置库信息:
数据库IP:[127.0.0.1]
数据库端口:[15236]
用户名:[SYSDBA]
密码:[******]
所需磁盘空间/可用磁盘空间:[2,699 MB/8,463 MB]
确认安装?[Y/y or N/n]:y
-----------安装中-----------
server start ...    server finished.
default start ...    default finished.
agent start ...    agent finished.
web start ...    web finished.
doc start ...    doc finished.
db start ...    db finished.
安装成功
-----------系统服务-----------
内置数据库服务设置
1.注册系统服务
2.不注册系统服务
启动方式(1,2)[2]:1
正在创建内置数据库服务....
达梦数据融合管理平台服务设置
1.注册系统服务
2.不注册系统服务
启动方式(1,2)[2]:1
正在创建达梦数据融合管理平台服务....
服务名冲突[DfmWebService.service]
服务名冲突,请手动卸载同名服务[/usr/lib/systemd/systemDfmWebService.service]
是否已删除服务[/usr/lib/systemd/systemDfmWebService.service]?(Y/y or N/n)[Y/y]:y
达梦数据融合管理平台代理服务设置
1.注册系统服务
2.不注册系统服务
启动方式(1,2)[2]:1
正在创建达梦数据融合管理平台代理服务....
以下配置脚本需要以"root"用户的身份运行.
/home/oracle/dmdrs5/scripts/root/root_installer.sh
是否已执行shell脚本?(Y/y or N/n)[Y/y]:y
-----------安装总结-----------
达梦数据复制软件V5安装完成
地址:http://127.0.0.1:8080
用户名/密码:admin/******
更多安装信息,请查看安装日志文件:/home/oracle/dmdrs5/log/install.log

2.2 源端修改数据库参数

2.2.1 使用SQLPlus登录到源数据库。

$ sqlplus / as sysdba

2.2.2 查看数据库归档模式是否开启。

若数据库已经开启归档模式,则跳过步骤3~步骤7。

SQL> archive log list;

2.2.3 暂停数据库服务。

SQL> shutdown immediate;

2.2.4 以mount方式启动Oracle数据库服务。

SQL> startup mount;

2.2.5 开启数据库归档,并设置归档文件路径。

SQL> alter database archivelog;
SQL> alter system set db_recovery_file_dest='';
SQL> alter system set log_archive_dest='/oradata/arch';

2.2.6 重启数据库,使归档路径生效。

SQL> shutdown immediate;
SQL> startup mount;

2.2.7 将数据库切换到正常的工作状态。

SQL> alter database open;

2.2.8 查看数据库最小附加日志及全列日志是否开启。

若数据库已经开启最小附加日志及全列日志,则跳过步骤9。

SQL> select supplemental_log_data_min from v$database;
SQL> select supplemental_log_data_all from v$database;

2.2.9 开启数据库最小附加日志及全列日志。

SQL> alter database add supplemental log data;
SQL> alter database add supplemental log data (ALL) columns;

2.2.10 Oracle 11g及以上版本需要开启enable_goldengate_replication参数。

SQL> alter system set enable_goldengate_replication = TRUE;

2.2.11 关闭回收站

SQL> alter system set recyclebin=off deferred;

2.2.12 创建测试用户

CREATE USER oradrs IDENTIFIED by Oradrs123;
grant dba  to oradrs;
grant CREATE SESSION to  oradrs;

2.3 目标端修改数据库参数

2.3.1 开启归档

alter database mount;
alter database ARCHIVELOG;
alter database ADD ARCHIVELOG 'type=local, dest=/dmdba/dmdbms/data/DMSERVER/arch, file_size=128, space_limit=10240';
alter database open;
--  SP_SET_ARCH_STATUS('DM3',1);     -- 特殊模式时可用
select * from v$arch_status;				 -- 查看集群归档状态,备库的无意义

2.3.2 创建用户

CREATE USER oradrs IDENTIFIED by Oradrs123;
grant dba  to oradrs;
grant CREATE SESSION to  oradrs;

3. 参数配置

3.1 目标端参数准备

3.1.1 环境配置

(1) Jdk环境配置

#解压jdk等操作

cat  >>/etc/profile <<EOF
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
EOF
(2) DMDPI环境配置
cat  >>~/.bash_profile <<EOF
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dmdba/dmdbms/bin"
export DM_HOME="/dmdba/dmdbms"
export PATH="$PATH:$DM_HOME/bin"
EOF
(3) 启动脚本配置
cp service_template/TemplateService  ./DrsService_o2dm
vim ./DrsService_o2dm

more  ./DrsService_o2dm
#set execute environment
#REPLACE INSTALL_HOME path
INSTALL_HOME=/dmdba/dmdrs5
#REPLACE program dir
PROG_DIR=/dmdba/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=/dmdba/dmdrs5/bin/exec.xml
#REPLACE need library path, LD_LIBRARY_PATH/LIBPATH
NEED_LIB_PATH=/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"
(4) exec模块配置
cp conf_sample/exec.xml ./
vim exec.xml
[dmdba@slave bin]$ cat exec.xml
<?xml version="1.0" encoding="GB18030"?>
<drs>
    <base>
        <mgr_port>5457</mgr_port><!--▒▒5345-->
        <lang>ch-utf8</lang>
        <siteid>4</siteid><!--▒▒2-->
    </base>
    <exec>
        <name>exec_dm8</name>
        <login>
            <dbtype>dm8</dbtype>
            <server>192.168.20.138</server>
            <user>oradrs</user>
            <pwd>Oradrs123</pwd>
            <port>5236</port>
        </login>
    </exec>
</drs>

3.2 源端参数准备

3.2.1 环境配置

(1) 环境配置

#解压jdk等操作

cat  >>/etc/profile <<EOF
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
EOF
(2) OCI环境配置
cat  >>~/.bash_profile <<EOF
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export PATH=$ORACLE_HOME/bin:/usr/sbin:$ORACLE_HOME/OPatch:$PATH
umask 022
EOF
(3) 启动脚本配置
cp service_template/TemplateService ./DrsService_o2dm
vi DrsService_o2dm
more DrsService_o2dm
#set execute environment
#REPLACE INSTALL_HOME path
INSTALL_HOME=/home/oracle/dmdrs5
#REPLACE program dir
PROG_DIR=/home/oracle/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=cpt.xml
#REPLACE need library path, LD_LIBRARY_PATH/LIBPATH
NEED_LIB_PATH=/home/oracle/oracle/product/11.2.0/lib

#REPLACE program name, drsvr/dssvr/dvsvr
EXEC_PROG_NAME=drsvr
#REPLACE service type,  drs server/dss server/dvs server
SERVICE_TYPE_NAME="drs server"
(4) cpt模块配置
[oracle@dms bin]$ cd /home/oracle/dmdrs5/bin
[oracle@dms bin]$ cat cpt.xml
<?xml version="1.0" encoding="GB18030"?>
<drs>
    <base>
        <mgr_port>5458</mgr_port><!--¿¿5345-->
        <lang>ch-utf8</lang>
        <siteid>6</siteid><!--¿¿2-->
    </base>
    <cpt>
        <name>cpt_ora</name>
        <login>
            <dbtype>oracle</dbtype>
            <server>dms:1521/prod1</server>
            <user>oradrs</user>
            <pwd>Oradrs123</pwd>
            <port>1521</port>
        </login>
        <send>
            <ip>192.168.20.138</ip>
            <port>5457</port>
            <target_name>exec_dm8</target_name>
            <map>
                <item>ORADRS.*==ORADRS.*</item>
            </map>
        </send>
    </cpt>
</drs>

4. 运行同步服务

4.1 前台启动目标端服务

[dmdba@slave bin]$ ./drsvr exec.xml

4.2 前天启动源端服务

[oracle@dms bin]$ ./drsvr cpt.xml

4.3 停止前台服务后启动目标端服务

[dmdba@slave bin]$ ./DrsService_o2dm start
Starting DrsService_o2dm:                                 [ OK ]

4.4 停止前台服务后启动源端服务

[dmdba@master bin]$ ./DrsService_o2dm start

Starting DrsService_o2dm:                                [ OK ]
[dmdba@master bin]$

4.5 通过控制台执行命令

./drcsl cpt.xml
CSL> connect 
CSL> alter cpt_ora set lsn
CSL[INFO]:  [INPUT CMD: alter cpt_ora set lsn]
MGR[INFO]:  成功获取模块的起始SCN cpt name: cpt_ora, SCN: 3295474
命令执行成功

CSL> alter cpt_ora  add table "sch.name = 'ORADRS'"
CSL[INFO]:  [INPUT CMD: alter cpt_ora  add table "sch.name = 'ORADRS'" ]
MGR[INFO]:  获取到装载掩码组合 mask: |CREATE|INSERT|INDEX|TABLE|CHECK|GROUP
命令执行成功

CSL> start cpt_ora
CSL[INFO]:  [INPUT CMD: start cpt_ora]
MGR[INFO]:  模块正在启动 module: cpt_ora
MGR[INFO]:  得到起始SCN start scn: 3295474
MGR[INFO]:  模块已经处于运行状态 module: cpt_ora
命令执行成功

5. 查看服务

5.1 查看进程

ps -ef|grep dmdba

5.2 通过控制工具查看

./drcsl
CSL> show  cpt_ora  load table all
CSL[INFO]:  [INPUT CMD: show  cpt_ora  load table all]
+------------------------------------------------------------------------------------+
|                                   【全部装载表】                                   |
+------------------------------------------------------------------------------------+
| 序号 | 模式名 | 表名 | 已装载行数 |   状态   |       开始时间      | 耗时 | 分组数 |
+------+--------+------+------------+----------+---------------------+------+--------+
|    1 | ORADRS | T1   |          1 | COMPLETE | 2025-07-11 14:48:43 |  7 s |      1 |
+------+--------+------+------------+----------+---------------------+------+--------+
命令执行成功
CSL>CSL>  show cpt_ora load status
CSL[INFO]:  [INPUT CMD:  show cpt_ora load status]
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                【装载状态】                                                                                |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 序号 | 需装载对象 | 装载字典 | 已装载对象 | 未装载对象 | 正装载对象 | 装载错误对象 |       开始时间      |       结束时间      |       装载条件      | 装载掩码 | 对象类型 |
+------+------------+----------+------------+------------+------------+--------------+---------------------+---------------------+---------------------+----------+----------+
|    1 |          1 |        1 |          1 |          0 |          0 |            0 | 2025-07-11 14:48:42 | 2025-07-11 14:48:51 | sch.name = 'ORADRS' |          | TABLE    |
+------+------------+----------+------------+------------+------------+--------------+---------------------+---------------------+---------------------+----------+----------+
命令执行成功
CSL>

CSL>  show cpt_ora load table error
CSL[INFO]:  [INPUT CMD:  show cpt_ora load table error]
无装载错误表信息!
命令执行成功
CSL>

5.3 查看目标端表

disql  oradrs/Oradrs123
select * from t1; 
行号     ID
---------- ----
1          10

二、 管理命令相关

1. 连接drs服务

CSL> connect 127.0.0.1:5446 

2. 设置lsn

CSL> alter cpt_ora  set lsn

3. 将DMDRS模式下的表全量迁移到目标数据库

alter cpt_ora  add table "sch.name = ORADRS"  truncate|insert|nolock|table

4. 通过以下命令监控装载状态及进度

–查看装载状态

CSL> show cpt_ora  load status

–查看装载的表的状态

CSL> show cpt_ora load table all

–查看正在装载的表

CSL> show cpt_ora  load table running

–查看装载报错的表

CSL> show cpt_ora  load table error

–装载失败的表继续装

CSL> alter cpt_ora  add table "sch.name='DMDRS'" continue

三、 注意事项

1. Oracle端的连接串需要注意

<server>dms:1521/prod1</server>

2. Oracle端未进行辅助表导入

Oracle不进行ddl辅助表导入,也能同步DDL。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服