使用Linux文件句柄恢复Oracle数据文件(二)
nstall 64 Jan 15 11:20 262 -> /u01/app/oracle/oradata/ZWC/example01.dbf (deleted)
lrwx------ 1 oracle oinstall 64 Jan 15 11:20 263 -> /u01/app/oracle/oradata/ZWC/temp01.dbf
lr-x------ 1 oracle oinstall 64 Jan 15 11:20 3 -> /dev/null
lr-x------ 1 oracle oinstall 64 Jan 15 11:20 4 -> /dev/null
lrwx------ 1 oracle oinstall 64 Jan 15 11:20 5 -> /u01/app/oracle/product/11.2.0/db_1/dbs/hc_ZWC.dat
lr-x------ 1 oracle oinstall 64 Jan 15 11:20 6 -> /dev/null
lr-x------ 1 oracle oinstall 64 Jan 15 11:20 7 -> /dev/null
lr-x------ 1 oracle oinstall 64 Jan 15 11:20 8 -> /dev/null
lr-x------ 1 oracle oinstall 64 Jan 15 11:20 9 -> /dev/null
cp到新的位置
[oracle@zhongwc ~]$ cp -p /proc/2858/fd/261 /new_oradata/users01.dbf
[oracle@zhongwc ~]$ cp -p /proc/2858/fd/262 /new_oradata/example01.dbf
恢复数据文件
SQL> select file#,status,name from v$datafile;
FILE# STATUS NAME
---------- ------- -------------------------------------------------
1 SYSTEM /u01/app/oracle/oradata/ZWC/system01.dbf
2 ONLINE /u01/app/oracle/oradata/ZWC/sysaux01.dbf
3 ONLINE /u01/app/oracle/oradata/ZWC/undotbs01.dbf
4 ONLINE /u01/app/oracle/oradata/ZWC/users01.dbf
5 ONLINE /u01/app/oracle/oradata/ZWC/example01.dbf
SQL> alter database datafile 4 offline;
Database altered.
SQL> alter database datafile 5 offline;
Database altered.
SQL> select file#,status,name from v$datafile;
FILE# STATUS NAME
---------- ------- -------------------------------------------------
1 SYSTEM /u01/app/oracle/oradata/ZWC/system01.dbf
2 ONLINE /u01/app/oracle/oradata/ZWC/sysaux01.dbf
3 ONLINE /u01/app/oracle/oradata/ZWC/undotbs01.dbf
4 RECOVER /u01/app/oracle/oradata/ZWC/users01.dbf
5 RECOVER /u01/app/oracle/oradata/ZWC/example01.dbf
SQL> alter database rename file '/u01/app/oracle/oradata/ZWC/users01.dbf' to '/new_oradata/users01.dbf';
Database altered.
SQL> alter database rename file '/u01/app/oracle/oradata/ZWC/example01.dbf' to '/new_oradata/example01.dbf';
Database altered.
SQL> select file#,status,name from v$datafile;
FILE# STATUS NAME
---------- ------- -------------------------------------------------
1 SYSTEM /u01/app/oracle/oradata/ZWC/system01.dbf
2 ONLINE /u01/app/oracle/oradata/ZWC/sysaux01.dbf
3 ONLINE /u01/app/oracle/oradata/ZWC/undotbs01.dbf
4 RECOVER /new_oradata/users01.dbf
5 RECOVER /new_oradata/example01.dbf
SQL> alter datafile datafile 4 online;
alter datafile datafile 4 online
*
ERROR at line 1:
ORA-00940: invalid ALTER command
SQL> alter database datafile 4 online;
alter database datafile 4 online
*
ERROR at line 1:
ORA-01113: file 4 needs media recovery
ORA-01110: data file 4: '/new_oradata/users01.dbf'
SQL> recover datafile 4;
Media recovery complete.
SQL> recover datafile 5;
Media recovery complete.
SQL> alter database datafile 4 online;
Database altered.
SQL> alter database datafile 5 online;
Database altered.
SQL> select file#,status,name from v$datafile;
FI