祝大家节日快乐
1 背景
在日常运维过程中,难免会遇到磁盘迁移的需求,例如从 A 盘迁移到 B 盘,那么该如何操作呢?通常有几种方法可供选择:第一种是通过备份恢复到新目录进行操作;第二种是将整个目录替换,停机后拷贝到新磁盘,再将目录名称挂载为旧名称以保持一致性。本次将分享第三种方法,即通过修改控制文件的方式来处理。
2 操作流程
在集群环境下操作复杂,但原理相同。操作步骤如下:记录原环境信息,包括文件路径和节点状态。停止集群,避免数据不一致。拷贝数据文件到新目录,注意所有副本正确拷贝。转换控制文件,替换原路径为新路径。修改dmctl.txt
文件中的路径参数。更新控制文件,确保集群识别新路径。修改配置文件中的路径参数。启动数据库服务和守护进程,检查节点状态和配置信息,确保迁移成功。
2.1 记录原环境信息
[dmdba@node3 ~]$ ps -ef|grep dmdb
dmdba 998291 1 1 3月04 ? 02:26:31 opt/dm8/bin/dmserver dmdata/DAMENG/dm.ini -noconsole mount
dmdba 3212876 1 0 2月09 ? 00:01:10 opt/dm8/bin/dmap
dmdba 3315873 1 0 2月10 ? 01:10:59 opt/dm8/bin/dmwatcher dmdata/DAMENG/dmwatcher.ini
2.2 停止数据库服务与守护进程
请注意,对于集群数据,如果备库守护配置文件设置为auto
且未配置确认监视器,那么在进行修改时将遇到一个问题:在停止备库服务后,主库可能会进入挂起状态,从而影响业务正常运行。因此,必须仔细检查环境,必须在停止服务前将节点移出当前集群。detach database DM2
DmWatcherServiceDMWATCHER stop
DmServiceDMSERVER stop
2.3 拷贝数据文件到新目录
将整个数据文件复制到新的路径下:
cp -r dmdata data
2.4 转换原控制文件
cd /opt/dm8/bin/
./dmctlcvt TYPE=1 SRC=/dmdata/DAMENG/dm.ctl DEST=/dmdata/DAMENG/dmctl.txt
2.5 修改 dmctl.txt 路径参数
查询需要修改的内容:
[dmdba@node3 DAMENG]$ cat dmctl.txt |grep dmdata/
fil_path=/dmdata/DAMENG/SYSTEM.DBF
fil_path=/dmdata/DAMENG/ROLL.DBF
fil_path=/dmdata/DAMENG/DAMENG01.log
fil_path=/dmdata/DAMENG/DAMENG02.log
fil_path=/dmdata/DAMENG/MAIN.DBF
fil_path=/dmdata/OATEST/TT_SRR01.dbf
fil_path=/dmdata/OATEST/TT_SRR_IDX01.dbf
fil_path=/dmdata/OATEST/TT_BSP01.dbf
fil_path=/dmdata/OATEST/TT_BSP_IDX01.dbf
fil_path=/dmdata/OATEST/TT_BPM01.dbf
fil_path=/dmdata/OATEST/TT_BPM_IDX01.dbf
fil_path=/dmdata/OATEST/TT_CFORM01.dbf
fil_path=/dmdata/OATEST/TT_CFORM_IDX01.dbf
fil_path=/dmdata/OATEST/TT_SC01.dbf
fil_path=/dmdata/OATEST/TT_SC_IDX01.dbf
fil_path=/dmdata/OATEST/TT_PORTAL01.dbf
fil_path=/dmdata/OATEST/TT_PORTAL_IDX01.dbf
fil_path=/dmdata/OATEST/TT_CFILE01.dbf
fil_path=/dmdata/OATEST/TT_CFILE_IDX01.dbf
fil_path=/dmdata/OATEST/TT_EDOC01.dbf
fil_path=/dmdata/OATEST/TT_EDOC_IDX01.dbf
fil_path=/dmdata/OATEST/TT_MEETING01.dbf
fil_path=/dmdata/OATEST/TT_MEETING_IDX01.dbf
fil_path=/dmdata/OATEST/TT_CMS01.dbf
fil_path=/dmdata/OATEST/TT_CMS_IDX01.dbf
fil_path=/dmdata/OATEST/TT_MOBILESERVER01.dbf
fil_path=/dmdata/OATEST/TT_MOBILESERVER_IDX01.dbf
fil_path=/dmdata/OATEST/TT_FTS01.dbf
fil_path=/dmdata/OATEST/TT_FTS_IDX01.dbf
fil_path=/dmdata/OATEST/TT_OA01.dbf
fil_path=/dmdata/OATEST/TT_OA_IDX01.dbf
fil_path=/dmdata/OATEST/TT_PLAN01.dbf
fil_path=/dmdata/OATEST/TT_PLAN_IDX01.dbf
fil_path=/dmdata/OATEST/TT_EXSRR01.dbf
fil_path=/dmdata/OATEST/TT_EXSRR_IDX01.dbf
fil_path=/dmdata/OATEST/TT_EXBSP01.dbf
fil_path=/dmdata/OATEST/TT_EXBSP_IDX01.dbf
fil_path=/dmdata/OATEST/TT_EXEDOC01.dbf
fil_path=/dmdata/OATEST/TT_EXEDOC_IDX01.dbf
fil_path=/dmdata/OATEST/TT_EXPORTAL01.dbf
fil_path=/dmdata/OATEST/TT_EXPORTAL_IDX01.dbf
fil_path=/dmdata/OATEST/TT_EXSC01.dbf
fil_path=/dmdata/OATEST/TT_EXSC_IDX01.dbf
htspath=/dmdata/DAMENG/HMAIN
[dmdba@node3 DAMENG]$
修改/dmdata 为/data
2.6 更新控制文件
把原来的dm.ctl
文件备份为dm.ctl.bak
,转换新的dmctl.txt
为新的dm.ctl
cd /opt/dm8/bin/
./dmctlcvt TYPE=2 SRC=/dmdata/DAMENG/dmctl.txt DEST=/data/DAMENG/dm.ctl
2.7 修改配置文件
vi dm.ini
把所有的/dmdata
改为/data
同时需要修改dmarch.ini
归档日志路径
2.8 修改服务启动脚本
将原来的/dmdata
替换为/data
cd /opt/dm8/bin
vi DmServiceDMSERVER
INI_PATH="/data/DAMENG/dm.ini"
修改守护进程服务地址
vi DmWatcherServiceDMWATCHER
INI_PATH="/data/DAMENG/dmwatcher.ini"
2.9 启动数据库与守护服务
DmServiceDMSERVER start
DmWatcherServiceDMWATCHER start
接下来验证数据文件路径更改是否成功,并确保数据库稳定运行。使用数据库管理工具或命令行检查运行状态和数据同步。确认无误后,执行基本操作如查询、插入、更新以测试功能无异常即可。
往期分享
安装部署
数据迁移
SQL调优
4.使用ob_tools包收集分析oceanbase数据库oracle租户缓慢sql语句
5.使用format_obproxy_digest_log工具分析obproxy网络层耗时SQL
工具使用与日常处理
1.DataGrip访问国产数据库_datagrip 连接国产数据库
11.哇塞!达梦管理工具又添新花样啦!新功能超级给力,用起来爽翻天!赶紧来尝鲜,体验一番吧!





