ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

达梦数据库修改数据文件路径

2021-01-15 10:04:32  阅读:481  来源: 互联网

标签:opt DM 数据文件 数据库 xiao dm8 data 达梦


一、在生产环境中,可能遇到磁盘空间不足的情况,需要将数据文件移动到先挂载的磁盘上。

二、环境描述

操作系统版本:

[root@damengtest ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.3 (Maipo)

数据库版本:

SQL> select * from v$version;

行号 BANNER
---------- -------------------------
1 DM Database Server 64 V8
2 DB Version: 0x7000a

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

三、数据文件迁移步骤

方法一、以数据文件为单位移动 
1、关闭数据库服务并通过dmctlcvt转换控制文件为文本文件;
2、拷贝数据文件到新的路径;
3、修改控制文件中数据文件的路径到新的路径并重建控制文件;
4、启动数据库服务
注意:如果是用户表空间的所有数据文件都更换了位置,也需要同时修改dm.ini中的数据文件的路径

方法二、以表空间为单位进行移动 

1、表空间offline;

2、修改控制文件路径

3、表空间online

四、数据文件迁移过程

4.1、创建测试环境

创建如下表空间及用户用于数据文件迁移测试

新建表空间及用户并授权

SQL> create tablespace "xiao" datafile '/opt/dm8/data/DM/xiao.dbf' size 128 autoextend on CACHE = NORMAL;

操作已执行

已用时间: 15.360(毫秒). 执行号:24.
SQL> create user "XIAO" identified by "Xiao1234!"
 limit failed_login_attemps 3, password_lock_time 1, password_grace_time 10
 default tablespace "xiao"
 default index tablespace "xiao";
操作已执行
已用时间: 7.816(毫秒). 执行号:32.
SQL> grant "DBA","PUBLIC","RESOURCE","SOI","VTI" to "XIAO";
操作已执行
已用时间: 9.575(毫秒). 执行号:33.
SQL>
查看数据文件路径
SQL> select path from v$datafile;

行号 PATH
---------- -----------------------------
1 /opt/dm8/data/DM/SYSTEM.DBF
2 /opt/dm8/data/DM/ROLL.DBF
3 /opt/dm8/data/DM/TEMP.DBF
4 /opt/dm8/data/DM/MAIN.DBF
5 /opt/dm8/data/DM/BOOKSHOP.DBF
6 /opt/dm8/data/DM/DMHR.DBF
7 /opt/dm8/data/DM/xiao.dbf

7 rows got

已用时间: 0.639(毫秒). 执行号:34.
SQL> exit

方法一:以数据文件为单位移动 

4.2、停库并转换控制文件为文本文件

1、停止数据库实例

[dmdba@damengtest bin]$ ./DmServiceDM stop
Stopping DmServiceDM: [ OK ]

2、转换控制文件

[dmdba@damengtest bin]$ ./dmctlcvt type=1 SRC=/opt/dm8/data/DM/dm.ctl DEST=/opt/dm8/data/DM/dmctl.txt
DMCTLCVT V8
convert ctl to txt success!
[dmdba@damengtest bin]$

3、拷贝数据文件到新的路径

[dmdba@damengtest DM]$ mv xiao.dbf ../
[dmdba@damengtest DM]$ cd ..
[dmdba@damengtest data]$ ls
DM dmtest newpath test xiao.dbf

4、修改文本文件中数据文件路径到新路径并重建控制文件

将dmctl.txt路径改成现在的
# file path
fil_path=/opt/dm8/data/xiao.dbf

将dmctl.txt转化为dm.ctl
[dmdba@damengtest bin]$ ./dmctlcvt type=2 SRC=/opt/dm8/data/DM/dmctl.txt DEST=/opt/dm8/data/DM/dm.ctl
DMCTLCVT V8
convert txt to ctl success!
[dmdba@damengtest bin]$

5、启动数据库并进行验证

[dmdba@damengtest bin]$ ./DmServiceDM start
Starting DmServiceDM: [ OK ]

SQL> select path from v$datafile;

行号 PATH
---------- -----------------------------
1 /opt/dm8/data/DM/SYSTEM.DBF
2 /opt/dm8/data/DM/ROLL.DBF
3 /opt/dm8/data/DM/TEMP.DBF
4 /opt/dm8/data/DM/MAIN.DBF
5 /opt/dm8/data/DM/BOOKSHOP.DBF
6 /opt/dm8/data/DM/DMHR.DBF
7 /opt/dm8/data/xiao.dbf

7 rows got

已用时间: 6.796(毫秒). 执行号:4.
SQL> exit

方法二、以表空间为单位进行移动 

1、表空间offline

SQL> alter tablespace "xiao" offline;
操作已执行
已用时间: 93.181(毫秒). 执行号:42.

2、修改控制文件路径

SQL> alter tablespace "xiao" rename datafile '/opt/dm8/data/xiao.dbf' to '/opt/dm8/data/DM/xiao.dbf';
操作已执行
已用时间: 387.357(毫秒). 执行号:43.

3、表空间online

SQL> alter tablespace "xiao" online;
操作已执行
已用时间: 2.775(毫秒). 执行号:44.

4、验证

[dmdba@damengtest DM]$ ls
arch DM01.log dmctl.txt dm_service.prikey ROLL.DBF trace
bak DM02.log DMHR.DBF HMAIN sqllog.ini xiao.dbf
BOOKSHOP.DBF dmarch.ini dm.ini MAIN.DBF SYSTEM.DBF
ctl_bak dm.ctl dminit20201224170230.log rep_conflict.log TEMP.DBF

SQL> select path from v$datafile;

行号 PATH
---------- -----------------------------
1 /opt/dm8/data/DM/SYSTEM.DBF
2 /opt/dm8/data/DM/ROLL.DBF
3 /opt/dm8/data/DM/TEMP.DBF
4 /opt/dm8/data/DM/MAIN.DBF
5 /opt/dm8/data/DM/BOOKSHOP.DBF
6 /opt/dm8/data/DM/DMHR.DBF
7 /opt/dm8/data/DM/xiao.dbf

7 rows got

已用时间: 31.624(毫秒). 执行号:50.

由以上2种方法可将数据文件迁移到新的位置。

标签:opt,DM,数据文件,数据库,xiao,dm8,data,达梦
来源: https://www.cnblogs.com/xiaomingren/p/14280627.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有