数据库启动关闭有关的SCN
数据库的SCN一直是一个既熟悉又陌生的东西,很多人晓得有这个概念,但是是否真正理解就又是一回事,数据库几个视图和函数都能够查询到SCN,SCN最重要的使用地方是数据库启动的时候,这些概念其实很多文章都有介绍,我们再来梳理和巩固下:
四种SCN
1、 系统检查点scn
当一个检查点动作完成后,Oracle就把系统检查点的SCN存储到控制文件中。
Selectcheckpoint_change# from v$database
2、 数据文件检查点scn
当一个检查点动作完成后,Oracle就把每个数据文件的scn单独存放在控制文件中。
Selectcheckpoint_change# from v$datafile
3、 启动scn(数据文件头SCN)
Oracle把这个检查点的scn存储在每个数据文件的文件头中,这个值称为启动scn,因为它用于在数据库实例启动时,检查是否需要执行数据库恢复。
Selectname,chekpoint_change# from v$datafile_heade
4、 终止scn
每个数据文件的终止scn都存储在控制文件中。
Selectname,last_change# from v$datafile
几个检查点SCN号的关系
1、 正常关闭数据库
当正常关闭数据库时,checkpoint会进行,并且此时保存到控制文件里面的datafile的终止scn和数据文件头的启动scn会相同。 等到open数据库时,Oracle检查datafileheader中的启动 scn和存于control file中的datafile的scn是否相同, 如果相同,再检查datafile的scn和终止 scn是否相同,如果仍然相同,数据库就会正常开启,否则就需要recovery。
等到数据库开启后,储存在control file中的终止 scn就会恢复为NULL值,此时表示datafile是open在正常模式下了。
2、 非正常关闭
数据库非正常关闭(或称为实例崩溃)时,终止SCN不会被设置,依然为NULL,这可以通过把数据库启动至mount状态查询出来。这样Oracle通过这个信息就可以知道实例上次运行时崩溃了,检查点没有执行。这样重新启动时,Oracle会执行实例恢复工作,即先执行前滚、回滚操作,再把数据库打开。
注意一点:
(1)启动数据库时,如果发现终止 SCN = NULL,表示需要进行crash recovery;
(2)启动数据库时,如果发现有datafile header的启动 SCN 不等于储存于CONTROLFILE的DATAFILE SCN,表示需要进行Media recovery
(2)这种情况又有2种:
数据文件检查点SCN及系统检查点SCN比文件头启动SCN大:这时的情况是:系统发生介质故障,数据文件被以前的备份代替,控制文件中的数据文件检查点SCN肯定比文件头中的启动SCN要大,这样Oracle就知道要对这个文件进行介质恢复。这时要通过下面语句恢复数据库:
recoverdatabase ……
系统检查点SCN及数据文件SCN比文件头启动SCN小:在数据库恢复时,控制文件可能不是最新的,即把一个较早的控制文件还原为当前的控制文件,然后再执行恢复操作,这时控制文件中的系统检查点SCN和数据文件SCN可能比文件头的启动SCN小。这时恢复数据库要用下面命令:
recoverdatabase using Backup Controlfile或其他的恢复语句
数据库启动关闭有关的SCN相关推荐
- MySQL 数据库 启动 关闭
MySQL 数据库 启动 & 关闭 MySQL数据库服务器通常指的的是mysqld,而命令行mysql则是mysql客户端程序,这两个概念通常容易混淆.通常启动mysql服务器即是启动my ...
- GreenPlum 数据库启动关闭及数据库状态检查
本篇文章主要记录GreenPlum数据库的启动.关闭及状态查询.GreenPlum数据库提供gpstart和gpstop脚本来启动和关闭数据库,可以通过-help参数来查看这些脚本的帮助信息. vie ...
- PG数据库启动关闭等命令
PG数据库关闭 su postgres -c "pg_ctl stop -D /home/ssd1/PostgreSQL_data" # -D:声明该数据库文件的文件系统位置. 如 ...
- Oracle数据库启动与关闭
C:\app\Administrator\virtual\product\12.2.0\dbhome_2\bin>dir oracle.exe 驱动器 C 中的卷没有标签. 卷的序列号是 7E6 ...
- oracle表启用online,Oracle数据库启动与关闭
C:\app\Administrator\virtual\product\12.2.0\dbhome_2\bin>dir oracle.exe 驱动器 C 中的卷没有标签. 卷的序列号是 7E6 ...
- 2. Oracle 数据库实例启动关闭过程
转载自: http://blog.csdn.net/leshami/article/details/5542983 Oracle数据库实例的启动,严格来说应该是实例的启动,数据库仅仅是在实例启动后进行 ...
- oracle数据库从关闭到启动,Oracle数据库的启动和关闭详细过程
一.数据库打开 startup数据库正常启动 1.startup nomount 启动 Oracle DB 实例:NOMOUNT ,创建sga,创建了alert日志,用于create db,creat ...
- 02_clickhouse安装,卸载,启动/关闭服务,交互式命令(数据库创建,数据导入,查询),批模式数据导入,MySQL接口操作ClickHouse,DBeaver可视化工具安装与使用(学习笔记)
1 ClickHouse安装 安装文件清单 clickhouse-client-${version}.noarch.rpm clickhouse-common-static-dbg-${version ...
- Linux下oracle数据库启动和关闭操作
第一步:登陆 root登陆之后切换到oracle用户上,输入 su oracle 第二步:连接 在oracle用户下,输入 sqlplus /nolog 第三步:使用管理员权限 输入 connect ...
最新文章
- 固态硬盘是什么接口_SATA接口和M.2接口的固态硬盘哪个好?SATA接口和M.2接口的区别...
- cygwin下安装软件
- GT Transceiver中的重要时钟及其关系(4)CPLL的工作原理介绍
- 处理js两个数相乘的坑
- Bit-Z开放零门槛做市商计划 最高返100%交易手续费
- WebServices应用集成框架ESB(Enterprise Service Bus 企业服务总线)
- java wait 参数_java中wait()和join()方法的区别是什么
- jquery ajax 跨域解决方案 - CORS
- 金融数学与计算机专业,金融数学专业就业方向及前景分析(解读)
- Android安全开发之ZIP文件目录遍历
- centOS6.6虚拟机启动后登陆界面无法显示
- UE4.27 Live Link Face无法连接的一种解决办法
- Gym - 101964E - Fishermen - (二分+区间更新)
- gradle尚硅谷笔记
- 3个超神器工具,让你的电脑比手机好玩,值得收藏
- Linux开发工具(3)——gcc/g++
- SAP中SD交货与WM下架功能的集成应用
- R语言基础(1)-帮助函数|工作空间|IO|模块安装
- 如何复制qq好友--丢号不丢人
- 巡风xunfeng代码研究---新建Flask项目模板