不完全恢复SCN号一点猜测

本文详细阐述了在Oracle数据库环境中备份控制文件的过程,并通过实例展示了如何使用目标数据库控制文件替代恢复目录,以及在控制文件丢失情况下恢复数据库的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先备份数据库的控制文件,然后干掉系统中的控制文件。目的是为了验证在在不完全恢复中:如果是在控制文件丢失的情况下。那么系统的SCN号会小于数据文件头的SCN号:即system SCN

连接到目标数据库: ORCL (DBID=1305768094)

RMAN> show all;

使用目标数据库控制文件替代恢复目录
RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\S
NCFORCL.ORA'; # default

RMAN> configure controlfile autobackup on;

新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已成功存储新的 RMAN 配置参数

RMAN> backup database
2> format 'D:\oracle\%U%T';

启动 backup 于 21-3月 -12
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=132 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件 fno=00008 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SUNXIN.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS02.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
输入数据文件 fno=00007 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST.DBF
通道 ORA_DISK_1: 正在启动段 1 于 21-3月 -12
通道 ORA_DISK_1: 已完成段 1 于 21-3月 -12
段句柄=D:\ORACLE\03N6EBI1_1_120120321 标记=TAG20120321T135305 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:56
完成 backup 于 21-3月 -12

启动 Control File and SPFILE Autobackup 于 21-3月 -12
段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2012_03_2
1\O1_MF_S_778514041_7PLV7TGN_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 21-3月 -12

RMAN> exit


恢复管理器完成。

C:\Documents and Settings\Administrator>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 3月 21 13:54:29 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> shutdown immeidate
SP2-0717: 非法的 SHUTDOWN 选项
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             243272580 bytes
Database Buffers          360710144 bytes
Redo Buffers                7135232 bytes
ORA-00205: ?????????, ??????, ???????


SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开

C:\Documents and Settings\Administrator>rman target /

恢复管理器: Release 10.2.0.1.0 - Production on 星期三 3月 21 13:56:12 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

连接到目标数据库: orcl (未装载)
使用目标数据库控制文件替代恢复目录

RMAN> restore controlfile from 'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORC
L\AUTOBACKUP\2012_03_21\O1_MF_S_778514041_7PLV7TGN_.BKP'
2> ;

启动 restore 于 21-3月 -12
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:04
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL
完成 restore 于 21-3月 -12

RMAN> alter database mount;

数据库已装载
释放的通道: ORA_DISK_1

RMAN> exit


恢复管理器完成。

C:\Documents and Settings\Administrator>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 3月 21 13:59:05 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#
------------------
           1003105

SQL> select checkpoint_change# from v$datafile_header;

CHECKPOINT_CHANGE#
------------------
           1004044
           1004044
           1004044
           1004044
           1004044
           1004044
           1004044
           1004044

已选择8行。

SQL> select first_change# from v$log;

FIRST_CHANGE#
-------------
       973730
       941075
      1001443

SQL> recover database;
ORA-00283: 恢复会话因错误而取消
ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成


SQL> recover database using backup controlfile;
ORA-00279: 更改 1003646 (在 03/21/2012 13:47:25 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_03_21\O1_MF_1_

21_%U_.ARC
ORA-00280: 更改 1003646 (用于线程 1) 在序列 #21 中


指定日志: {=suggested | filename | AUTO | CANCEL}

ORA-00308: 无法打开归档日志
'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_03_21\O1_MF_1

_21_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。


SQL> recover database using backup controlfile;
ORA-00279: 更改 1003646 (在 03/21/2012 13:47:25 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_03_21\O1_MF_1_

21_%U_.ARC
ORA-00280: 更改 1003646 (用于线程 1) 在序列 #21 中


指定日志: {=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\orcl\redo03.log
ORA-00328: 归档日志在更改 973729 结束, 需要稍后的更改 1003646
ORA-00334: 归档日志: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG'


SQL> recover database using backup controlfile;
ORA-00279: 更改 1003646 (在 03/21/2012 13:47:25 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_03_21\O1_MF_1_

21_%U_.ARC
ORA-00280: 更改 1003646 (用于线程 1) 在序列 #21 中


指定日志: {=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\orcl\redo03.log
ORA-00328: 归档日志在更改 973729 结束, 需要稍后的更改 1003646
ORA-00334: 归档日志: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG'


SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'


SQL> recover database using backup controlfile;
ORA-00279: 更改 1003646 (在 03/21/2012 13:47:25 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_03_21\O1_MF_1_

21_%U_.ARC
ORA-00280: 更改 1003646 (用于线程 1) 在序列 #21 中


指定日志: {=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\orcl\redo01.log
ORA-00328: 归档日志在更改 1001442 结束, 需要稍后的更改 1003646
ORA-00334: 归档日志: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'


SQL> recover database using backup controlfile;
ORA-00279: 更改 1003646 (在 03/21/2012 13:47:25 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_03_21\O1_MF_1_

21_%U_.ARC
ORA-00280: 更改 1003646 (用于线程 1) 在序列 #21 中


指定日志: {=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\orcl\redo02.log
已应用的日志。
完成介质恢复。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SQL> alter database open resetlogs;

数据库已更改。

SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#
------------------
           1004046

SQL> select checkpoint_change# from v$datafile_header;

CHECKPOINT_CHANGE#
------------------
           1004046
           1004046
           1004046
           1004046
           1004046
           1004046
           1004046
           1004046

已选择8行。

SQL> select first_change# from v$log;

FIRST_CHANGE#
-------------
            0
      1004045
            0

SQL> alter system switch logfile;

系统已更改。

SQL> /

系统已更改。

SQL> select first_change# from v$log;

FIRST_CHANGE#
-------------
      1005199
      1004045
      1005201

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- --------------
         1          1          2   52428800          1 YES ACTIVE
      1005199 21-3月 -12

         2          1          1   52428800          1 YES ACTIVE
      1004045 21-3月 -12

         3          1          3   52428800          1 NO  CURRENT
      1005201 21-3月 -12

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21416913/viewspace-719179/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/21416913/viewspace-719179/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值