达梦数据库-数据库主备集群更改实例目录及相关目录步骤-记录总结
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/
