Oracle 数据库SCN概念浅析

数据库 Oracle
我们今天主要是向大家介绍的是Oracle 数据库SCN概念,本文章主要是从SCN的四个概念入手的,以下就是文章的具体内容的介绍。

以下的文章主要是对Oracle 数据库SCN概念的介绍,为了更好的了解Oracle 数据库SCN概念,我们首先在这里介绍的是4个关于SCN的概念。以下就是具体内容的描述,希望在你今后的学习中会有所帮助。

1,系统检查点scn

当一个检查点动作完成后,Oracle 就把系统检查点的SCN存储到控制文件中。

 

  1. select checkpoint_change# from v$database; 

2,数据文件检查点scn

当一个检查点动作完成后,Oracle 就把每个数据文件的scn单独存放在控制文件中。

 

  1. select name,checkpoint_change# from v$datafile; 

3,启动scn

Oracle 把这个检查点的scn存储在每个数据文件的文件头中,这个值称为启动scn,因为它用于在数据库实例启动时,

检查是否需要执行Oracle数据库恢复。

 

  1. select name,checkpoint_change# from v$datafile_header 

4,终止scn

每个数据文件的终止scn都存储在控制文件中。

 

  1. select name,last_change# from v$datafile 

以下条件需要使用using backup controlfile

1)、使用备份控制文件

2)、重建resetlogs控制文件,如果重建立noresetlogs不必要使用using backup controlfile

2、alter database open resetlog

指定RESETLOGS将重设当前LOG sequence number为1,抛弃所有日志信息。

以下条件需要使用resetlog

1)在不完全恢复(介质恢复)

2)使用备份控制文件

使用resetlogs打开数据库后无必完整地备份一次Oracle数据库。

3、

  1. create controlfile resetlogs/noresetlogs 

1).用Noresetlogs重建控制文件时,控制文件中 datafile Checkpoint来自Online logs中的Current log头

2).用Resetlogs重建控制文件时,控制文件中datafile Checkpoint来自各数据文件头。

当system scn,datafile scn,start scn 不全相等,需要介质恢复,如果stopscn null需要实例恢复resetlogs抛弃所有在上一次恢复没有用到的日志信息,确保不被重新用与恢复。

1、系统正常关闭:

 

  1. system scn=datafile scn=start scn=stop scn 

1)system scn=datafile scn=start scn,不需要介质恢复

2)stopscn not null,不需要实例恢复

2、系统异常关闭:

 

  1. system scn=datafile scn=start scn,stop scn null 

1)system scn=datafile scn=start scn,不需要介质恢复

2)stopscn null,需要实例恢复

3、旧数据文件

 

  1. system scn=datafile scn>start scn,stop scn null/notnull 

1)system scn=datafile scn>start scn,需要介质恢复成system scn=datafile scn=start scn

2)stopscn null,需要实例恢复,not null 不需要实例恢复

4、备份控制文件

 

  1. system scn=datafile scn<=start scn(当数据文件为旧的相等) 

stop scn notnull/null

1)system scn=datafile scn<=start scn,需要使用using backup controlfile介质恢复成system scn=datafile scn=start scn=current log

scn(当前日志最大SCN)

2)为保证上一次恢复没有用到log日志不被使用,必须resetlogs

5、重建noresetlogs控制文件

控制文件中 datafile Checkpoint来自Online logs中的Current log头

 

  1. current log scn=system scn=datafile scn>=
    start scn,stop scn not null/null 

1)current log scn=system scn=datafile scn>=start scn,需要介质恢复成system scn=datafile scn=start scn=redolog scn(当前日志最大SCN),stop scn not null

2)stopscn not null 不需要实例恢复

6、重建resetlogs控制文件

控制文件中datafile Checkpoint来自各数据文件头。

 

  1. system scn>=datafile scn=start scn,stop scn not null/null 

1)system scn>=datafile scn=start scn,需要使用using backup controlfile介质恢复成system scn=datafile scn=start scn(当前日志最大SCN),stop scn not null

2)stop notnull,因为SCN已经为redolog scn,log已经不能使用,必须resetlogs

上述的相关内容就是对Oracle 数据库SCN概念的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

  1. Oracle创建表空间所用代码示例
  2. OracleSQL调优的作用是什么?
  3. Oracle权限分类及其具体内容
  4. Oracle权限分类及其具体内容
  5. Oracle数据库进行企业开发方案之错误排查
责任编辑:佚名 来源: 博客园
相关推荐

2009-03-16 13:30:55

脚本数据字典Oracle

2010-04-09 15:35:28

Oracle数据库

2009-03-30 14:52:43

复制数据库Oracle

2010-04-19 13:31:42

Oracle索引

2009-07-02 00:00:00

OOPOracle

2010-04-23 09:32:39

Oracle数据库实例

2011-08-30 09:50:22

OracleRMAN不完全恢复基于SCN恢复

2010-04-09 14:37:08

Oracle数据库

2011-03-25 11:13:15

Oracle数据库进程

2011-06-28 13:26:23

Oracle数据库ODBC

2010-03-24 09:42:12

Oracle数据库

2010-04-01 16:40:17

Oracle数据库

2010-02-02 09:02:01

Oracle数据库机Oracle Exad

2010-10-08 09:38:55

Android数据库事

2010-04-23 09:23:44

Oracle 数据库

2011-05-26 10:30:12

Oracle数据库约束

2011-03-10 13:24:26

2015-08-21 12:59:38

Oracle数据库

2011-07-04 13:36:26

linuxOracle

2009-09-18 14:25:36

LINQ to SQL
点赞
收藏

51CTO技术栈公众号