1达梦数据库-数据库主备集群更改实例目录及相关目录步骤-记录总结
1.1常见需求
当前数据库实例所在磁盘性能较差或空间不足,需格式化性能较好空间足的新磁盘并挂载,挂载到原目录或者新目录,然后把数据库实例目录移动到新磁盘。
1.2流程步骤
(1) 检查确认数据库实例相关的各种路径,如数据库系统表空间初始路径、自定义表空间数据文件路径、归档路径、跟踪日志路径、备份作业备份路径、审计日志路径(如果开启了审计);
(2) 格式化磁盘并挂载;
(3) 停止应用系统,对数据库进行联机在线物理热备份;
(4) 停止数据库集群,对主备数据库节点涉及文件和目录(包括实例目录、归档日志目录、自定义表空间目录)进行操作系统级别拷贝备份,如果操作过程中出现问题或其它特殊需求,可以快速回退到操作前状态。
( 5 )新磁盘挂载到原同名目录
-
主备数据库节点操作,数据库实例拷贝到新目录;
-
主备数据库节点操作,原目录修改名称或备份,卸载挂载原实例目录
-
主备数据库节点操作,新磁盘卸载,重新挂载到同原名目录;
-
启动数据库集群;
-
登录数据库检查状态和路径情况;
-
确认无误后,全备份,然后清除主备库机上操作过程中各种备份文件。
( 6 )新磁盘挂载到新目录名
-
主备数据库节点操作,数据库实例拷贝到新目录;
-
主备库修改新目录下实例dm.ini中的路径相关;
-
主备库修改新目录下实例dmwatcher.ini中路径相关;
-
主备库修改新目录下实例dmmal.ini中路径相关;
-
主备库修改新目录下实例sqllog.ini中路径相关;
-
主备库修改新目录下实例dmarch.ini中归档路径相关;
-
主备库修改新目录下实例控制文件dm.ctl中路径相关;
-
主备库修改DmServiceDAMENG命令工具中路径相关;
-
主备库修改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 VTABLESPACE AS TS, VDATAFILE 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/](https://eco.dameng.com/ "https://eco.dameng.com/")