0
点赞
收藏
分享

微信扫一扫

DM实时主备集群数据文件迁移

白衣蓝剑冰魄 2022-01-21 阅读 34
数据库

一 前言

在实际生产环境中,可能存在数据磁盘空间不足的情况,一般情况下,我们会通过增加新的磁盘来解决,当新磁盘增加完毕后,需要将原数据文件迁移一部分到新磁盘空间,以释放原数据磁盘的空间,本文主要阐述此种情况下数据文件的移动。
迁移对象:dm82主节点。
把 /dm/dmdata/DAMENG/ 目录迁移到 /dm/dmdbms/DAMENG/

二 环境描述

环境背景:dm81节点与dm82节点是实时主备集群,dm83节点是异步备机
操作系统版本
[dmdba@dm82 ~]$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6 (Maipo)

数据库版本:
select * from version;
行号 BANNER


1 DM Database Server 64 V8
2 DB Version: 0x7000c

数据文件路径:
select path from v$datafile;
行号 PATH


1 /dm/dmdata/DAMENG/SYSTEM.DBF
2 /dm/dmdata/DAMENG/ROLL.DBF
3 /dm/dmdata/DAMENG/TEMP.DBF
4 /dm/dmdata/DAMENG/MAIN.DBF
5 /dm/dmdata/DAMENG/ts_test01.dbf
6 /dm/dmdata/DAMENG/ts_idx01.dbf

三 数据文件迁移步骤

1、 关闭数据库服务并通过dmctlcvt转换控制文件为文本文件;
2、 拷贝数据文件到新的路径;
3、 修改控制文件中数据文件的路径到新的路径并重建控制文件;
4、 修改dm.ini中的数据文件的路径;
5、 修改dmwatcher.ini;
6、 修改/home/dmdba/dmdbms/bin/DmServiceDMSERVER1;
7、 修改/home/dmdba/dmdbms/bin/DmWatcherServiceDMSERVER1;
8、 打开控制台备份恢复
9、 启动dmserver
10、启动dmwatche
11、启动dmmonitor
12、测试

四 数据迁移过程

把/dm/dmdata/DAMENG/*文件迁移到/dm/dmdbms/DAMENG/
1、关闭数据库服务并通过dmctlcvt转换控制文件为文本文件
1、 关闭实时主备集群:
[dmdba@dm84 ~]$ DmMonitorServiceDMSERVER4 stop
[dmdba@dm81 ~]$ DmWatcherServiceDMSERVER1 stop
[dmdba@dm82 ~]$ DmWatcherServiceDMSERVER2 stop
[dmdba@dm83~]$ DmWatcherServiceDMSERVER3 stop

[dmdba@dm81 ~]$ DmServiceDMSERVER1 stop
[dmdba@dm82 ~]$ DmServiceDMSERVER2 stop
[dmdba@dm83 ~]$ DmServiceDMSERVER32 stop

2、 转换控制文件
dmctlcvt type=1 src=/dm/dmdata/DAMENG/dm.ctl dest=/tmp/dmctl.txt
type=1:转换控制文件为文本文件(源文件路径中控制文件名称必须是dm.ctl或dmmpp.ctl或dss.ctl)
type=2:转换文本文件为控制文件(目标文件路径中控制文件名称必须是dm.ctl或dmmpp.ctl或dss.ctl)

2、拷贝数据文件到新的路径
cp –r /dm/dmdata/DAMENG/* /dm/dmdbms/DAMENG/

3、修改控制文件中数据文件的路径到新的路径并重建控制文件
1 修改控制文件中数据文件的路径到新的路径
把fil_path=xxx的路径全部修改为新的数据路径
vim /tmp/dmctl.txt
fil_path=/dm/dmdbms/DAMENG/SYSTEM.DBF
fil_path=/dm/dmdbms/DAMENG/ROLL.DBF
fil_path=/dm/dmdbms/DAMENG/DAMENG01.log
fil_path=/dm/dmdbms/DAMENG/DAMENG02.log
fil_path=/dm/dmdbms/DAMENG/MAIN.DBF
fil_path=/dm/dmdbms/DAMENG/ts_test01.dbf
fil_path=/dm/dmdbms/DAMENG/ts_idx01.dbf

把htspath=/dm/dmdata/DAMENG/HMAIN的路径修改为新的数据文件路径
htspath=/dm/dmdbms/DAMENG/HMAIN

2 重建控制文件
cd /dm/dmdbms/DAMENG/
mv dm.ctl dm.ctl_$(date +%F).bak
dmctlcvt type=2 src=/tmp/dmctl.txt dest=/dm/dmdbms/DAMENG/dm.ctl

4、修改dm.ini中的数据文件的路径
vim /dm/dmdbms/DAMENG/dm.ini
:%s*/dm/dmdata/DAMENG*/dm/dmdbms/DAMENG*g --把dm.ini配置文件中/dm/dmdata/DAMENG/的路径改为/dm/dmdbms/DAMENG/。如下所示:
CTL_PATH = /dm/dmdbms/DAMENG/dm.ctl
CTL_BAK_PATH = /dm/dmdbms/DAMENG/ctl_bak
SYSTEM_PATH = /dm/dmdbms/DAMENG
CONFIG_PATH = /dm/dmdbms/DAMENG
TEMP_PATH = /dm/dmdbms/DAMENG
BAK_PATH = /dm/dmdbms/DAMENG/bak

