设为首页 加入收藏

TOP

SCN系统变更号以及它和恢复的关系(二)
2015-07-24 10:44:40 来源: 作者: 【 】 浏览:3
Tags:SCN 系统 变更 以及 恢复 关系
NCE# ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- --- ---------------- -------------
1 1 5 NO CURRENT 747335
2 1 3 YES INACTIVE 744120
3 1 4 YES ACTIVE 745576

过段时间,发生自动系统检查点后
SQL> select
2 ts.name "表空间名"
3 , df.file# "文件号"
4 , df.checkpoint_change# "检查点"
5 , df.last_change# "终止检查点"
6 , df.name "文件名"
7 from v$tablespace ts,v$datafile df
8 where ts.ts#=df.ts#
9 order by df.file#;

表空间名 文件号 检查点 终止检查点 文件名
------------------------------ ---------- ---------- ---------- ----------------------------------------
SYSTEM 1 747335 /oracle/oradata/boss/system01.dbf
UNDOTBS1 2 747335 /oracle/oradata/boss/undotbs01.dbf
SYSAUX 3 747335 /oracle/oradata/boss/sysaux01.dbf
USERS 4 747335 /oracle/oradata/boss/users01.dbf
EXAMPLE 5 747335 /oracle/oradata/boss/example01.dbf
TESTTBS01 6 747335 /oracle/oradata/boss/testtbs01_01.dbf
TESTTBS01 7 747335 /oracle/oradata/boss/testtbs01_02.dbf
TESTTBS02 8 747335 /oracle/oradata/boss/testtbs02_01.dbf
TESTTBS03 9 652799 652799 /oracle/oradata/boss/testtbs03_01.dbf
TESTTBS04 10 747335 /oracle/oradata/boss/testtbs04_01.dbf

SQL> select file#,name,status,CHECKPOINT_CHANGE#,recover from v$datafile_header;

FILE# NAME STATUS CHECKPOINT_CHANGE# REC
---------- ---------------------------------------- ------- ------------------ ---
1 /oracle/oradata/boss/system01.dbf ONLINE 747335 NO
2 /oracle/oradata/boss/undotbs01.dbf ONLINE 747335 NO
3 /oracle/oradata/boss/sysaux01.dbf ONLINE 747335 NO
4 /oracle/oradata/boss/users01.dbf ONLINE 747335 NO
5 /oracle/oradata/boss/example01.dbf ONLINE 747335 NO
6 /oracle/oradata/boss/testtbs01_01.dbf ONLINE 747335 NO
7 /oracle/oradata/boss/testtbs01_02.dbf ONLINE 747335 NO
8 /oracle/oradata/boss/testtbs02_01.dbf ONLINE 747335 NO
9 /oracle/oradata/boss/testtbs03_01.dbf ONLINE 652799
10 /oracle/oradata/boss/testtbs04_01.dbf ONLINE 747335 NO

10 rows selected.

SQL> select dbid,name,log_mode,checkpoint_change# from v$database;

DBID NAME LOG_MODE CHECKPOINT_CHANGE#
---------- ---------------------------------------- ------------ ------------------
1375601832 BOSS ARCHIVELOG 747335


SQL> show parameter user_dump

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string /oracle/admin/boss/udump

##获得当前时间 系统scn,如果shutdown abort,恢复的记录为active重做日志到shutdown abort时间点
SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER
------------------------
746578

3.3、日志切换或检查点:执行检查点后,在重做日志中标记该检查点队列的尾scn之前的scn无需再做恢复
日志切换不会引起4个检查点的改变,只是在下次执行检查点后,将数据文件头scn、数据文件scn、系统scn都更新为high scn。
执行检查点时,将检查点队列上的所有脏数据写入(已提交和未提交的)写入到数据文件,在重做日志中标记该检查点队列的尾scn之前的scn无需再做恢复,最后将数据文件头scn、数据文件scn、系统scn都更新为当前scn。

3.5、数据库正常启动关闭
数据库正常关闭时,系统会执行一个完全检查点动作,用当前scn更新4个scn,将所有数据文件scn置为数据文件头scn(除了offline和read only的数据文件)。
数据库启动时,oracle先比较启动scn和系统scn,如果启动scn>系统scn,控制文件是旧的,如果启动scn<系统scn,数据文件是旧的,如果启动scn=系统scn,再查看终止scn,如果为nul就进行实例恢复
例如:begin backup引起启动scn和数据文件scn的改变,然后shutdown abort,需要恢复也就证明以上过程

3.6、数据库非正常关闭
数据库非正常关闭(实例崩溃)时,终止scn不会被设置,是null。可以数据库启动到mount状态时,进行查询。数据库open过程中,smon进程执行实例恢复工作,即先进行前滚,再把数据库打开,最后回滚。

3.7、数据文件介质故障
启动scn<系统scn

3.8、控制文件介质故障
启动scn>系统scn。noresetlogs重建控制文件时,控制文件的系统scn来自current log头;resetlogs重建控制文件,控制文件的系统scn来自启动scn(感觉不对)。

3.9、备份时的实例崩溃
begin backup时,实例崩溃

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇10gR2rac如何重跑root.sh? 下一篇PDO--PHPDataObjects

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++ Lambda表达式保 (2025-12-26 05:49:45)
·C++ Lambda表达式的 (2025-12-26 05:49:42)
·深入浅出 C++ Lambda (2025-12-26 05:49:40)
·C语言指针从入门到基 (2025-12-26 05:21:36)
·【C语言指针初阶】C (2025-12-26 05:21:33)