注册
达梦数据库中如何迁移数据文件
培训园地/ 文章详情 /

达梦数据库中如何迁移数据文件

rgy 2022/11/17 1995 0 0

1.背景

在日常运维中难免会遇到有迁移磁盘的需求,例如从A盘迁移到B盘,该如何去操作呢?下面给大家分享下,单机环境与读写分离集群操作相同,下面这种方法合适表空间数据文件不多的时候操作。

2.记录原环境信息

[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

3.停止数据库服务与守护进程

DmWatcherServiceDMWATCHER stop
DmServiceDMSERVER stop

4.拷贝数据文件到新目录

拷贝整个数据文件到新路劲下

cp -r dmdata /data

5.转换原控制文件

转存dm.ctl控制文件信息在dmctl.txt文件中

cd /opt/dm8/bin/

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

6.修改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/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/OADATA/SRR01.dbf fil_path=/dmdata/OADATA/SRR_IDX01.dbf fil_path=/dmdata/OADATA/BSP01.dbf fil_path=/dmdata/OADATA/BSP_IDX01.dbf fil_path=/dmdata/OADATA/BPM01.dbf fil_path=/dmdata/OADATA/BPM_IDX01.dbf fil_path=/dmdata/OADATA/CFORM01.dbf fil_path=/dmdata/OADATA/CFORM_IDX01.dbf fil_path=/dmdata/OADATA/SC01.dbf fil_path=/dmdata/OADATA/SC_IDX01.dbf fil_path=/dmdata/OADATA/PORTAL01.dbf fil_path=/dmdata/OADATA/PORTAL_IDX01.dbf fil_path=/dmdata/OADATA/CFILE01.dbf fil_path=/dmdata/OADATA/CFILE_IDX01.dbf fil_path=/dmdata/OADATA/EDOC01.dbf fil_path=/dmdata/OADATA/EDOC_IDX01.dbf fil_path=/dmdata/OADATA/MEETING01.dbf fil_path=/dmdata/OADATA/MEETING_IDX01.dbf fil_path=/dmdata/OADATA/CMS01.dbf fil_path=/dmdata/OADATA/CMS_IDX01.dbf fil_path=/dmdata/OADATA/MOBILESERVER01.dbf fil_path=/dmdata/OADATA/MOBILESERVER_IDX01.dbf fil_path=/dmdata/OADATA/FTS01.dbf fil_path=/dmdata/OADATA/FTS_IDX01.dbf fil_path=/dmdata/OADATA/OA01.dbf fil_path=/dmdata/OADATA/OA_IDX01.dbf fil_path=/dmdata/OADATA/PLAN01.dbf fil_path=/dmdata/OADATA/PLAN_IDX01.dbf fil_path=/dmdata/OADATA/EXSRR01.dbf fil_path=/dmdata/OADATA/EXSRR_IDX01.dbf fil_path=/dmdata/OADATA/EXBSP01.dbf fil_path=/dmdata/OADATA/EXBSP_IDX01.dbf fil_path=/dmdata/OADATA/EXEDOC01.dbf fil_path=/dmdata/OADATA/EXEDOC_IDX01.dbf fil_path=/dmdata/OADATA/EXPORTAL01.dbf fil_path=/dmdata/OADATA/EXPORTAL_IDX01.dbf fil_path=/dmdata/OADATA/EXSC01.dbf fil_path=/dmdata/OADATA/GCLOUD_EXSC_IDX01.dbf htspath=/dmdata/DAMENG/HMAIN

修改/dmdata为/data

7.更新控制文件

把原来的 dm.ctl 文件备份为 dm.ctl.bak ,使用以下命令将dmctl.txt转换新的dmctl.txt为新的 dm.ctl控制文件

cd /opt/dm8/bin/

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

8.修改配置文件

  1. vi dm.ini把所有的 /dmdata 改为 /data
  2. 2.同时需要修改dmarch.ini 归档日志路径

9.修改服务器启动脚本

将原来的/dmdata替换为/data

cd /opt/dm8/bin

vi DmServiceDMSERVER
INI_PATH="/data/DAMENG/dm.ini"

修改守护进程服务地址

vi DmWatcherServiceDMWATCHER

INI_PATH="/data/DAMENG/dmwatcher.ini"

10.启动数据库服务

DmServiceDMSERVER start
DmWatcherServiceDMWATCHER start

注意:
如果是集群数据,备库守护配置文件是auto的时候没配置确认监视器,修改会遇到一个问题备库停止服务之后会导致主库处于 挂起 的状态影响业务

解决办法:是将主备恢复正常,通过监视器将备库剔除集群服务,登录监视器使用以下命令操作
detach database DM2

恢复完成之后,如何加入集群呢?使用方式如下
attach database DM2

11.总结

至此数据文件已迁移完成,当我们在使用以上方式迁移时需确保控制参数修改正确避免出现漏修改参数,导致迁移失败。当环境数据文件多比较复杂时,还可以使用备份恢复的方式迁移数据文件。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服