思路:
o 利用RMAN对数据文件做copy
o 将数据文件offline
o switch文件名,这一步将更改控制文件中数据文件对应的文件名
o recover数据文件
o 将数据文件online,恢复生产
注:也可以利用这种思路做DATABASE COPY,然后做SWITCH DATABASE,迁移数据库...
实验过程如下:
======================================
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /home/oracle/arch
Oldest online log sequence 63
Next log sequence to archive 65
Current log sequence 65
RMAN> report schema;
using target database control file instead of recovery catalog
Report of database schema
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 700 SYSTEM *** /u01/app/oracle/oradata/ora10g/system01.dbf
2 700 UNDOTBS1 *** /u01/app/oracle/oradata/ora10g/undotbs01.dbf
3 260 SYSAUX *** /u01/app/oracle/oradata/ora10g/sysaux01.dbf
4 5 USERS *** /u01/app/oracle/oradata/ora10g/users01.dbf
5 5 USERS *** /u01/app/oracle/oradata/ora10g/users02.dbf <<<<<<<<计划将5号数据文件重命名
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 30 TEMP 32767 /u01/app/oracle/oradata/ora10g/temp01.dbf
RMAN> backup as copy datafile 5 format ‘/u01/app/oracle/oradata/ora10g/users02_new.dbf‘;
Starting backup at 05-FEB-15
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=146 devtype=DISK
channel ORA_DISK_1: starting datafile copy
input datafile fno=00005 name=/u01/app/oracle/oradata/ora10g/users02.dbf
output filename=/u01/app/oracle/oradata/ora10g/users02_new.dbf tag=TAG20150205T225207 recid=1 stamp=870907927
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 05-FEB-15
SQL> alter database datafile 5 offline;
Database altered.
SQL> recover datafile 5;
Media recovery complete.
SQL> alter database datafile 5 online;
Database altered.
RMAN> report schema;
Report of database schema
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 700 SYSTEM *** /u01/app/oracle/oradata/ora10g/system01.dbf
2 700 UNDOTBS1 *** /u01/app/oracle/oradata/ora10g/undotbs01.dbf
3 260 SYSAUX *** /u01/app/oracle/oradata/ora10g/sysaux01.dbf
4 5 USERS *** /u01/app/oracle/oradata/ora10g/users01.dbf
5 5 USERS *** /u01/app/oracle/oradata/ora10g/users02_new.dbf <<<<<<<<<<<<<<<<<<文件名已更换
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 30 TEMP 32767 /u01/app/oracle/oradata/ora10g/temp01.dbf