我在oracle视频上看到如下介绍:
当数据文件出现介质失败时,使用操作系统即令转储数据文件,并使用sql恢复命令执行重做日志和归档日志,
最终将数据文件恢复到失败点之前的状态。
分为以下2个步骤:
1,当发生介质故障后,利用备份文件来修复损坏或丢失的数据文件。
2,修复数据文件后,因为被修复的数据文件与其他数据文件相比要”旧“
,所以这时,数据库中的数据文件并不同步(文件头部信息中的检查点号SCN不同)。
由于数据文件之间不一致,数据库仍然无法打开,这时候就需要通过sql命令,使用归档日志对数据库进行恢复。
恢复命令
1 recover database;
用于恢复数据库的多个数据文件,只在mount状态下使用
2 recover tablespace;
用于恢复一个或多个表空间的所有数据文件,只在open状态下运行
3 recover datafile 4
用于恢复一个或者多个数据文件,该命令可以在mount或者open状态下运行
或者再recover命令中指定归档日志位置,如下:
recover from 'f:\oracle11g\orcl0025_069817.001' datafile 4;
可以可以在recover命令当中指定自动应用归档日志,如下:
recover automatic datafile 4;
问下,在恢复命令中,为什么recover database、recover tablespace、recover datafile 4中,都提到了恢复数据文件。
但是数据库状态却是mount以及open状态下都可以进行恢复。
这里我有个疑问,oracle启动时候,不是在nomount状态下,读取的是初始化参数文件,在mount状态下读取的是控制文件,只有在open状态下才读取加载数据文件吗?那为什么这里描述中在mount状态下也可以恢复数据文件呢?
当数据文件出现介质失败时,使用操作系统即令转储数据文件,并使用sql恢复命令执行重做日志和归档日志,
最终将数据文件恢复到失败点之前的状态。
分为以下2个步骤:
1,当发生介质故障后,利用备份文件来修复损坏或丢失的数据文件。
2,修复数据文件后,因为被修复的数据文件与其他数据文件相比要”旧“
,所以这时,数据库中的数据文件并不同步(文件头部信息中的检查点号SCN不同)。
由于数据文件之间不一致,数据库仍然无法打开,这时候就需要通过sql命令,使用归档日志对数据库进行恢复。
恢复命令
1 recover database;
用于恢复数据库的多个数据文件,只在mount状态下使用
2 recover tablespace;
用于恢复一个或多个表空间的所有数据文件,只在open状态下运行
3 recover datafile 4
用于恢复一个或者多个数据文件,该命令可以在mount或者open状态下运行
或者再recover命令中指定归档日志位置,如下:
recover from 'f:\oracle11g\orcl0025_069817.001' datafile 4;
可以可以在recover命令当中指定自动应用归档日志,如下:
recover automatic datafile 4;
问下,在恢复命令中,为什么recover database、recover tablespace、recover datafile 4中,都提到了恢复数据文件。
但是数据库状态却是mount以及open状态下都可以进行恢复。
这里我有个疑问,oracle启动时候,不是在nomount状态下,读取的是初始化参数文件,在mount状态下读取的是控制文件,只有在open状态下才读取加载数据文件吗?那为什么这里描述中在mount状态下也可以恢复数据文件呢?
解决方案 »
- ORA-01427: 单行子查询返回多于一个行,但我返回的只有一行啊?
- 急急急急急急急急急!如何实现向数据库提交一张表单,让数据库批量查询
- 怎样在c#中用函数取数据库中表的名称、字段的名称和属性的啊。
- Oracle向SqlServer导入数据
- 请大家帮忙:如何写一个orcle 存储过程,要求输入一组数据
- ado 读写 Oracle的问题
- 求救Oracle数据库收缩??
- 如何用命令同时删除某用户的所有TABLE呢?
- utl_file.fopen('C:\','test.txt','R')时出错:utl_file.invalid_path ,数据库端的C:\test.txt文件存在,UTL_FILE_DIR = "C:\"已添加.弱
- oracle数据迁移
- 请教将SQLSERVER 转换成ORACLE可以运行的SQL
- 求一SQL组合如下数据。
可以这样理解吗? 数据文件离线offline状态下,只能在mount状态下恢复,而在线的只能在open状态下恢复恩?