• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Oracle手工恢复控制文件的深入解析

mysql 搞代码 4年前 (2022-01-09) 24次浏览 已收录 0个评论

v$database.CONTROLFILE_CHANGE# (代表从备份中恢复过来的控制文件的最后一个scn号假如是刚刚从备份中恢复,如果控制文件不是从

v$database.CHECKPOINT_CHANGE# (last scn checkpointed)
v$database.CONTROLFILE_SEQUENCE# (control file sequence number incremented by control file transactions)
v$database.CONTROLFILE_CHANGE# (last scn in backup control file ;null if the control file is not a backup)
v$datafile.CHECKPOINT_CHANGE# (scn at last checkpoint)
v$datafile_header. CHECKPOINT_CHANGE# (datafile checkpoint change#
v$log.FIRST_CHANGE# (lowest system change number(SCN) in the log

v$database.CHECKPOINT_CHANGE# 代表是数据库最后一次进行完全检查点的scn号。只有在进行完全检查点的时候才进行更新,更新的值为当前现在数据库的current_scn值。
v$database.CONTROLFILE_CHANGE# (代表从备份中恢复过来的控制文件的最后一个scn号假如是刚刚从备份中恢复,如果控制文件不是从备份中恢复过来的,那么该值为null,但是当控制文件在数据库打开的时候,那么该值会随着增量检查点和完全检查点或是数据库结构变化时会设置为当下的current_scn值。

SYS@orcl#select CHECKPOINT_CHANGE#,CONTROLFILE_SEQUENCE#,CONTROLFILE_CHANGE# from v$database;

CHECKPOINT_CHANGE# CONTROLFILE_SEQUENCE# CONTROLFILE_CHANGE#
—————— ——————— ——————-
4921905 14285 4922868
23:13:45 SYS@orcl#select CHECKPOINT_CHANGE#,CONTROLFILE_SEQUENCE#,CONTROLFILE_CHANGE# from v$database;

CHECKPOINT_CHANGE# CONTROLFILE_SEQUENCE# CONTROLFILE_CHANGE#
—————— ——————— ——————-
4935440 14311 4935548

23:13:46 SYS@orcl#select current_scn from v$database;

CURRENT_SCN
———–
4935575

23:13:46 SYS@orcl#alter system checkpoint;
select CHECKPOINT_CHANGE#,CONTROLFILE_SEQUENCE#,CONTROLFILE_CHANGE# from v$database;
系统已更改。

23:13:46 SYS@orcl#

CHECKPOINT_CHANGE# CONTROLFILE_SEQUENCE# CONTROLFILE_CHANGE#
—————— ——————— ——————-
4935576 14313 4935578

23:13:49 SYS@orcl#
23:14:09 SYS@orcl#select CHECKPOINT_CHANGE#,CONTROLFILE_SEQUENCE#,CONTROLFILE_CHANGE# from v$database;

CHECKPOINT_CHANGE# CONTROLFILE_SEQUENCE# CONTROLFILE_CHANGE#
—————— ——————— ——————-
4935576 14314 4935649

23:16:42 SYS@orcl#alter system switch logfile;

系统已更改。

23:16:52 SYS@orcl#select CHECKPOINT_CHANGE#,CONTROLFILE_SEQUENCE#,CONTROLFILE_CHANGE# from v$database;

CHECKPOINT_CHANGE# CONTROLFILE_SEQUENCE# CONTROLFILE_CHANGE#
—————— ——————— ——————-
4935576 14318 4935675

23:16:55 SYS@orcl#

v$database.CONTROLFILE_SEQUENCE# (代表根据数据库的变化进行增加的序列,在查询的时候显示的是当前的控制文件是在哪个sequence号,随着增量检查点和完全检查点或是数据库结构变化而incremental。

v$datafile.CHECKPOINT_CHANGE# (这个值代表的是数据文件中最后一个last checkpoint 的scn号与v$database 中的CHECKPOINT_CHANGE#相同。也就是说当进行完全检查点的时候,需要数据文件中的scn和控制文件中的scn保持一致性。当我们启动到数据库mount状态下然后dump数据文件看到的checkpoint scn正是这个值,在进行数据库启动要验证该值)
23:26:05 SYS@orcl#select CHECKPOINT_CHANGE#,CONTROLFILE_SEQUENCE#,CONTROLFILE_CHANGE# from v$database;

CHECKPOINT_CHANGE# CONTROLFILE_SEQUENCE# CONTROLFILE_CHANGE#
—————— ——————— ——————-
4935675 14332 4937039

23:26:30 SYS@orcl#select checkpoint_change# from v$datafile;

CHECKPOINT_CHANGE#
——————
4935675
4935675
4935675
4935675
4935675
4935675
4935675
4935675
4935675
4935675
4935675

CHECKPOINT_CHANGE#
——————
4935675

已选择12本文来源gao@dai!ma.com搞$代^码!网7行。

23:26:31 SYS@orcl#alter system checkpoint;

系统已更改。

23:27:27 SYS@orcl#select CHECKPOINT_CHANGE#,CONTROLFILE_SEQUENCE#,CONTROLFILE_CHANGE# from v$database;

CHECKPOINT_CHANGE# CONTROLFILE_SEQUENCE# CONTROLFILE_CHANGE#
—————— ——————— ——————-
4937086 14336 4937088

23:27:31 SYS@orcl#select checkpoint_change# from v$datafile;

CHECKPOINT_CHANGE#
——————
4937086
4937086
4937086
4937086
4937086
4937086
4937086
4937086
4937086
4937086
4937086

CHECKPOINT_CHANGE#
——————
4937086

已选择12行。

23:27:32 SYS@orcl#
v$datafile_header. CHECKPOINT_CHANGE# (代表数据文件头的检查点scn,,这个值和数据文件的检查点相一致,在数据库运行到open状态进行的数据文件dump文件中的header 中的checkpoint scn就是此值。)


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Oracle手工恢复控制文件的深入解析

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址