基于scn的恢复,第二篇 1、察看当前的scn,以便于后期数据丢失用来恢复: sqlgt; select current_scn from v$database; cur
基于scn的恢复,第二篇
1、察看当前的scn,以便于后期数据丢失用来恢复:
sql> select current_scn from v$database;
current_scn
-----------
1511297
sql> select file#,checkpoint_change#from v$datafile;
file# checkpoint_change#
---------- ------------------
1 1510535
2 1510535
3 1510535
4 1510535
5 1510535
6 1510535
7 1510535
7 rows selected.
sql> col name format a45
sql> set line 300
sql> select name,checkpoint_change# fromv$datafile_header;
name checkpoint_change#
---------------------------------------------------------------
/dbbak2/oradata/wwl/system01.dbf 1510535
/dbbak2/oradata/wwl/undotbs01.dbf 1510535
/dbbak2/oradata/wwl/sysaux01.dbf 1510535
/dbbak2/oradata/wwl/users01.dbf 1510535
/dbbak2/oradata/wwl/wwl01.dbf 1510535
/dbbak2/oradata/wwl/wwl02.dbf 1510535
/dbbak2/oradata/wwl/wwl03.dbf 1510535
7 rows selected.
sql>
2、删除测试表
sql> drop table wwl002 purge;
table dropped.
sql> drop table wwl003 purge;
table dropped.
sql> drop table wwl004 purge;
table dropped.
sql> drop table wwl005 purge;
table dropped.
sql> conn / as sysdba
connected.
3、对数据库执行了dml操作后,数据库的scn号改变了。
sql> select current_scn from v$database;
current_scn
-----------
1511437
4、开始执行restore,到备份时候的状态:
rman> restore database;
starting restore at 13-jul-12
using target database control file insteadof recovery catalog
allocated channel: ora_disk_1
channel ora_disk_1: sid=47 devtype=disk
channel ora_disk_1: starting datafilebackupset restore
channel ora_disk_1: specifying datafile(s)to restore from backup set
restoring datafile 00001 to/dbbak2/oradata/wwl/system01.dbf
restoring datafile 00002 to/dbbak2/oradata/wwl/undotbs01.dbf
restoring datafile 00003 to/dbbak2/oradata/wwl/sysaux01.dbf
restoring datafile 00004 to/dbbak2/oradata/wwl/users01.dbf
restoring datafile 00005 to/dbbak2/oradata/wwl/wwl01.dbf
restoring datafile 00006 to/dbbak2/oradata/wwl/wwl02.dbf
restoring datafile 00007 to/dbbak2/oradata/wwl/wwl03.dbf
channel ora_disk_1: reading from backuppiece /dbsoft/product/10.2.0/db_1/dbs/01nft4mu_1_1
channel ora_disk_1: restored backup piece 1
piecehandle=/dbsoft/product/10.2.0/db_1/dbs/01nft4mu_1_1 tag=tag20120712t095437
channel ora_disk_1: restore complete,elapsed time: 00:01:06
finished restore at 13-jul-12
5、开始执行恢复,,到我们删除表之前的状态:
sql> recover database until change1511297;
ora-00279: change 1436429 generated at07/12/2012 09:54:38 needed for thread 1
ora-00289: suggestion :/dbsoft/product/10.2.0/db_1/dbs/arch1_3_788372282.dbf
ora-00280: change 1436429 for thread 1 isin sequence #3
specify log: {=suggested |filename | auto | cancel}
auto
ora-00279: change 1440657 generated at07/12/2012 14:00:52 needed for thread 1
ora-00289: suggestion :/dbsoft/product/10.2.0/db_1/dbs/arch1_1_788450452.dbf
ora-00280: change 1440657 for thread 1 isin sequence #1
ora-00279: change 1440855 generated at 07/12/201215:08:58 needed for thread 1
ora-00289: suggestion :/dbsoft/product/10.2.0/db_1/dbs/arch1_1_788454538.dbf
ora-00280: change 1440855 for thread 1 isin sequence #1
ora-00279: change 1441316 generated at07/12/2012 15:19:50 needed for thread 1
ora-00289: suggestion :/dbsoft/product/10.2.0/db_1/dbs/arch1_1_788455190.dbf
ora-00280: change 1441316 for thread 1 isin sequence #1
ora-00279: change 1442275 generated at07/12/2012 15:52:01 needed for thread 1
ora-00289: suggestion : /dbsoft/product/10.2.0/db_1/dbs/arch1_1_788457121.dbf
ora-00280: change 1442275 for thread 1 isin sequence #1
ora-00279: change 1442953 generated at07/12/2012 16:25:06 needed for thread 1
ora-00289: suggestion :/dbsoft/product/10.2.0/db_1/dbs/arch1_1_788459106.dbf
ora-00280: change 1442953 for thread 1 isin sequence #1
ora-00279: change 1462958 generated at07/12/2012 16:28:16 needed for thread 1
ora-00289: suggestion :/dbsoft/product/10.2.0/db_1/dbs/arch1_2_788459106.dbf
ora-00280: change 1462958 for thread 1 is insequence #2
ora-00278: log file'/dbsoft/product/10.2.0/db_1/dbs/arch1_1_788459106.dbf' no
longer needed for this recovery
ora-00279: change 1462963 generated at07/12/2012 17:17:59 needed for thread 1
ora-00289: suggestion :/dbsoft/product/10.2.0/db_1/dbs/arch1_1_788462279.dbf
ora-00280: change 1462963 for thread 1 isin sequence #1
ora-00279: change 1483784 generated at07/12/2012 17:54:25 needed for thread 1
ora-00289: suggestion :/dbsoft/product/10.2.0/db_1/dbs/arch1_2_788462279.dbf
ora-00280: change 1483784 for thread 1 isin sequence #2
ora-00278: log file'/dbsoft/product/10.2.0/db_1/dbs/arch1_1_788462279.dbf' no
longer needed for this recovery
ora-00279: change 1486119 generated at07/12/2012 20:35:27 needed for thread 1
ora-00289: suggestion :/dbsoft/product/10.2.0/db_1/dbs/arch1_1_788474127.dbf
ora-00280: change 1486119 for thread 1 isin sequence #1
ora-00279: change 1487388 generated at07/12/2012 21:31:17 needed for thread 1
ora-00289: suggestion :/dbsoft/product/10.2.0/db_1/dbs/arch1_1_788477477.dbf
ora-00280: change 1487388 for thread 1 isin sequence #1
log applied.
media recovery complete.
sql>
6、执行完恢复之后,scn被清空
sql> select current_scn from v$database;
current_scn
-----------
0
7、这个时候我们需要对redo也进行清空
sql> alter database open restlogs;
8、由此可以见得,数据已经恢复回来了:
sql> select * from tab;
tname tabtype clusterid
------------------------------ -----------------
wwl001 table
wwl002 table
wwl003 table
wwl004 table
wwl005 table
sql> select * from wwl005;
id name
---------- ------------
1 wwl
2 prodence
3 woo
4 xgx
5 cms
sql>
相关阅读:
探索oracle之rman_01概念
探索oracle之rman_02基本使用
探索oracle之rman_03非一致性备份
探索oracle之rman_04非一致性备份
探索oracle之rman_05增量备份
探索oracle之rman_06备份策略
探索oracle之rman_07单个数据文件丢失恢复
探索oracle之rman_07整个业务表空间丢失恢复
探索oracle之rman_07 磁盘损坏数据丢失恢复
探索oracle之rman_07 数据库所有文件全部丢失恢复
探索oracle之rman_07 重做日志redu文件丢失恢复
探索oracle之rman_07 参数文件丢失恢复
探索oracle之rman_07控制文件丢失恢复
探索oracle之rman_07 system表空间丢失恢复