达梦数据库-数据库主备集群更改实例目录及相关目录步骤-记录总结
2026/5/24 14:11:06 网站建设 项目流程

1达梦数据库-数据库主备集群更改实例目录及相关目录步骤-记录总结

1.1常见需求

当前数据库实例所在磁盘性能较差或空间不足,需格式化性能较好空间足的新磁盘并挂载,挂载到原目录或者新目录,然后把数据库实例目录移动到新磁盘。

1.2流程步骤

(1) 检查确认数据库实例相关的各种路径,如数据库系统表空间初始路径、自定义表空间数据文件路径、归档路径、跟踪日志路径、备份作业备份路径、审计日志路径(如果开启了审计);

(2) 格式化磁盘并挂载;

(3) 停止应用系统,对数据库进行联机在线物理热备份;

(4) 停止数据库集群,对主备数据库节点涉及文件和目录(包括实例目录、归档日志目录、自定义表空间目录)进行操作系统级别拷贝备份,如果操作过程中出现问题或其它特殊需求,可以快速回退到操作前状态。

(5)新磁盘挂载到原同名目录

1) 主备数据库节点操作,数据库实例拷贝到新目录;

2) 主备数据库节点操作,原目录修改名称或备份,卸载挂载原实例目录

3) 主备数据库节点操作,新磁盘卸载,重新挂载到同原名目录;

4) 启动数据库集群;

5) 登录数据库检查状态和路径情况;

6) 确认无误后,全备份,然后清除主备库机上操作过程中各种备份文件。

(6)新磁盘挂载到新目录名

1) 主备数据库节点操作,数据库实例拷贝到新目录;

2) 主备库修改新目录下实例dm.ini中的路径相关;

3) 主备库修改新目录下实例dmwatcher.ini中路径相关;

4) 主备库修改新目录下实例dmmal.ini中路径相关;

5) 主备库修改新目录下实例sqllog.ini中路径相关;

6) 主备库修改新目录下实例dmarch.ini中归档路径相关;

7) 主备库修改新目录下实例控制文件dm.ctl中路径相关;

8) 主备库修改DmServiceDAMENG命令工具中路径相关;

9) 主备库修改DmWatcherServiceGRP1命令工具中路径相关;

10)启动数据库主备集群,启动确认监视器服务;

11)登录数据库,修改备份作业路径相关。

12)登录数据库,检查状态和路径修改情况,检查表数据情况,数据库全备。

13)确认无误后,全备份,然后清除主备库机上操作过程中各种备份文件。

1.3初始环境说明

数据库集群GRP1

主库IP端口 192.168.118.236 5237

备库IP端口 192.168.118.237 5237

监视器机器 192.168.118.238

安装目录:/opt/dmdbms/bin

实例目录:/data/dmdata/DAMENG

归档目录:/data/dmarch/DAMENG

备份路径:/data/dmbak/DAMENG/bak/

用户和自定义表空间;TEST用户默认TEST表空间,路径/opt/tbspc/test.DBF

创建测试表及测试数据:TEST.t1 CALL SP_TABLEDEF('TEST', 'T1');

1.4lvm方式挂载新磁盘示例

pvcreate /dev/sdc

pvdisplay

vgcreate dbdata /dev/sdc

vgdisplay

lvcreate -l +100%free -n lv_data dbdata

lvdisplay

mkfs.xfs /dev/dbdata/lv_data

# 挂载分区到/datas目录

mkdir /datas

blkid

vi /etc/fstab

UUID=xxx /datas xfs defaults 0 0

mount -a

1.5数据库集群各种查询信息

查询确认数据库中各种相关路径情况:

本示例中只涉及 /data 和/opt/tbspc/

(1)数据库中各种路径梳理检查

--查询参数文件中路径设置

select PARA_NAME,PARA_VALUE from v$dm_ini where PARA_NAME like '%PATH';

--查看表空间与数据文件对应关系

SELECT * FROM V$DATAFILE;

SELECT * FROM V$HUGE_TABLESPACE;

SELECT TS.NAME, DF.PATH FROM V$TABLESPACE AS TS, V$DATAFILE AS DF WHERE TS.ID = DF.GROUP_ID;

--检查归档文件路径

select arch_mode from v$database;

select ARCH_TYPE,ARCH_DEST,ARCH_FILE_SIZE,ARCH_SPACE_LIMIT from v$dm_arch_ini;

--检查是否开启跟踪日志

select PARA_NAME,PARA_VALUE from v$dm_ini where PARA_NAME ='SVR_LOG';

[dmdba@192 ~]$ cat /data/dmdata/DAMENG/sqllog.ini

--检查是否开启审计及审计日志相关

SELECT * FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT';

select * from V$AUDIT_SPACE;

--检查备份作业文件路径

select * from SYSJOB.SYSJOBS;

select * from SYSJOB.SYSJOBSTEPS;

1.6数据库备份

关闭应用系统,数据库进行在线联机物理热备份。

SP_DBMS_JOB_RUN(1779546714);

1.7关闭数据库集群

(1)监视器机器停止确认监视器服务

root用户执行 systemctl stop DmMonitorServiceGRP1.service

dmdba用户执行DmMonitorServiceGRP1 stop

(2)主备服务器停止守护服务

root用户执行systemctl stop DmWatcherServiceGRP1

或者

dmdba用户执行DmWatcherServiceGRP1 stop

(3)主备服务器停止数据库服务

root用户执行systemctl stop DmServiceDAMENG.service

或者

dmdba用户执行DmServiceDAMENG stop

​​​​​​​1.8目录名称保持不变

挂载新磁盘后,实例目录放到新磁盘,最终目录名称保持不变,这种相对简单。

​​​​​​​1.8.1实例目录拷贝到新磁盘

