Oracle数据文件转移操作

服务器

浏览数:223

2019-9-16

   由于oracle表空间数据文件规划问题导致当前数据文件所在文件系统空间不足,当其他文件系统空间充足情况下,可将数据文件移动到空间充足的文件系统下。本文主要描述Oracle表空间数据文件移动的操作步骤。

业务表空间数据文件移动操作方法

1、查看当前待操作表空间DATATBS对应的数据文件的路径、状态。

SQL> select tablespace_name,file_name,online_status from dba_data_files where tablespace_name='DATATBS'; 

2、将数据文件所属的表空间DATATBS状态修改为offline。

SQL> ALTER TABLESPACE DATATBS OFFLINE;

3、将需要转移的数据文件转移到到指定的目录下。保证该目录oracle有读写权限。

SQL> ! cp '/opt/oracle/oradata/datatbs.dbf' '/home/oracle/datatbs.dbf'; 

4、重命名当前数据文件名为修改后的路径。

SQL> alter tablespace datatbs rename datafile '/opt/oracle/oradata/datatbs.dbf' to '/home/oracle/datatbs.dbf'; 

5、将DATA表空间状态修改为online。

SQL> alter tablespace datatbs online; 

6、重新查看数据文件和表空间状态。

SQL> select tablespace_name,file_name,online_status from dba_data_files where tablespace_name='DATATBS'; 

temp表空间数据文件转移

1、给当前临时表空间增加一个数据文件

SQL> alter tablespace temp add tempfile '/dev/vgoracle/lvtemp' size 1000M;

2、重启数据库实例

SQL> shutdown immediate;
SQL> startup;

3、先修改旧的临时表空间的数据文件状态为offline,然后删除文件

SQL> alter database tempfile '/home/oracle/oradata/ora11g/temp.dbf' offline;
SQL> alter database tempfile '/home/oracle/oradata/ora11g/temp.dbf' drop;

undo表空间数据文件转移

  参考Oracle重建表空间操作实例中的<重建undo表空间>

FAQ

1、上述步骤5如果操作失败,出现提示ORA-01113/ORA-01113需要做介质回复,解决方法

SQL> shutdown immediate;
SQL> startup mount;
SQL> recover datafile '/home/oracle/datatbs.dbf'; --介质恢复,数据文件为转移后的数据文件绝对路径
SQL> alter database open;

 

作者:Beng Dou