ORACLE数据库根目录空间不足,进行表空间文件转移不占用根目录空间

ORACLE数据库根目录空间不足,进行表空间文件转移不占用根目录空间

1.首先查看都有哪些表空间文件在根目录下

1.1.查看根目录占用情况

du -h --max-depth=1 /

会显示哪些目录占用多少空间,针对根目录下占用空间多的进行分析,如果存在数据库表空间文件在这些目录下,我们进行文件转移。
查看结果
除去系统文件目录,比如home文件下有上GB的文件存储,我们可以到此目录去查看是否有dbf文件或者我们看下一步操作,来判断表空间文件存储在哪?

1.2.两种方式查看表空间文件

1.2.1.使用linux查找命令在/home目录下去查找dbf文件

find /home -name *.dbf

1.2.2.以DBA用户登录ORACLE数据库进行表空间文件的模糊查询

select * from dba_data_files where file_name like '/home/%';

将查找出来的表空间文件以及对应的表空间名称记录下来,进行文件转移。
注:以上是查找根目录表空间的两种方法。

2.针对特定表空间文件进行文件转移(非系统表空间)

使用PLSQL以DBA用户登录对应的数据库,进行如下操作:

2.1.查看要改变的表空间的数据文件信息

select tablespace_name,file_name,online_status from dba_data_files where tablespace_name='表空间名称';

2.2.将目标表空间设置为脱机状态

alter tablespace 表空间名称 offline;

查看表空间状态:

select tablespace_name,file_name,online_status from dba_data_files where tablespace_name='表空间名称';

2.3.移动数据文件

在linux终端界面或者使用XSHELL等工具进行操作:

mv /home/oradata/SU01.DBF  /dbdata/SU01.DBF

2.4.在数据库中修改表空间数据文件的路径

alter tablespace SU rename datafile '/home/oradata/SU01.DBF' to '/dbdata/SU01.DBF';

2.5.修改该表空间为在线状态

alter tablespace SU online;

2.6.查看该表空间最后结果

select tablespace_name,file_name,online_status from dba_data_files where tablespace_name='SU';

注意,我们此时使用df -h可能看到根目录没有空间的变化,是因为存在占用进程的僵尸文件,我们需要重启数据库就能看到空间转移的效果:

# 切换oracle用户
su - oracle
# 登录数据库
sqlplus / as sysdba
# 关闭数据库
shutdown immediate;
# 启动数据库
startup;

3.系统表空间移动

该方法需要数据库处于mount状态

3.1.关闭运行中的数据库

shutdown immediate;

3.2.启动数据库到mount状态

startup mount;

3.3.移动系统表空间(SYSTEM表空间)的数据文件

mv /home/oradata/orcl/SYSTEM01.DBF  /dbdata/SYSTEM01.DBF

3.4.修改表空间数据文件的路径

alter database rename file '/home/oradata/orcl/SYSTEM01.DBF' to '/dbdata/SYSTEM01.DBF';

3.5.启动数据库,打开实例

alter database open;

3.6.查看表空间修改结果

select tablespace_name,file_name,online_status from dba_data_files where tablespace_name='SYSTEM';
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值