--拷贝原实例目录/data下相关目录文件到/datas。

cp -r /data/dmbak /datas/

cp -r /data/dmdata /datas/

cp -r /data/dmarch /datas/

--拷贝TEST表空间数据文件目录

cp -r /opt/tbspc /opt/tbspc_bak

​​​​​​​1.8.2实例目录更名及拷贝

多一份备份少一份数据操作风险

--重命名原实例目录/data,保留操作前的状态,更改名称防止误操作,同时可以根据需要进行快速回退,回退时操作系统级别拷贝复制即可。

mv data data_bak

或者

--如果原磁盘挂载在/data目录下,则卸载/data

umount /data

--后续如果要挂载,可挂载到其它目录

mkdir /data_old

mount /dev/sdb1 /data_old --临时挂载,修改/etc/fstab永久生效。

​​​​​​​1.8.3新磁盘重新挂载到/data目录

umount /datas

mv datas data

vi /etc/fstab

UUID=xxx /data xfs defaults 0 0

mount -a

df -h

​​​​​​​1.8.4重新启动数据库集群

(1)主备服务器启动守护服务,启动守护服务后会自动拉起数据库服务

systemctl start DmWatcherServiceGRP1

(2)监视器机器启动非确认监视服务和确认监视器服务

systemctl start DmMonitorServiceGRP

1.8.5检查数据库集群中各种路径修改情况和表相关信息

1.8.6确认无误后,全备份,然后根据情况清除主备库机上操作过程中各种备份文件

​​​​​​​1.9目录名称发生改变

数据库实例目录由/data更换到/datas。

数据库本地归档目录,备份目录,日志跟踪目录都放到/datas下。

​​​​​​​1.9.1主备机-实例目录拷贝到新磁盘目录

(1)分别拷贝实例目录到新目录

chown -R dmdba:dinstall /datas

su - dmdba

cd data

cp -r * /datas/

(2)冷备份,防止误操作和根据特殊需求方便进行快速回退

多一份备份少一份数据操作风险。

--然后原目录更名

mv /data /databak

--原自定义TEST表空间数据文件目录拷贝备份

cp -r /opt/tbspc /opt/tbspc_bak

chown -R dmdba:dinstall /opt/tbspc_bak/

​​​​​​​1.9.2主备机-配置文件和命令工具中更改路径

(1)修改主备库实例中dm.ini中的路径

su - dmdba

vi /datas/dmdata/DAMENG/dm.ini

(2)修改主备实例dmwatcher.ini中目录

vi /datas/dmdata/DAMENG/dmwatcher.ini

(3)修改主备实例dmmal.ini中目录

vi /datas/dmdata/DAMENG/dmmal.ini

(4)修改主备实例sqllog.ini中目录

vi /datas/dmdata/DAMENG/sqllog.ini

(5)修改主备实例dmarch.ini中归档目录

vi /datas/dmdata/DAMENG/dmarch.ini

(6)修改主备控制文件中目录

dmctlcvt TYPE=1 SRC=/datas/dmdata/DAMENG/dm.ctl DEST=/datas/dmdata/DAMENG/dmctl.txt

vi /datas/dmdata/DAMENG/dmctl.txt

cat /datas/dmdata/DAMENG/dmctl.txt |grep _path

dmctlcvt TYPE=2 SRC=/datas/dmdata/DAMENG/dmctl.txt DEST=/datas/dmdata/DAMENG/dm.ctl

(7)修改主备库DmServiceDAMENG中目录

vi /opt/dmdbms/bin/DmServiceDAMENG

cat /opt/dmdbms/bin/DmServiceDAMENG |grep data

(8)修改主备库DmWatcherServiceGRP1中目录

vi /opt/dmdbms/bin/DmWatcherServiceGRP1

cat /opt/dmdbms/bin/DmWatcherServiceGRP1 |grep data

​​​​​​​1.9.3启动数据库集群服务

(1)主备机启动守护服务,守护服务启动后会自动拉起数据库服务

systemctl start DmWatcherServiceGRP1.service

(2)监视器机器启动非确认监视器,检查数据库状态无误后启动确认监视器服务

systemctl start DmMonitorServiceGRP1.service

​​​​​​​1.9.4登录集群主库修改备份目录路径

(1)修改全备作业路径

call SP_JOB_CONFIG_START('bak_full');

call SP_ALTER_JOB_STEP_EX('bak_full', 'bak_full', 6, '01000000/datas/dmbak/DAMENG/bak', 3, 1, 0, 0, NULL, 0, '');

call SP_ALTER_JOB_STEP_EX('bak_full', 'bak_del', 0, 'CALL SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/datas/dmbak/DAMENG/bak'');

CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',NOW()-15);', 1, 1, 0, 0, NULL, 0, '');

call SP_JOB_CONFIG_COMMIT('bak_full');

(2)修改增量备备份作业路径

call SP_JOB_CONFIG_START('bak_inc');

call SP_ALTER_JOB_STEP_EX('bak_inc', 'bak_inc', 6, '11000000/datas/dmbak/DAMENG/bak|/datas/dmbak/DAMENG/bak', 1, 3, 2, 6, NULL, 0, '');

call SP_ALTER_JOB_STEP_EX('bak_inc', 'switch_bak_full', 6, '01000000/datas/dmbak/DAMENG/bak', 1, 1, 0, 0, NULL, 0, '');

call SP_JOB_CONFIG_COMMIT('bak_inc');

​​​​​​​1.9.5检查数据库集群中各种路径修改情况和表相关信息

​​​​​​​1.9.6确认无误后,全备份,然后清除主备库机上操作过程中各种备份文件。

更多达梦数据库运维指南、在线文档、相关资料、社区在线提问以及技术分享

访问 https://eco.dameng.com/

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询