ORACLE数据库根目录空间不足,进行表空间文件转移不占用根目录空间 |
您所在的位置:网站首页 › oracle undo表空间不足 › 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'; |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |