测试9——为何在数据库在mount阶段可以查询v$datafile_header 视图
来源:互联网 发布:矩阵的二范数性质 编辑:程序博客网 时间:2024/05/08 14:03
大家都知道只有当数据库进入到OPEN状态时,数据文件才被打开,才能读取其中的内容.那在mount状态下,就可以读取v$datafile_header中的信息,为什么呢?
这说明当从nomount状态进入mount状态时,还是扫描了一下数据文件头中的内容的,而且将相应的信息存储到了控制文件中(因为有网友说通过dump control file可以看到http://www.itpub.net/thread-1153987-1-1.html)。
我试着做了一个实验,首先,把所有数据文件全部移走,然后mount数据库:
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1653518336 bytes
Fixed Size 2228904 bytes
Variable Size 956304728 bytes
Database Buffers 687865856 bytes
Redo Buffers 7118848 bytes
Database mounted.
SQL> select checkpoint_change#,checkpoint_time from v$datafile_header;
CHECKPOINT_CHANGE# CHECKPOIN
------------------ ---------
0
0
0
0
发现此时,已经读取不到数据文件头部的checkpoint_change#,checkpoint_time等信息。因为没有数据文件可以供扫描了。
然后我又把数据文件移动回来,再重新mount,就可以看到啦:
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1653518336 bytes
Fixed Size 2228904 bytes
Variable Size 956304728 bytes
Database Buffers 687865856 bytes
Redo Buffers 7118848 bytes
Database mounted.
SQL> select checkpoint_change#,checkpoint_time from v$datafile_header;
CHECKPOINT_CHANGE# CHECKPOIN
------------------ ---------
1104824 27-OCT-14
1104824 27-OCT-14
1104824 27-OCT-14
1104824 27-OCT-14
顺便总结下,到底什么时候需要进行数据恢复:
在数据库启动的时候,会检查v$database视图,v$datafile视图,v$datafile_header视图 里的checkpoint_change#,当然这三个视图的数值来源是不同的。v$database视图,v$datafile视图 里的scn是来自控制文件的,而v$datafile_header视图 里的scn是来自数据文件头的。
所以当数据库启动的时候,如果发现v$datafile_header的scn小于v$database(或v$datafile)里的值,就需要进行实例或者介质恢复。
- 测试9——为何在数据库在mount阶段可以查询v$datafile_header 视图
- 在数据库实例中查询v$asm相关视图的问题
- Mount阶段动态视图
- v$datafile_header中FUZZY
- 研究成果为何总停留在论文阶段
- v$datafile_header related mistake in 9i OCP book
- RMAN实战8:控制文件和数据文件SCN、v$datafile_header视图用途
- 如果忘记了性能视图全名,可以查询 v$fixed_table
- Sh脚本中查询ORACLE v$视图时需要在$号前加转义符“\”
- Sh脚本中查询ORACLE v$视图时需要在$号前加转义符“\”
- 在网上找了一份HTML阶段测试题,初学者有兴趣可以试下
- 在Access2000数据库中为何看不到用 CREATE VIEW 创建的视图
- V$SQL视图中SQL_TEXT的SQL语句是绑定变量,常量在v$sql_bind_capture视图的VLUE_STRING字段中可以查到
- dba_tablespaces、dba_data_files、v$datafile_header 、v$datafile
- 测试应该在需求阶段介入
- V$database checkpoint,v$datafile checkpoint,v$datafile_header checkpoint
- 为何能在视图类能更新界面
- 为何不能在viewDidLoad方法中显示其他视图
- android sdk manager无法下载的解决方案
- removeChild
- 转载String分析 (http://www.cnblogs.com/fancydeepin/archive/2013/04/22/min-snail-speak_String.html)
- linux 命令 mkdir -p
- 鱼骨图实践
- 测试9——为何在数据库在mount阶段可以查询v$datafile_header 视图
- linux守护进程及其创建
- insertBefore
- 实战MySQL主从数据库同步 增强系统安全性
- MySQL的InnoDB索引原理详解
- Android查询通话记录
- createDocumentFragment
- VC6.0打开或者添加工程文件崩溃的解决方法
- java gui技巧