数据库文件存放在存储上,当需要更换新存储时,就需要变更新的存储路径,迁移原有的数据文件,本文档介绍两种数据文件迁移的方法。省略输出结果。
一、RMAN迁移数据文件 步骤:
1.修改参数文件中控制文件的存放位置
SQL>alter system set control_files='/newdirect/control01.ctl' scope=spfile
2.备份控制文件
RMAN>backup current controlfile format '/任意的备份路径/control01.ctl'
3.关闭数据库并启动到nomount状态,恢复按“步骤1”中新设置的控制文件位置恢复控制文件
RMAN>restore controlfile from '/任意的备份路径/control01.ctl'
4.备份现有的数据库文件原存储位置至新存储路径间进行转换
RMAN>backup as copy db_file_name_convent('/新的存储路径','/旧存储路径') tablespace system, users,sysaux, undotbs01;
RMAN>switch database to copy;
RMAN>recover database;
RMAN>alter database open resetlogs;
5.新建在线重做日志文件
SQL>alter database add logfile thread 1 group 4 ('/新存储路径/redo04.log') size 1024m;
6.删除旧的在线重做日志文件,删除前一定要确认日志组为inactive状态
SQL>alter database drop logfile group 1;
7.新建临时表空间,删除旧的临时表空间
SQL>alter tablespace temp add tempfile '/新存储路径/temp01.dbf' size 1G;
SQL>alter tablespace temp drop tempfile '/旧存储路径下的/temp01.dbf';
二、通过拷贝数据文件再rename的方式迁移数据文件
1.修参数文件中控制文件存储位置
SQL>alter system set control_files='/新存储位置/ocntrol01.ctl' scope=spfile;
2.一致性关闭数据库,拷贝数据文件和控制文件至新的存储位置
3.开启数据库起数据,分别重命名system,sysaux,undo,users,在线重做日志文件的表空间对应数据文件的名字
SQL>alter database rename file '旧文件位置' to '新文件位置'
4.新建新的临时表空间,删除旧的临时表空间
SQL>alter tablespace temp add tempfile '/新路径下的/temp01.dbf' size 1G;
SQL>alter teblespace temp drop tempfile '/旧路径下的/temp01.dbf';
原文地址https://blog.csdn.net/FC_BarceIona/article/details/80267685