1. 程式人生 > >linux誤刪資料檔案後恢復

linux誤刪資料檔案後恢復

--------------建立測試表

[[email protected] ~]$ sqlplus / as sysdba

SQL>create user test identified by test default tablespace users;

SQL>grant dba to test;

SQL>create table test.c_test as select * from dba_users;

SQL> select count(*) from test.c_test;

  COUNT(*)   ----------     30

--------------刪除資料檔案

[[email protected] ~]$cd /u01/app/oradata/orcl

[[email protected] ~]$mv users01.dbf  users01.dbf.bak

--------------恢復

[[email protected] orcl]$ ps -ef|grep dbw oracle    3332     1  0 15:50 ?        00:00:00 ora_dbw0_orcl oracle    3620  3203  0 16:51 pts/4    00:00:00 grep dbw

[[email protected] orcl]$ cd /proc/3332/fd/

[[email protected] fd]$ ls -lrt total 0 lrwx------. 1 oracle oinstall 64 Oct 18 16:51 9 -> /u01/app/oracle/product/11.2.0/db_1/dbs/hc_orcl.dat lr-x------. 1 oracle oinstall 64 Oct 18 16:51 8 -> /dev/zero lr-x------. 1 oracle oinstall 64 Oct 18 16:51 7 -> /proc/3332/fd lr-x------. 1 oracle oinstall 64 Oct 18 16:51 6 -> /u01/app/oracle/product/11.2.0/db_1/rdbms/mesg/oraus.msb lr-x------. 1 oracle oinstall 64 Oct 18 16:51 5 -> /dev/null lr-x------. 1 oracle oinstall 64 Oct 18 16:51 4 -> /dev/null lr-x------. 1 oracle oinstall 64 Oct 18 16:51 3 -> /dev/nulllrwx------. 1 oracle oinstall 64 Oct 18 16:51 262 -> /u01/app/oradata/orcl/users01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Oct 18 16:51 261 -> /u01/app/oradata/orcl/temp01.dbf lrwx------. 1 oracle oinstall 64 Oct 18 16:51 260 -> /u01/app/oradata/orcl/undotbs01.dbf lrwx------. 1 oracle oinstall 64 Oct 18 16:51 259 -> /u01/app/oradata/orcl/sysaux01.dbf lrwx------. 1 oracle oinstall 64 Oct 18 16:51 258 -> /u01/app/oradata/orcl/system01.dbf lrwx------. 1 oracle oinstall 64 Oct 18 16:51 257 -> /u01/app/oracle/fast_recovery_area/orcl/control02.ctl lrwx------. 1 oracle oinstall 64 Oct 18 16:51 256 -> /u01/app/oradata/orcl/control01.ctl l-wx------. 1 oracle oinstall 64 Oct 18 16:51 2 -> /dev/null lr-x------. 1 oracle oinstall 64 Oct 18 16:51 13 -> /u01/app/oracle/product/11.2.0/db_1/rdbms/mesg/oraus.msb lrwx------. 1 oracle oinstall 64 Oct 18 16:51 10 -> /u01/app/oracle/product/11.2.0/db_1/dbs/lkORCL l-wx------. 1 oracle oinstall 64 Oct 18 16:51 1 -> /dev/null lr-x------. 1 oracle oinstall 64 Oct 18 16:51 0 -> /dev/null

[[email protected] fd]$ cp 262 /u01/app/oradata/orcl/users01.dbf

[[email protected] ~]$ sqlplus / as sysdba

SQL>alter database datafile 4 offline;

Database altered.

SQL>recover datafile 4 ;

Media recovery complete.

SQL>alter database datafile 4 online;

Database altered.

SQL> select count(*) from test.c_test;

  COUNT(*)   ----------     30