ITPub博客

首页 > 数据库 > 数据库开发技术 > 部分脱机备份恢复时有关恢复起点的一点疑问

部分脱机备份恢复时有关恢复起点的一点疑问

原创 数据库开发技术 作者:warehouse 时间:2011-01-23 11:49:07 0 删除 编辑

没想明白,暂时记录一下

[@more@]

SQL> select file#,checkpoint_change#,last_change#,offline_change#,online_change#,status from v$datafile;

FILE# CHECKPOINT_CHANGE# LAST_CHANGE# OFFLINE_CHANGE# ONLINE_CHANGE# STATUS
---------- ------------------ ------------ --------------- -------------- -------
1 9734650 9634265 9634266 SYSTEM
2 9734650 9634265 9634266 ONLINE
3 9734650 9634265 9634266 ONLINE
4 9734650 9634265 9634266 ONLINE

SQL> alter tablespace users offline;

表空间已更改。

SQL> select file#,checkpoint_change#,last_change#,offline_change#,online_change#,status from v$datafile;

FILE# CHECKPOINT_CHANGE# LAST_CHANGE# OFFLINE_CHANGE# ONLINE_CHANGE# STATUS
---------- ------------------ ------------ --------------- -------------- -------
1 9734650 9634265 9634266 SYSTEM
2 9734650 9634265 9634266 ONLINE
3 9734650 9634265 9634266 ONLINE
4 9736665 9736665 9634265 9634266 OFFLINE

SQL> host copy G:oracleproduct10.2.0oradataTESTUSERS01.DBF C:TEMP;
已复制 1 个文件。

SQL>
SQL> alter tablespace users online;

表空间已更改。

SQL> select file#,checkpoint_change#,last_change#,offline_change#,online_change#,status from v$datafile;

FILE# CHECKPOINT_CHANGE# LAST_CHANGE# OFFLINE_CHANGE# ONLINE_CHANGE# STATUS
---------- ------------------ ------------ --------------- -------------- -------
1 9734650 9634265 9634266 SYSTEM
2 9734650 9634265 9634266 ONLINE
3 9734650 9634265 9634266 ONLINE
4 9736760 9736665 9736760 ONLINE

SQL> alter system switch logfile;

系统已更改。

SQL> alter system switch logfile;

系统已更改。

SQL> alter system switch logfile;

系统已更改。

SQL> select file#,checkpoint_change#,last_change#,offline_change#,online_change#,status from v$datafile;

FILE# CHECKPOINT_CHANGE# LAST_CHANGE# OFFLINE_CHANGE# ONLINE_CHANGE# STATUS
---------- ------------------ ------------ --------------- -------------- -------
1 9737375 9634265 9634266 SYSTEM
2 9737375 9634265 9634266 ONLINE
3 9737375 9634265 9634266 ONLINE
4 9737375 9736665 9736760 ONLINE

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 314572800 bytes
Fixed Size 1248768 bytes
Variable Size 197132800 bytes
Database Buffers 109051904 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
SQL> select file#,checkpoint_change#,last_change#,offline_change#,online_change#,status from v$datafile;

FILE# CHECKPOINT_CHANGE# LAST_CHANGE# OFFLINE_CHANGE# ONLINE_CHANGE# STATUS
---------- ------------------ ------------ --------------- -------------- -------
1 9737433 9737433 9634265 9634266 SYSTEM
2 9737433 9737433 9634265 9634266 ONLINE
3 9737433 9737433 9634265 9634266 ONLINE
4 9737433 9737433 9736665 9736760 ONLINE

SQL>
SQL> host copy c:tempusers01.dbf G:oracleproduct10.2.0oradataTEST
已复制 1 个文件。

SQL> select file#,checkpoint_change# from v$datafile_header;

FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 9737433
2 9737433
3 9737433
4 9736665

SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: 文件 4 需要介质恢复
ORA-01110: 数据文件 4: 'G:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF'


SQL> alter database datafile 4 offline;

数据库已更改。

SQL> select file#,checkpoint_change#,last_change#,offline_change#,online_change#,status from v$datafile;

FILE# CHECKPOINT_CHANGE# LAST_CHANGE# OFFLINE_CHANGE# ONLINE_CHANGE# STATUS
---------- ------------------ ------------ --------------- -------------- -------
1 9737433 9737433 9634265 9634266 SYSTEM
2 9737433 9737433 9634265 9634266 ONLINE
3 9737433 9737433 9634265 9634266 ONLINE
4 9737433 9737433 9736665 9736760 OFFLINE

SQL> alter database open;

数据库已更改。

SQL> select file#,checkpoint_change#,last_change#,offline_change#,online_change#,status from v$datafile;

FILE# CHECKPOINT_CHANGE# LAST_CHANGE# OFFLINE_CHANGE# ONLINE_CHANGE# STATUS
---------- ------------------ ------------ --------------- -------------- -------
1 9737434 9634265 9634266 SYSTEM
2 9737434 9634265 9634266 ONLINE
3 9737434 9634265 9634266 ONLINE
4 9737433 9737433 9736665 9736760 OFFLINE

SQL>
SQL> recover datafile 4;
ORA-00279: 更改 9736760 (在 01/22/2011 09:56:24 生成) 对于线程 1 是必需的
ORA-00289: 建议: G:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2011_01_22O1_MF_1_6_%U_.ARC
ORA-00280: 更改 9736760 (用于线程 1) 在序列 #6 中


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

--=============================
这里恢复的时候为什么不是从4号datafile的头上的checkpoint_change#:9736665开始
恢复而是从9736760开始恢复呢?9736760很显然是在uesrs表空间做完离线备份之后online时
的checkpoint_change#
--=============================
接着上面输入auto选项恢复:
auto
已应用的日志。
完成介质恢复。
SQL>
SQL> select file#,checkpoint_change#,last_change#,offline_change#,online_change#,status from v$datafile;

FILE# CHECKPOINT_CHANGE# LAST_CHANGE# OFFLINE_CHANGE# ONLINE_CHANGE# STATUS
---------- ------------------ ------------ --------------- -------------- -------
1 9737434 9634265 9634266 SYSTEM
2 9737434 9634265 9634266 ONLINE
3 9737434 9634265 9634266 ONLINE
4 9737433 9737433 9736665 9736760 OFFLINE

SQL> select file#,checkpoint_change# from v$datafile_header;

FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 9737434
2 9737434
3 9737434
4 9737433

SQL>
--=========================
很显然datafile header上的checkpoint_change#已经从9736760恢复到v$datafile里面last_change#上
记录的9737433了,9737433就是shutdown db是做完全checkpoint时记录下来的,offline datafile 4
之后4号文件对应的last_change#不会再发生变化,所以last_change#记录的信息自然就是4#文件恢复的
终点,这个倒是不难理解。
--=========================
SQL> alter database datafile 4 online;

数据库已更改。

SQL> select file#,checkpoint_change# from v$datafile_header;

FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 9737434
2 9737434
3 9737434
4 9738822

SQL> select file#,checkpoint_change#,last_change#,offline_change#,online_change#,status from v$datafile;

FILE# CHECKPOINT_CHANGE# LAST_CHANGE# OFFLINE_CHANGE# ONLINE_CHANGE# STATUS
---------- ------------------ ------------ --------------- -------------- -------
1 9737434 9634265 9634266 SYSTEM
2 9737434 9634265 9634266 ONLINE
3 9737434 9634265 9634266 ONLINE
4 9738822 9736665 9736760 ONLINE

SQL>

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

请登录后发表评论 登录
全部评论

注册时间:2007-12-07

  • 博文量
    717
  • 访问量
    5366291