ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » Oracle数据库管理 » 使用Oracle10g新特性,跨越Resetlogs时间点进行恢复

标题: [精华] 使用Oracle10g新特性,跨越Resetlogs时间点进行恢复
离线 Arrayeygle
天下有雪


精华贴数 65
个人空间 0
技术积分 206744 (1)
社区积分 6444 (233)
注册日期 2001-10-8
论坛徽章:60
现任管理团队成员ITPUB长老会主席2007年度ITPUB杰出贡献ITPUB长老会成员ITPUB元老ITPUB维基人
授权会员2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:柔道2008北京奥运纪念徽章:射击生肖徽章2007版:鼠2008年新春纪念徽章

发表于 2005-4-6 10:16 
使用Oracle10g新特性,跨越Resetlogs时间点进行恢复

使用Oracle10g新特性,跨越Resetlogs时间点进行恢复
作者:eygle
出处:http://blog.eygle.com
日期:April 05, 2005

在Oracle10g以前,在进行了不完全恢复使用resetlogs选项打开数据库以后,Oracle建议你要立即进行全备份。
因为日志序号会被置位,以防止后续日志被应用。resetlogs之前的备份将不能用于进行跨域resetlogs时间点的恢复。

在Oracle10g中,Oracle允许跨越resetlogs时间点进行完全/不完全恢复。
看一下测试的例子:
1.全备份数据库
PHP code:


rman target /



Recovery ManagerRelease 10.1.0.2.0 64bit Production



