通过软件将安装包上传至对应系统的相应目录之后需要赋予权限
chmod -R 755 dmdrs_rev200238_x86_rh6_64_***.bin
切换用户并进行安装
su dmdba
# 这里加上-i参数进行静默安装
./dmdrs_rev200238_x86_rh6_64_***.bin -i
输入c选择中文安装
Extract install files.........
Please select the installer's language (E/e:English C/c:Chinese)[E/e]:c
可以自己指定目录安装,这里采用默认安装路径
-----------欢迎使用达梦数据复制软件安装工具-----------
输入[exit]可退出安装。
-----------安装目录-----------
指定安装目录[/home/dmdba/dmdrs5]:
DMDRS 安装时提供 2 个组件进行选择安装。
-----------安装组件-----------
请选择需要安装的组件
1.安装达梦数据融合管理平台
2.安装代理
请选择安装组件数字序号(使用空格间隔):1 2
选择的组件有:
1.安装达梦数据融合管理平台
2.安装代理
确认?[Y/y(确认选择) or N/n(重新选择)]:y
-----------许可证文件-----------
1.免费试用达梦数据复制软件(必须在试用期范围内使用,反复安装无效,使用时间为3个月)
2.使用许可证文件
指定许可证文件(1,2)[1]:1
免费试用许可证文件限制信息如下:
有效日期:2025-10-16
版本类型:试用版
许可证编号:dm66n367
授权顾客名称:DEVELOP USER
当前选择为免费试用,是否继续安装?[Y/y or N/n]:y
-----------配置-----------
数据库驱动路径配置 -数据库驱动路径[]:/home/dmdba/dmdbms/bin
注意:代理配置IP不允许设置成127.0.0.1!
代理配置-代理IP(192.168.122.1,192.168.4.7):192.168.4.7
代理配置-代理端口[19345]:
达梦数据融合管理平台配置-管理平台端口[8080]:8090
注意:密码必须至少8个字符,并且满足以下条件中的任意[两项]:数字、大写字母、小写字母、特殊字符(如!@#$%^&*等)。
达梦数据融合管理平台配置-管理平台密码:
达梦数据融合管理平台配置-管理平台确认密码:
是否使用外置库(0:不使用 1:使用 )[0]:0
注意:请输入9至48个字符长度的密码,并且满足以下条件中的任意[三项]:数字、大写字母、小写字母、特殊字符(如!@#$%^&*等)。
内置数据库配置-密码:
内置数据库配置-确认密码:
-----------安装小结-----------
安装目录:[/home/dmdba/dmdrs5]
数据库驱动路径:[/home/dmdba/dmdbms/bin]
代理IP:[192.168.4.7]
代理端口:[19345]
达梦数据融合管理平台IP:[127.0.0.1]
达梦数据融合管理平台端口:[8090]
内置库信息:
数据库IP:[127.0.0.1]
数据库端口:[15236]
用户名:[SYSDBA]
密码:[******]
所需磁盘空间/可用磁盘空间:[3,191 MB/9,244 MB]
确认安装?[Y/y or N/n]:y
-----------安装中-----------
server 正在安装 ... server 安装完成.
default 正在安装 ... default 安装完成.
agent 正在安装 ... agent 安装完成.
web 正在安装 ... web 安装完成.
doc 正在安装 ... doc 安装完成.
db 正在安装 ... db 安装完成.
安装成功
-----------系统服务-----------
内置数据库服务设置
1.注册系统服务
2.不注册系统服务
启动方式(1,2)[2]:1
正在创建内置数据库服务....
达梦数据融合管理平台服务设置
1.注册系统服务
2.不注册系统服务
启动方式(1,2)[2]:1
正在创建达梦数据融合管理平台服务....
达梦数据融合管理平台代理服务设置
1.注册系统服务
2.不注册系统服务
启动方式(1,2)[2]:1
正在创建达梦数据融合管理平台代理服务....
以下配置脚本需要以"root"用户的身份运行.
/home/dmdba/dmdrs5/scripts/root/root_installer.sh
是否已执行shell脚本?(Y/y or N/n)[Y/y]:y
需要以root用户身份运行相应脚本完成服务配置
-----------安装总结-----------
达梦数据复制软件V5安装完成
地址:http://127.0.0.1:8090
用户名/密码:admin/******
更多安装信息,请查看安装日志文件:/home/dmdba/dmdrs5/log/install.log
安装完成后可以在通过http://本机IP:8090访问DMDFM
在源DMDRS和目标DMDRS服务器修改bash_profile中的环境变量LD_LIBRARY_PATH,添加DMDPI驱动文件路径
vi ~/.bash_profile
# 修改变量
export LD_LIBRARY_PATH=<DMDPI驱动路径>:$LD_LIBRARY_PATH
# 保存并退出vi编辑器,使环境变量生效,并查看更改是否生效
source ~/.bash_profile
echo $LD_LIBRARY_PATH
为了保证源DMDRS服务运行中数据的一致性,源DMDRS服务需要读源数据库的归档和逻辑日志,因此源数据库需要开启归档和逻辑日志功能。可以通过静态配置和动态配置完成。
#configuration file
ARCH_INI = 1
#redo log
RLOG_APPEND_LOGIC = 1
其中RLOG_APPEND_LOGIC为控制是否启用在日志中记录逻辑操作的功能的参数,取值范围为0-4,0为不启用,1、2、3、4为启用 [ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmarch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 10240
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=/home/dmdba/dmarch,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.
调用系统过程SP_SET_PARA_VALUE配置DM8数据库配置文件“dm.ini”中RLOG_APPEND_LOGIC参数值SQL> call sp_set_para_value(1,'RLOG_APPEND_LOGIC',1);
完成后检查ARCH_INI和RLOG_APPEND_LOGIC参数配置是否生效<br> SQL> select para_name, para_value, sess_value, file_value from V$DM_INI where para_name = 'ARCH_INI';
行号 PARA_NAME PARA_VALUE SESS_VALUE FILE_VALUE
---------- --------- ---------- ---------- ----------
1 ARCH_INI 1 1 1
已用时间: 4.117(毫秒). 执行号:13307.
RLOG_APPEND_LOGIC部分: SQL> select para_name, para_value, sess_value, file_value from V$DM_INI where para_name = 'RLOG_APPEND_LOGIC';
行号 PARA_NAME PARA_VALUE SESS_VALUE FILE_VALUE
---------- ----------------- ---------- ---------- ----------
1 RLOG_APPEND_LOGIC 1 1 1
已用时间: 3.857(毫秒). 执行号:13308.
在源数据库执行“ddl_sql_dm8.sql”脚本创建触发器和辅助表,脚本默认位置在DMDRS执行程序目录下的scripts子目录中
SQL> set define off;
SQL> start /home/dmdba/dmdrs5/bin/scripts/ddl_sql_dm8.sql
检查创建的触发器和辅助表是否有效
SQL> select owner, trigger_name from dba_triggers where owner = 'SYSDBA' and trigger_name like 'DRS_$%' and status = 'Y';
行号 owner trigger_name
---------- ------ -----------------------
1 SYSDBA DRS_$DDL_TRIGGER_AFTER
2 SYSDBA DRS_$DDL_TRIGGER_BEFORE
3 SYSDBA DRS_$DDL_TRIGGER_GRANT
4 SYSDBA DRS_$DDL_TRIGGER_REVOKE
SQL> select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DRS_$%' and status = 'VALID';
行号 owner table_name
---------- ------ -----------------
1 SYSDBA DRS_$DDL_COL
2 SYSDBA DRS_$DDL_SQL
3 SYSDBA DRS_$DDL_CONS
4 SYSDBA DRS_$DDL_IDX
5 SYSDBA DRS_$DDL_RENAME
6 SYSDBA DRS_$DDL_SEQ
7 SYSDBA DRS_$DDL_PART
8 SYSDBA DRS_$DDL_COMMMENT
9 SYSDBA DRS_$DDL_LOG
9 rows got
源数据库管理员和目标数据库管理员分别创建数据库同步用户DMDRS,同时该用户需要被赋予一定的权限,一般建议赋予所需的最小权限<br>
## 创建数据库同步用户DMDRS(源库和目标库都需要进行)
CREATE USER DMDRS IDENTIFIED BY "Dmglydmm@2025";
DM8源数据库同步用户最小权限脚本示例:
-- ## 基础权限
-- 插入、删除、更新数据时,需要数据操作权限
GRANT PUBLIC TO DMDRS;
-- 需要系统表、系统字典和动态视图的查询权限
GRANT SOI,VTI TO DMDRS;
-- 需要创建会话权限
GRANT CREATE SESSION TO DMDRS;
-- ## 装载相关权限
-- 需要非同步用户下待装载表/序列上的查询权限
GRANT SELECT ON <待装载表/序列的模式名>.<待装载表/序列的表名> TO DMDRS;
-- ## 同步相关权限
-- DM8触发器同步时,如果数据库用户不是SYSDBA用户,需要对SYSDBA.DRS_$DDL_LOG具有查询权限
GRANT SELECT ON SYSDBA.DRS_$DDL_LOG TO DMDRS;
-- ## DSC同步相关权限
-- DSC时,需要新增以下权限:
GRANT CREATE TABLE TO DMDRS;
GRANT CREATE PACKAGE TO DMDRS;
DM8目标数据库同步用户最小权限脚本示例:
-- ## 基础权限
-- 插入、删除、更新数据时,需要数据操作权限
GRANT PUBLIC TO DMDRS;
-- 启动时需要在目标数据库中创建辅助表和辅助存储过程
GRANT RESOURCE TO DMDRS;
-- 需要查询数据库的相关参数信息、系统表字典信息
GRANT SOI,VTI TO DMDRS;
-- 需要创建会话权限
GRANT CREATE SESSION TO DMDRS;
-- ## 装载与同步相关权限
-- 需要非同步用户模式下已存在的待同步表/序列的操作权限
GRANT INSERT ON <目标表的模式名>.<目标表名> TO DMDRS;
GRANT UPDATE ON <目标表的模式名>.<目标表名> TO DMDRS;
GRANT DELETE ON <目标表的模式名>.<目标表名> TO DMDRS;
GRANT SELECT ON <目标序列的模式名>.<目标序列名> TO DMDRS;
-- 需要非同步用户模式下未存在的表/序列的数据的操作权限。也可以在目标同步表创建后,同上行所述单独为每张表赋予操作权限
GRANT INSERT ANY TABLE TO DMDRS;
GRANT UPDATE ANY TABLE TO DMDRS;
GRANT DELETE ANY TABLE TO DMDRS;
GRANT SELECT ANY TABLE TO DMDRS;
GRANT SELECT ANY SEQUENCE TO DMDRS;
-- 需要非同步用户模式下创建表注释的权限
GRANT COMMENT ANY TABLE TO DMDRS;
-- 需要非同步用户模式下对象的DDL权限
GRANT CREATE ANY <对象类型> TO DMDRS;
GRANT ALTER ANY <对象类型> TO DMDRS;
GRANT DROP ANY <对象类型> TO DMDRS;
-- 需要非模式对象(表空间、用户、角色和公共同义词)的DDL权限
GRANT CREATE <对象类型> TO DMDRS;
GRANT ALTER <对象类型> TO DMDRS;-- 角色和公共同义词不需要此权限
GRANT DROP <对象类型> TO DMDRS;
-- 需要赋予同步用户辅助存储过程的执行权限以及非同步用户下模式所属用户的存储过程的创建权限
GRANT EXECUTE ON PROCEDURE "DRS_$DDL_SQL_PROC" TO DMDRS;
GRANT CREATE PROCEDURE TO <非同步用户下模式所属的用户>;
在登录DMDFM后首先需要分别补充代理信息,选择左侧菜单栏中的运维-代理管理,分别补充两个代理的信息
在完成内容补充后同样在左侧菜单栏中选择数据源-数据源管理,然后在关系型数据库中新增数据源,将源数据库和目标数据库都添加进去
新建工程选择一对一场景模板<br>
在基本配置中分别配置源dmdrs和目标dmdrs
在链路配置中添加对应信息
点击立即部署即可安装部署dmdrs服务,但是出现链路预检察未通过时需要先处理预检察未通过的相应问题
在处理完成后安装部署dmdrs服务
启动服务时,先启动目的端,待目的端成功启动变蓝后,再启动源端,否则会因为源端先启动,目的端未启动报错“连接失败”。<br>
右键对应node选择启动,当图标由灰变蓝时说明服务启动成功
选择上方菜单栏的装载按钮开始配置装载设置
配置相关信息,选择合适的装载模式和需要装载的表,这里选择模式“全量装载+增量同步”并选择对应的测试表
测试表初始化如下
CREATE TABLE TEMP.TEST_DRS (
ID INT PRIMARY KEY,
NAME VARCHAR(50),
CREATE_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO TEMP.TEST_DRS(ID, NAME) VALUES(1, 'Test_Record');
在完成配置后需要进行预检查查看是否存在未通过的检测,如果有需要相应的去处理
完成以上工作后启动link1
查看源库对应测试表与数据是否成功迁移至目标库
在源库插入新数据查看是否能够同步至目标库
分别配置源DMDRS服务和目标DMDRS服务
/home/dmdba/dmdrs5/bin/conf_sample# 将cpt.xml复制到上一级目录中
cp cpt.xml ../cpt.xml
< -- 源DMDRS -- >
<?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.4.7</server>
<user>DMDRS</user>
<pwd>Dmglydmm@2025</pwd>
<port>5237</port>
</login>
<send>
<ip>192.168.4.8</ip>
<port>5345</port>
<target_name>exec_dm8</target_name>
<map>
<item>TEMP.*==TEMP.*</item>
</map>
</send>
</cpt>
</drs>
/home/dmdba/dmdrs5/bin/conf_sample<?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.4.8</server>
<user>DMDRS</user>
<pwd>Dmglydmm@2025</pwd>
<port>5237</port>
</login>
</exec>
</drs>
按照服务的运行顺序,启动目标DMDRS服务和源DMDRS服务(先目标再源)
cp TemplateService ../DrsService
修改DrsService内容
vi DrsService
# 修改内容
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"
启动服务
./DrsService start
cp TemplateService ../DrsService
修改DrsService内容
vi DrsService
# 修改内容
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"
启动服务
./DrsService start
启动控制台
./drcsl cpt.xml
# 连接源DMDRS
CSL> connect
# 将目标模式TEMP下的表TEST_DRS进行迁移
CSL> alter cpt_dm8 cp "sch.name='TEMP' and tab.name='TEST_DRS'"
迁移完成后使用命令查看数据迁移的监控信息
启动控制台
./drcsl cpt.xml
# 连接源DMDRS
CSL> connect
# 设置数据库当前最新的日志LSN作为日志解析的起始位置。
CSL> alter cpt_dm8 set lsn
# 启动源DMDRS服务中的CPT模块。
CSL> start
# 将目标模式TEMP下的表TEST_DRS进行同步
alter cpt_dm8 add table "sch.name='TEMP'"
迁移完成后使用命令查看数据迁移的监控信息
文章
阅读量
获赞