5、修改dmwatcher.ini
不然再启动dmserver会启动迁移之前的数据库实例
vim /dm/dmdbms/DAMENG/dmwatcher.ini
INST_INI = /dm/dmdbms/DAMENG/dm.ini #dm.ini配置文件路径
–INST_INI = /dm/dmdata/DAMENG/dm.ini #dm.ini配置文件路径(修改之前)

6、修改/home/dmdba/dmdbms/bin/DmServiceDMSERVER2
不然再启动dmserver会启动迁移之前的数据库实例
vim /home/dmdba/dmdbms/bin/DmServiceDMSERVER2
INI_PATH="/dm/dmdbms/DAMENG/dm.ini"
– INI_PATH="/dm/dmdata/DAMENG/dm.ini"(修改之前)

7、修改DmWatcherServiceDMSERVER2
不然再启动dmwatcher会启动迁移之前的守护进程
vim /home/dmdba/dmdbms/bin/DmWatcherServiceDMSERVER2
INI_PATH="/dm/dmdbms/DAMENG/dmwatcher.ini"
– INI_PATH="/dm/dmdata/DAMENG/dmwatcher.ini"(修改之前)

8、打开控制台备份恢复
cd /home/dmdba/dmdbms/tool
[dmdba@dm82 tool]$ ./console
1 备份
备份还原新建备份指定旧的INI文件路径指定备份名及备份集目录指定备份类型:完全备份确定
在这里插入图片描述

2 还原
勾选库还原指定备份集目录勾选库目录指定新数据文件路径勾选还原时覆盖已存在文件
在这里插入图片描述

3 恢复
勾选库恢复指定新的INI文件路径指定备份集目录介质类型要选磁盘
在这里插入图片描述

4 更新DB_Magic
指定新的INI文件路径
在这里插入图片描述

9、启动dmserver
[dmdba@dm81 ~]$ DmServiceDMSERVER1 start
[dmdba@dm82 ~]$ DmServiceDMSERVER2 start
[dmdba@dm83 ~]$ DmServiceDMSERVER3 start

10、启动dmwatcher
[dmdba@dm81 ~]$ DmWatcherServiceDMSERVER1 start
[dmdba@dm82 ~]$ DmWatcherServiceDMSERVER2 start
[dmdba@dm83 ~]$ DmWatcherServiceDMSERVER3 start

[dmdba@dm82 dmback]$ ps -ef|grep dmserver
dmdba 22592 1 0 21:09 pts/0 00:00:00 /home/dmdba/dmdbms/bin/dmserver /dm/dmdbms/DAMENG/dm.ini -noconsole
dmdba 22778 11184 0 21:13 pts/0 00:00:00 grep --color=auto dmserver
[dmdba@dm82 dmback]$ ps -ef|grep dmwatcher
dmdba 22725 1 0 21:11 pts/0 00:00:00 /home/dmdba/dmdbms/bin/dmwatcher /dm/dmdbms/DAMENG/dmwatcher.ini
dmdba 22780 11184 0 21:13 pts/0 00:00:00 grep --color=auto dmwatcher

11、启动dmmonitor
[dmdba@dm84 ~]$ /home/dmdba/dmdbms/bin/dmmonitor /dm/dmdata/DAMENG/dmmonitor.ini
show
show global info

12、测试
主库删除数据测试
在这里插入图片描述

实时备库查询
在这里插入图片描述

异步备库查询
在这里插入图片描述

异步备库过2分钟再查询,因为异步备库要2分钟之后才同步
13、备注:
迁移完成后集群检查:
dmmonitor /dm/dmdata/DAMENG/dmmonitor.ini
如果主备集群的FLSN号一致,则说明主备集群正常

zyj环境144版本后修改脚本数据文件位置需要修改dm_services.ini

举报

相关推荐

0 条评论