最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle数据库启动过程验证检查点SCN

来源:动视网 责编:小采 时间:2020-11-09 12:54:19
文档

Oracle数据库启动过程验证检查点SCN

Oracle数据库启动过程验证检查点SCN:SCN(System Change Number,系统改变号)是Oracle数据库非常重要的机制。SCN在数据库启动,读一致性,数据的恢复,FLASHBACK操作 SCN(System Change Number,系统改变号)是Oracle数据库非常重要的机制。SCN在数据库启动,读一致性,数据的恢复,F
推荐度:
导读Oracle数据库启动过程验证检查点SCN:SCN(System Change Number,系统改变号)是Oracle数据库非常重要的机制。SCN在数据库启动,读一致性,数据的恢复,FLASHBACK操作 SCN(System Change Number,系统改变号)是Oracle数据库非常重要的机制。SCN在数据库启动,读一致性,数据的恢复,F


SCN(System Change Number,系统改变号)是Oracle数据库非常重要的机制。SCN在数据库启动,读一致性,数据的恢复,FLASHBACK操作

SCN(System Change Number,系统改变号)是Oracle数据库非常重要的机制。SCN在数据库启动,读一致性,数据的恢复,FLASHBACK操作等情况下都会用到。

1.SCN号是重要的时间机制,两者之间可以相互的转换。

1).将时间转换为SCN号:
SQL> select timestamp_to_scn(sysdate) from dual;

TIMESTAMP_TO_SCN(SYSDATE)
-------------------------
920939

2).将SCN号转换为具体时间:

SQL> select scn_to_timestamp(920000) from dual;

SCN_TO_TIMESTAMP(920000)
---------------------------------------------------------------------------
07-FEB-10 01.06.11.000000000 AM

3).查看当前数据库最新的SCN号:
SQL> select current_scn from v$database;

CURRENT_SCN
-----------
920782
当前最新的SCN号,该SCN号会不停的在内存中被刷新,Oracle 10g每隔3秒就会被刷新。

2.数据库启动过程对SCN号的验证。

下面我们先来了解4种类型的SCN,这4种类型的SCN实际都是检查点SCN,都是由CKPT进程更新,存储在控制文件和数据文件头中,不同类型的SCN有不同的作用。

1).数据库检查点SCN:


SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#
------------------
920459

数据库检查点SCN,每执行一次检查点,CKPT进程会更新控制文件中的数据库检查点SCN。

2).数据文件SCN:

SQL> select checkpoint_change# from v$datafile;

CHECKPOINT_CHANGE#
------------------
920459
920459
920459
920459
920459
920459
920459
920459
920459
920459
920459

36 rows selected.

数据文件SCN,每个数据文件都有一个数据文件SCN,每执行一次检查点,由CKPT进程都将更新位于控制文件中的数据文件SCN。

3).数据文件启动SCN:

SQL> select checkpoint_change# from v$datafile_header;

CHECKPOINT_CHANGE#
------------------
920459
920459
920459
920459
920459
920459
920459
920459
920459
920459
920459

36 rows selected.

启动SCN,每个数据文件都有一个启动SCN,每执行一次检查点,CKPT进程都将更新数据文件头中的检查点SCN,这被叫做启动SCN。

4).数据文件终止SCN:

SQL> select last_change# from v$datafile;

LAST_CHANGE#
------------

36 rows selected.

终止SCN,每个数据文件都有一个终止SCN,该SCN存储在控制文件中,当数据库被OPEN之后,该值即变成#ffffff无穷大。

数据库在启动过程中对SCN的验证分为两个阶段:
第一阶段,检查控制文件和数据文件中数据文件的检查点次数是否一致(不同的数据文件检查点次数可能是不同的),如果不一致说明要么控制文件过旧,要么数据文件过旧,需要执行相应的恢复操作;如果一致继续执行下一步检查。

第二阶段,检查数据文件的启动SCN和终止SCN是否一致,如果数据库关闭是非正常关闭,那么终止SCN肯定是无穷大,这个时候需要完成一个实例恢复的过程;如果启动SCN和终止SCN相同,那么数据库就可以OPEN了。

另外,存储在控制文件中的数据库SCN、数据文件SCN和存储在数据文件头中的启动SCN实际都是在执行检查点时由CKPT进程对控制文件和数据文件头的更新,3者必定是相同的,在执行SHUTDOWN IMMEDIATE|NORMAL|TRANSANTIONAL关闭数据库时会再次触发检查点,这时前面3种类型的SCN和存储在控制文件中的终止SCN必定是相同的。

下面我们通过对控制文件和数据文件头的转储来验证上面的说法:

1).正常关闭数据库的状态。

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 599785472 bytes
Fixed Size 2022600 bytes
Variable Size 230687544 bytes
Database Buffers 360710144 bytes
Redo Buffers 6365184 bytes
Database mounted.
SQL> @?/rdbms/admin/gettrace

TRACE_FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle1/admin/orcl/udump/orcl_ora_4132.trc

SQL> alter session set events 'immediate trace name controlf level 8';

文档

Oracle数据库启动过程验证检查点SCN

Oracle数据库启动过程验证检查点SCN:SCN(System Change Number,系统改变号)是Oracle数据库非常重要的机制。SCN在数据库启动,读一致性,数据的恢复,FLASHBACK操作 SCN(System Change Number,系统改变号)是Oracle数据库非常重要的机制。SCN在数据库启动,读一致性,数据的恢复,F
推荐度:
标签: 数据 数据库 启动
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top