Oracle数据库迁移,同服务器不同目录(亲测有效!)

问题描述:Oracle所在目录爆满,空间不足,打算将oracle迁移到同服务器的其他大目录;经查看发现表空间过大。

1、切换为oracle用户

 # su - oracle

2、使用sys或者system用户使用sysdba权限登录oracle;
 
# sqlplus sysdba

Oracle数据库迁移,同服务器不同目录(亲测有效!)_第1张图片

3、查询所有的表空间以及表空间所在地址;
 
# select * from dba_data_files;

Oracle数据库迁移,同服务器不同目录(亲测有效!)_第2张图片
4、将需要迁移的表空间置为offline状态; alter tablespace 表空间名 offline;

 # alter tablespace fraud_cs offline;

5、将需要迁移的表空间文件复制到目标文件夹;(以非oracle用户执行)

 # cp /home/oracle/oradata/orcl/fraud_101.dbf /bd/oracle/oradata/orcl/fraud_101.dbf  (建议cp,不要mv                                        最后数据库缺迁移正确后,再删除老文件。 后面上线步骤中可能出现介质修复的报错,重新进行这一步的复制即可。  )

 

6、修改需要迁移的表空间指向地址;alter tablespace 表空间名称 rename datafile '原地址' to '目标地址';

 # alter tablespace fraud_cs rename datafile '/home/oracle/oradata/orcl/fraud_101.dbf' to '/bd/oracle/oradata/orcl/fraud_101.dbf';

 

7、将需要迁移的表空间置为online状态;alter tablespace 表空间名称 online;

 # alter tablespace fraud_cs online;           该步中可能出现介质修复的报错,重新进行第5步的复制即可。

 

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

检查oracle是否迁移完成,连接oracle,进行查询插入等操作。

!!!注意: 当某个表空间对应多个dbf文件时,需要将该表空间下所有dbf进行,进行5、6步。最后上线。

你可能感兴趣的:(Linux)