linux 移动数据库文件夹里,Linux平台达梦数据库V7之数据文件的位置移动

一 前言

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

二 环境描述

操作系统版本:

[dmdba@dm3 ~]$ cat /etc/redhat-release

Red Hat Enterprise Linux Server release 6.0 (Santiago)

数据库版本:

[dmdba@dm3 ~]$ disql sysdba/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态

登录使用时间: 60.654(毫秒)

disql V7.6.0.171-Build(2019.07.02-109059)ENT

SQL> select * from v$version;

行号 BANNER

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

1 DM Database Server x64 V7.6.0.171-Build(2019.07.02-109059)ENT

2 DB Version: 0x7000a

已用时间: 55.167(毫秒). 执行号:5.

三 数据文件迁移步骤

1、关闭数据库服务并通过dmctlcvt转换控制文件为文本文件;

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

3、修改控制文件中数据文件的路径到新的路径并重建控制文件;

4、启动数据库服务

注意:如果是用户表空间的所有数据文件都更换了位置,也需要同时修改dm.ini中的数据文件的路径!!!

四 数据文件迁移过程

4.1 创建测试环境

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

表空间:

create tablespace "SEMITER" datafile '/usr/appsoft/dmdbms/data/TEST/semiter01.dbf' size 128 CACHE = NORMAL;

表空间扩展:

alter tablespace "SEMITER" add datafile '/usr/appsoft/dmdbms/data/TEST/semiter02.dbf' size 128;

用户:

create user "SEMITER" identified by "semiter123" default tablespace "SEMITER";

角色与权限:

grant "DBA","PUBLIC","RESOURCE" to "SEMITER";

alter user "SEMITER" limit failed_login_attemps unlimited, pa$$word_lock_time unlimited, pa$$word_grace_time unlimited;

表空间SEMITER中有两个数据文件,semiter01.dbf和semiter02.dbf,我们将迁移semiter02.dbf到新的目录/usr/appsoft/dmdbms/data下。

迁移前数据文件路径如下:

SQL> select t.name tablespace_name,t.id file_id,d.path file_name,d.total_size*SF_GET_PAGE_SIZE()/1024/1024||'M' total_space from v$tablespace t, v$datafile d where t.id=d.group_id and t.name='SEMITER';

行号 tablespace_name file_id file_name total_space

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

1 SEMITER 5 /usr/appsoft/dmdbms/data/TEST/semiter02.dbf 128M

2 SEMITER 5 /usr/appsoft/dmdbms/data/TEST/semiter01.dbf 128M

已用时间: 2.918(毫秒). 执行号:19.

SQL>

4.2 关闭实例并转换控制文件为文本文件

1.关闭数据库实例:

[root@dm3 data]# /etc/init.d/DmServiceTEST stop

Stopping DmServiceTEST: [ OK ]

2.转换控制文件

[dmdba@dm3 usr]$ dmctlcvt type=1 src=/usr/appsoft/dmdbms/data/TEST/dm.ctl dest=/tmp/semiter.txt

DMCTLCVT V7.6.0.171-Build(2019.07.02-109059)ENT

convert ctl to txt succe$$!

4.3 拷贝数据文件到新的路径

[dmdba@dm3 TEST]$ pwd

/usr/appsoft/dmdbms/data/TEST

[dmdba@dm3 TEST]$ mv semiter02.dbf ../

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

[dmdba@dm3 IESDB]$ cat /tmp/semiter.txt |grep semiter02.dbf

fil_path=/usr/appsoft/dmdbms/data/semiter02.dbf

[dmdba@dm3 IESDB]$ dmctlcvt type=2 src=/tmp/semiter.txt dest=/usr/appsoft/dmdbms/data/IESDB/dm.ctl

DMCTLCVT V7.6.0.171-Build(2019.07.02-109059)ENT

convert txt to ctl succe$$!

[dmdba@dm3 IESDB]$

4.5 启动数据库并进行验证

[dmdba@dm3 IESDB]$ /etc/init.d/DmServiceIESDB start

Starting DmServiceIESDB: [ OK ]

SQL> select t.name tablespace_name,t.id file_id,d.path file_name,d.total_size*SF_GET_PAGE_SIZE()/1024/1024||'M' total_space from v$tablespace t, v$datafile d where t.id=d.group_id and t.name='SEMITER';

行号 tablespace_name file_id file_name total_space

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

1 SEMITER 5 /usr/appsoft/dmdbms/data/semiter02.dbf 128M

2 SEMITER 5 /usr/appsoft/dmdbms/data/IESDB/semiter01.dbf 128M

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

从上面的输出中可以明显看到,semiter02.dbf的路径已经更改,至此我们就完成了达梦数据库下数据文件路径的修改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值