Oracle 11g R2数据库文件迁移案例

数据库文件存放在存储上,当需要更换新存储时,就需要变更新的存储路径,迁移原有的数据文件,本文档介绍两种数据文件迁移的方法。省略输出结果。

一、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';


猜你喜欢

转载自blog.csdn.net/FC_BarceIona/article/details/80267685