暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

达梦数据库系统表空间数据文件迁移过程

原创 始于脚下 2022-01-06
4268

关于普通表空间的数据文件迁移可以参考https://www.modb.pro/db/229746,也可以使用本文介绍的过程进行全量迁移。因为达梦数据库中system、sysaux、temp、roll等表空间不能进行offline操作,所以这几个表空间就无法实现在线迁移,在这里,我们通过修改控制文件的方式,实现达梦数据库数据文件离线迁移。

我们此处以将C:\dmdbms\data\DAMENG\SYSTEM.DBF文件迁移到C:\dmdbms\data\SYSTEM.DBF为例,演示达梦数据库中system、sysaux、temp、roll等表空间数据文件进行迁移操作过程。

1、查看迁移前数据文件的记录信息

SQL> select file_name,tablespace_name from dba_data_files ;

 

行号       FILE_NAME                          TABLESPACE_NAME

---------- ---------------------------------- ---------------

1          C:\dmdbms\data\DAMENG\SYSTEM.DBF   SYSTEM

2          C:\dmdbms\data\DAMENG\SYSAWR.DBF   SYSAUX

3          C:\dmdbms\data\dm_dba_move01.dbf   DM_DBA

4          C:\dmdbms\data\DAMENG\dm_tbs01.dbf DM_TBS

5          C:\dmdbms\data\DAMENG\DMHR.DBF     DMHR

6          C:\dmdbms\data\DAMENG\BOOKSHOP.DBF BOOKSHOP

7          C:\dmdbms\data\DAMENG\MAIN.DBF     MAIN

8          C:\dmdbms\data\DAMENG\TEMP.DBF     TEMP

9          C:\dmdbms\data\DAMENG\ROLL.DBF     ROLL

10         C:\dmdbms\data\DAMENG\SYSTEM02.DBF SYSTEM

 

10 rows got

 

已用时间: 12.082(毫秒). 执行号:4.

SQL>


2、停止达梦数据库服务

Windows下用net stop停止,也可以在服务管理器里停止服务,linux使用systemctl stop命令停止,也可以在达梦数据库的bin目录下,直接调用服务名进行停止。

C:\dmdbms\bin>net stop DmServiceDMSERVER

DmServiceDMSERVER 服务正在停止...

DmServiceDMSERVER 服务已成功停止。


3、将当前达梦数据库控制文件转换成二进制文件

dmctlcvt.exe TYPE=1 SRC=C:\dmdbms\data\DAMENG\dm.ctl DEST=C:\dmdbms\dmctl.txt


C:\dmdbms\bin>dmctlcvt.exe TYPE=1 SRC=C:\dmdbms\data\DAMENG\dm.ctl DEST=C:\dmdbm


s\dmctl.txt

DMCTLCVT V8

convert ctl to txt success!

 

C:\dmdbms\bin>


 

4、修改控制文件中待迁移数据文件路径

此处仅迁移system表空间下的C:\dmdbms\data\DAMENG\SYSTEM.DBF文件,所以仅将system表空间对应先的文件路径参数fil_path=C:\dmdbms\data\DAMENG\SYSTEM.DBF改为fil_path=C:\dmdbms\data\SYSTEM.DBF。此处直接修改第三步生成的C:\dmdbms\dmctl.txt文件内容。

5、备份原来的dm.ctl文件并重命名

这里可以做备份也可以不备份,建议是做一份备份,备份完成后把原来的dm.ctl文件删除或者直接重命名。

6、根据修改后的文本文档生成新的dm.ctl文件

dmctlcvt.exe TYPE=2 SRC=C:\dmdbms\dmctl.txt DEST=C:\dmdbms\data\DAMENG\dm.ctl


C:\dmdbms\bin>dmctlcvt.exe TYPE=2 SRC=C:\dmdbms\dmctl.txt DEST=C:\dmdbms\data\DA

MENG\dm.ctl

DMCTLCVT V8

convert txt to ctl success!

 

C:\dmdbms\bin>


7、系统层手动拷贝system数据文件至修改后的目录下

这里在修改完并生成新的控制文件之后,一定要将相关的数据文件手动拷贝到修改后的目录下,并且文件名要与修改后控制文件里的文件名一致。

8、启动达梦数据库服务

C:\dmdbms\bin>net start DmServiceDMSERVER

DmServiceDMSERVER 服务正在启动 ..

DmServiceDMSERVER 服务已经启动成功。

 

 

C:\dmdbms\bin>


9、验证结果

SQL> select file_name,tablespace_name from dba_data_files ;

 

行号       FILE_NAME                          TABLESPACE_NAME

---------- ---------------------------------- ---------------

1          C:\dmdbms\data\SYSTEM.DBF          SYSTEM

2          C:\dmdbms\data\DAMENG\SYSAWR.DBF   SYSAUX

3          C:\dmdbms\data\dm_dba_move01.dbf   DM_DBA

4          C:\dmdbms\data\DAMENG\dm_tbs01.dbf DM_TBS

5          C:\dmdbms\data\DAMENG\DMHR.DBF     DMHR

6          C:\dmdbms\data\DAMENG\BOOKSHOP.DBF BOOKSHOP

7          C:\dmdbms\data\DAMENG\MAIN.DBF     MAIN

8          C:\dmdbms\data\DAMENG\TEMP.DBF     TEMP

9          C:\dmdbms\data\DAMENG\ROLL.DBF     ROLL

10         C:\dmdbms\data\DAMENG\SYSTEM02.DBF SYSTEM

 

10 rows got

 

已用时间: 3.740(毫秒). 执行号:6.

SQL>
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论