迁移Oracle数据库dbf文件到有空间的磁盘

在Oracle数据库中插入了大量数据,又插入了大量数据到另外一张表,导致数据库表空间暴涨,由于根目录下只有50G左右的空间,数据库文件所在磁盘空间不够,完全无法写入任何新的文件,所以需要将数据库dbf迁移到大空间的磁盘上。

1,登录Oracle的system用户:

sqlplus / as sysdba

system/***

2,关闭数据库:shutdown immediate;

有可能无法关闭,报错说system用户没有权限,实际上是有权限的,只是因为磁盘没有空间,
无法写日志导致无法进行操作,可以备份或者删除掉一些无用的文件,空出一点空间。

3,以mount形式加载数据库:startup mount;

启动的时候可能也会报错说initorcl.ora文件找不到,

4,找到需要迁移的dbf文件路径

例如:/data/oracle/oradata/orcl/users01.dbf,
执行如下查询语句可以看到所有dbf文件:

select tablespace_name, file_id,file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;

5,修改dbf文件路径

alter database rename file '/data/oracle/oradata/orcl/users01.dbf' to '/home/oracle/oradata/orcl/users01.dbf';

注:此处路径根据实际情况进行更改,并且需要提前将/data/oracle/oradata/orcl/users01.dbf文件
复制到新的目录下。

7.恢复介质

recover datafile '/home/oracle/oradata/orcl/users01.dbf';

如果不做这一步会报ora-01113,ora-01110错误。

8.打开数据库

alter database open;

9.删除原路径下文件

rm  /data/oracle/oradata/orcl/users01.dbf

删除后,该文件占用的空间就能释放出来,基本上Oracle服务就OK了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值