Copyright 
(c19952004Oracle.  All rights reserved.



connected to target databaseEYGLE (DBID=1337390772)



RMANbackup database plus archivelog delete all input;





Starting backup at 2005-04-05 16:29:08

current log archived

using target database controlfile instead of recovery catalog

allocated channel
ORA_DISK_1

channel ORA_DISK_1
sid=143 devtype=DISK

channel ORA_DISK_1
starting archive log backupset

channel ORA_DISK_1
specifying archive log(sin backup set

input archive log thread
=1 sequence=3 recid=294 stamp=554823466

input archive log thread
=1 sequence=4 recid=295 stamp=554828647

input archive log thread
=1 sequence=5 recid=297 stamp=554833749

channel ORA_DISK_1
starting piece 1 at 2005-04-05 16:29:16

channel ORA_DISK_1
finished piece 1 at 2005-04-05 16:29:19

piece handle
=/data5/flash_recovery_area/EYGLE/backupset/2005_04_05/o1_mf_annnn_TAG20050405T162914_154m2woc_.bkp comment=NONE

channel ORA_DISK_1
backup set completeelapsed time00:00:04

channel ORA_DISK_1
deleting archive log(s)

archive log filename=/data5/flash_recovery_area/EYGLE/archivelog/2005_04_05/o1_mf_1_3_154919qm_.arc recid=294 stamp=554823466

archive log filename
=/data5/flash_recovery_area/EYGLE/archivelog/2005_04_05/o1_mf_1_4_154g3728_.arc recid=295 stamp=554828647

archive log filename
=/data5/flash_recovery_area/EYGLE/archivelog/2005_04_05/o1_mf_1_5_154m2og4_.arc recid=297 stamp=554833749

Finished backup at 2005
-04-05 16:29:20



Starting backup at 2005
-04-05 16:29:21

using channel ORA_DISK_1

channel ORA_DISK_1
starting full datafile backupset

channel ORA_DISK_1
specifying datafile(sin backupset

input datafile fno
=00009 name=/data1/oradata/systemfile/bigtbs.dbf

input datafile fno
=00001 name=/opt/oracle/oradata/eygle/system01.dbf

input datafile fno
=00006 name=/opt/oracle/oradata/eygle/EYGLE/datafile/o1_mf_test_03xv34ny_.dbf

input datafile fno
=00002 name=/opt/oracle/oradata/eygle/undotbs01.dbf

input datafile fno
=00003 name=/opt/oracle/oradata/eygle/sysaux01.dbf

input datafile fno
=00010 name=/opt/oracle/oradata/eygle/dfmbrc.dbf

input datafile fno
=00008 name=/opt/oracle/oradata/eygle/trans01.dbf

channel ORA_DISK_1
starting piece 1 at 2005-04-05 16:29:22

channel ORA_DISK_1
finished piece 1 at 2005-04-05 16:31:07

piece handle
=/data5/flash_recovery_area/EYGLE/backupset/2005_04_05/o1_mf_nnndf_TAG20050405T162921_154m33kf_.bkp comment=NONE

channel ORA_DISK_1
backup set completeelapsed time00:01:45

channel ORA_DISK_1
starting full datafile backupset

channel ORA_DISK_1
specifying datafile(sin backupset

input datafile fno
=00005 name=/data1/oradata/systemfile/eygle01.dbf

input datafile fno
=00004 name=/opt/oracle/oradata/eygle/users01.dbf

input datafile fno
=00007 name=/opt/oracle/oradata/eygle/EYGLE/datafile/o1_mf_itpub_03xv5g66_.dbf

channel ORA_DISK_1
starting piece 1 at 2005-04-05 16:31:08

channel ORA_DISK_1
finished piece 1 at 2005-04-05 16:31:33

piece handle
=/data5/flash_recovery_area/EYGLE/backupset/2005_04_05/o1_mf_nnndf_TAG20050405T162921_154m6dxm_.bkp comment=NONE

channel ORA_DISK_1
backup set completeelapsed time00:00:25

channel ORA_DISK_1
starting full datafile backupset

channel ORA_DISK_1
specifying datafile(sin backupset

input datafile fno
=00011 name=/opt/oracle/oradata/eygle/t2k01.dbf

channel ORA_DISK_1
starting piece 1 at 2005-04-05 16:31:34

channel ORA_DISK_1
finished piece 1 at 2005-04-05 16:31:41

piece handle
=/data5/flash_recovery_area/EYGLE/backupset/2005_04_05/o1_mf_nnndf_TAG20050405T162921_154m76kz_.bkp comment=NONE

channel ORA_DISK_1
backup set completeelapsed time00:00:07

Finished backup at 2005
-04-05 16:31:41



Starting backup at 2005
-04-05 16:31:41

current log archived

using channel ORA_DISK_1

channel ORA_DISK_1
starting archive log backupset

channel ORA_DISK_1
specifying archive log(sin backup set

input archive log thread
=1 sequence=6 recid=298 stamp=554833902

channel ORA_DISK_1
starting piece 1 at 2005-04-05 16:31:44

channel ORA_DISK_1
finished piece 1 at 2005-04-05 16:31:47

piece handle
=/data5/flash_recovery_area/EYGLE/backupset/2005_04_05/o1_mf_annnn_TAG20050405T163142_154m7jpo_.bkp comment=NONE

channel ORA_DISK_1
backup set completeelapsed time00:00:04

channel ORA_DISK_1
deleting archive log(s)

archive log filename=/data5/flash_recovery_area/EYGLE/archivelog/2005_04_05/o1_mf_1_6_154m7gb3_.arc recid=298 stamp=554833902

Finished backup at 2005
-04-05 16:31:47



Starting Control File 
and SPFILE Autobackup at 2005-04-05 16:31:48

piece handle
=/data5/flash_recovery_area/EYGLE/autobackup/2005_04_05/o1_mf_s_554833908_154m7qps_.bkp comment=NONE

Finished Control File 
and SPFILE Autobackup at 2005-04-05 16:31:56



RMAN
> exit





Recovery Manager complete.

.




__________________
只看该作者    顶部
离线 eygle
天下有雪


精华贴数 65
个人空间 0
技术积分 206744 (1)
社区积分 6444 (233)
注册日期 2001-10-8
论坛徽章:60
现任管理团队成员ITPUB长老会主席2007年度ITPUB杰出贡献ITPUB长老会成员ITPUB元老ITPUB维基人
授权会员2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:柔道2008北京奥运纪念徽章:射击生肖徽章2007版:鼠2008年新春纪念徽章

发表于 2005-4-6 10:18 
2.进行数据更改
PHP code:


sqlplus "/ as sysdba"



SQL*PlusRelease 10.1.0.2.0 Production on Tue Apr 5 16:32:23 2005



Copyright 
(c19822004Oracle.  All rights reserved.





Connected to:

Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 64bit Production

With the Partitioning
OLAP and Data Mining options



SYS 
AS SYSDBA on 2005-04-05 16:32:23 >alter system switch logfile;



System altered.



SYS AS SYSDBA on 2005-04-05 16:32:30 >select count(*) from t;



  
COUNT(*)

----------

     
18956



SYS 
AS SYSDBA on 2005-04-05 16:33:03 >insert into t select from t;



18956 rows created.



SYS AS SYSDBA on 2005-04-05 16:33:17 >commit;



Commit complete.



SYS AS SYSDBA on 2005-04-05 16:33:19 >alter system switch logfile;



System altered.



SYS AS SYSDBA on 2005-04-05 16:33:45 >truncate table t;



Table truncated.



SYS AS SYSDBA on 2005-04-05 16:34:58 >alter system switch logfile;



System altered.



此时的日志序列情况如下:

SYS AS SYSDBA on 2005-04-05 16:35:00 >select from v$log_history where recid >1811;



     
RECID      STAMP    THREAD#  SEQUENCE# FIRST_CHANGE# FIRST_TIME          NEXT_CHANGE# RESETLOGS_CHANGE# RESETLOGS_TIME

---------- ---------- ---------- ---------- ------------- ------------------- ------------ ----------------- -------------------

      
1812  554813757          1          1      10923677 2005-04-05 09:54:53     10925720          10923677 2005-04-05 09:54:53

      1813  554813974          1          2      10925720 2005
-04-05 10:55:57     10925827          10923677 2005-04-05 09:54:53

      1814  554823464          1          3      10925827 2005
-04-05 10:59:34     10947409          10923677 2005-04-05 09:54:53

      1815  554828646          1          4      10947409 2005
-04-05 13:37:44     10950318          10923677 2005-04-05 09:54:53

      1816  554833748          1          5      10950318 2005
-04-05 15:04:06     10953123          10923677 2005-04-05 09:54:53

      1817  554833901          1          6      10953123 2005
-04-05 16:29:08     10953187          10923677 2005-04-05 09:54:53

      1818  554833950          1          7      10953187 2005
-04-05 16:31:41     10953213          10923677 2005-04-05 09:54:53

      1819  554834005          1          8      10953213 2005
-04-05 16:32:30     10953633          10923677 2005-04-05 09:54:53

      1820  554834118          1          9      10953633 2005
-04-05 16:33:25     10953726          10923677 2005-04-05 09:54:53



9 rows selected
.



关闭数据库:

SYS AS SYSDBA on 2005-04-05 16:35:18 >shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.



SYS AS SYSDBA on 2005-04-05 16:37:30 >exit

Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 64bit Production

With the Partitioning
OLAP and Data Mining options

.




__________________
只看该作者    顶部
离线 eygle
天下有雪


精华贴数 65
个人空间 0
技术积分 206744 (1)
社区积分 6444 (233)
注册日期 2001-10-8
论坛徽章:60
现任管理团队成员ITPUB长老会主席2007年度ITPUB杰出贡献ITPUB长老会成员ITPUB元老ITPUB维基人
授权会员2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:柔道2008北京奥运纪念徽章:射击生肖徽章2007版:鼠2008年新春纪念徽章

发表于 2005-4-6 10:20 
3.执行不完全恢复
PHP code:


rman target /



Recovery ManagerRelease 10.1.0.2.0 64bit Production



Copyright 
(c19952004Oracle.  All rights reserved.



connected to target database (not started)



RMANstartup mount;



Oracle instance started

database mounted



Total System 
Global Area     314572800 bytes



Fixed Size                     1301704 bytes

Variable Size                261890872 bytes

Database Buffers              50331648 bytes

Redo Buffers                   1048576 bytes



RMAN
run {

2set until sequence 8 thread 1;

3restore database;

4recover database;

5> }



executing commandSET until clause

using target database controlfile instead of recovery catalog



Starting restore at 2005
-04-05 16:39:17

allocated channel
ORA_DISK_1

channel ORA_DISK_1
sid=160 devtype=DISK



datafile 8 not processed because file is read
-only

channel ORA_DISK_1
starting datafile backupset restore

channel ORA_DISK_1
specifying datafile(sto restore from backup set

restoring datafile 00001 to 
/opt/oracle/oradata/eygle/system01.dbf

restoring datafile 00002 to 
/opt/oracle/oradata/eygle/undotbs01.dbf

restoring datafile 00003 to 
/opt/oracle/oradata/eygle/sysaux01.dbf

restoring datafile 00006 to 
/opt/oracle/oradata/eygle/EYGLE/datafile/o1_mf_test_03xv34ny_.dbf

restoring datafile 00009 to 
/data1/oradata/systemfile/bigtbs.dbf

restoring datafile 00010 to 
/opt/oracle/oradata/eygle/dfmbrc.dbf

channel ORA_DISK_1
restored backup piece 1

piece handle
=/data5/flash_recovery_area/EYGLE/backupset/2005_04_05/o1_mf_nnndf_TAG20050405T162921_154m33kf_.bkp tag=TAG20050405T162921

channel ORA_DISK_1
restore complete

channel ORA_DISK_1
starting datafile backupset restore

channel ORA_DISK_1
specifying datafile(sto restore from backup set

restoring datafile 00004 to 
/opt/oracle/oradata/eygle/users01.dbf

restoring datafile 00005 to 
/data1/oradata/systemfile/eygle01.dbf

restoring datafile 00007 to 
/opt/oracle/oradata/eygle/EYGLE/datafile/o1_mf_itpub_03xv5g66_.dbf

channel ORA_DISK_1
restored backup piece 1

piece handle
=/data5/flash_recovery_area/EYGLE/backupset/2005_04_05/o1_mf_nnndf_TAG20050405T162921_154m6dxm_.bkp tag=TAG20050405T162921

channel ORA_DISK_1
restore complete

channel ORA_DISK_1
starting datafile backupset restore

channel ORA_DISK_1
specifying datafile(sto restore from backup set

restoring datafile 00011 to 
/opt/oracle/oradata/eygle/t2k01.dbf

channel ORA_DISK_1
restored backup piece 1

piece handle
=/data5/flash_recovery_area/EYGLE/backupset/2005_04_05/o1_mf_nnndf_TAG20050405T162921_154m76kz_.bkp tag=TAG20050405T162921

channel ORA_DISK_1
restore complete

Finished restore at 2005
-04-05 16:41:45



Starting recover at 2005
-04-05 16:41:46

using channel ORA_DISK_1

datafile 8 not processed because file is offline



starting media recovery



archive log thread 1 sequence 7 is already on disk 
as file /data5/flash_recovery_area/EYGLE/archivelog/2005_04_05/o1_mf_1_7_154m8z7k_.arc

channel ORA_DISK_1
starting archive log restore to default destination

channel ORA_DISK_1
restoring archive log

archive log thread
=1 sequence=6

channel ORA_DISK_1
restored backup piece 1

piece handle
=/data5/flash_recovery_area/EYGLE/backupset/2005_04_05/o1_mf_annnn_TAG20050405T163142_154m7jpo_.bkp tag=TAG20050405T163142

channel ORA_DISK_1
restore complete

archive log filename
=/data5/flash_recovery_area/EYGLE/archivelog/2005_04_05/o1_mf_1_6_154mtkfk_.arc thread=1 sequence=6

channel 
default: deleting archive log(s)

archive log filename=/data5/flash_recovery_area/EYGLE/archivelog/2005_04_05/o1_mf_1_6_154mtkfk_.arc recid=302 stamp=554834513

archive log filename
=/data5/flash_recovery_area/EYGLE/archivelog/2005_04_05/o1_mf_1_7_154m8z7k_.arc thread=1 sequence=7

media recovery complete

Finished recover at 2005
-04-05 16:41:57



RMAN
alter database open resetlogs;



database opened



RMAN
> exit





Recovery Manager complete.

.

4.此时的数据库状态
PHP code:


sqlplus "/ as sysdba"



SQL*PlusRelease 10.1.0.2.0 Production on Tue Apr 5 16:43:58 2005



Copyright 
(c19822004Oracle.  All rights reserved.





Connected to:

Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 64bit Production

With the Partitioning
OLAP and Data Mining options



SYS 
AS SYSDBA on 2005-04-05 16:43:58 >archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     1

Next log sequence to archive   1

Current log sequence           1

SYS 
AS SYSDBA on 2005-04-05 16:44:01 >select count(*) from t;



  
COUNT(*)

----------

     
18956

.

5.继续进行数据更改
PHP code:


SYS 
AS SYSDBA on 2005-04-05 16:44:08 >create table tt as select from dba_users;



Table created.



SYS AS SYSDBA on 2005-04-05 16:45:51 >alter system switch logfile;



System altered.



SYS AS SYSDBA on 2005-04-05 16:45:56 >select count(*) from tt;



  
COUNT(*)

----------

        
12



SYS 
AS SYSDBA on 2005-04-05 16:46:01 >insert into tt select from tt;



12 rows created.



SYS AS SYSDBA on 2005-04-05 16:46:13 >commit;



Commit complete.



SYS AS SYSDBA on 2005-04-05 16:46:16 >alter system switch logfile;



System altered.

此时的日志序列:
PHP code:


SYS 
AS SYSDBA on 2005-04-05 17:46:19 >select from v$log_history where recid >1811;



     
RECID      STAMP    THREAD#  SEQUENCE# FIRST_CHANGE# FIRST_TIME          NEXT_CHANGE# RESETLOGS_CHANGE# RESETLOGS_TIME

---------- ---------- ---------- ---------- ------------- ------------------- ------------ ----------------- -------------------

      
1812  554813757          1          1      10923677 2005-04-05 09:54:53     10925720          10923677 2005-04-05 09:54:53

      1813  554813974          1          2      10925720 2005
-04-05 10:55:57     10925827          10923677 2005-04-05 09:54:53

      1814  554823464          1          3      10925827 2005
-04-05 10:59:34     10947409          10923677 2005-04-05 09:54:53

      1815  554828646          1          4      10947409 2005
-04-05 13:37:44     10950318          10923677 2005-04-05 09:54:53

      1816  554833748          1          5      10950318 2005
-04-05 15:04:06     10953123          10923677 2005-04-05 09:54:53

      1817  554833901          1          6      10953123 2005
-04-05 16:29:08     10953187          10923677 2005-04-05 09:54:53

      1818  554833950          1          7      10953187 2005
-04-05 16:31:41     10953213          10923677 2005-04-05 09:54:53

      1819  554834005          1          8      10953213 2005
-04-05 16:32:30     10953633          10923677 2005-04-05 09:54:53

      1820  554834118          1          9      10953633 2005
-04-05 16:33:25     10953726          10923677 2005-04-05 09:54:53

      1821  554834756          1          1      10953214 2005
-04-05 16:42:34     10953433          10953214 2005-04-05 16:42:34

      1822  554834781          1          2      10953433 2005
-04-05 16:45:56     10953445          10953214 2005-04-05 16:42:34



11 rows selected
.



SYS AS SYSDBA on 2005-04-05 16:46:21 >shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SYS AS SYSDBA on 2005-04-05 16:47:38 >exit

Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 64bit Production

With the Partitioning
OLAP and Data Mining options

.

6.再次执行恢复
PHP code:


rman target /



Recovery ManagerRelease 10.1.0.2.0 64bit Production



Copyright 
(c19952004Oracle.  All rights reserved.



connected to target database (not started)



RMANstartup mount;



Oracle instance started

database mounted



Total System 
Global Area     314572800 bytes



Fixed Size                     1301704 bytes

Variable Size                261890872 bytes

Database Buffers              50331648 bytes

Redo Buffers                   1048576 bytes



RMAN
run {

2restore database;

3recover database;

4> }



Starting restore at 2005-04-05 16:49:54

using target database controlfile instead of recovery catalog

allocated channel
ORA_DISK_1

channel ORA_DISK_1
sid=160 devtype=DISK



datafile 8 not processed because file is read
-only

channel ORA_DISK_1
starting datafile backupset restore

channel ORA_DISK_1
specifying datafile(sto restore from backup set

restoring datafile 00001 to 
/opt/oracle/oradata/eygle/system01.dbf

restoring datafile 00002 to 
/opt/oracle/oradata/eygle/undotbs01.dbf

restoring datafile 00003 to 
/opt/oracle/oradata/eygle/sysaux01.dbf

restoring datafile 00006 to 
/opt/oracle/oradata/eygle/EYGLE/datafile/o1_mf_test_03xv34ny_.dbf

restoring datafile 00009 to 
/data1/oradata/systemfile/bigtbs.dbf

restoring datafile 00010 to 
/opt/oracle/oradata/eygle/dfmbrc.dbf

channel ORA_DISK_1
restored backup piece 1

piece handle
=/data5/flash_recovery_area/EYGLE/backupset/2005_04_05/o1_mf_nnndf_TAG20050405T162921_154m33kf_.bkp tag=TAG20050405T162921

channel ORA_DISK_1
restore complete

channel ORA_DISK_1
starting datafile backupset restore

channel ORA_DISK_1
specifying datafile(sto restore from backup set

restoring datafile 00004 to 
/opt/oracle/oradata/eygle/users01.dbf

restoring datafile 00005 to 
/data1/oradata/systemfile/eygle01.dbf

restoring datafile 00007 to 
/opt/oracle/oradata/eygle/EYGLE/datafile/o1_mf_itpub_03xv5g66_.dbf

channel ORA_DISK_1
restored backup piece 1

piece handle
=/data5