第46章 执行数据库恢复
2018-08-14
目标:
·确定是否需要执行恢复
·访问不同的界面(如em和命令行)
·描述并使用可用的选项,如RMAN和数据库恢复向导
·对以下文件执行恢复
控制文件
重做日志文件
数据文件
打开数据库
打开数据库必须要满足一下条件
所有控制文件都必须存在且已同步
所有联机数据文件都必须存在且已同步
每个重做日志组必须至少有一个成员存在
·打开数据库后,如果丢失以下项时数据库就会失败
任何控制文件
属于系统或还原表空间的数据文件
整个重做日志组
(只要组中有一个成员可用,实例就会保持在打开状态)
Data Recovery Advisor数据恢复指导
·快速检测、分析和修复故障
·停机和运行时的故障
·将对用户的干扰降到最低
·用户界面
Enerprice Manager
GUI
RMAN
·支持的数据库配置
单实例
非RAC
支持故障转移到备用数据库,但不支持分析和修复备用数据库
丢失了控制文件
如果控制文件丢失或者损坏、实例通常会终止
·如果控制文件存储在ASM磁盘组中,这恢复方案如下
1 使用Enterorise Manager执行指导式恢复
2 将数据库置于NOMOUNT模式,然后使用RMAN命令从现有控制文件恢复控制文件
RMAN> restore controlfile from
+DATA/orcl/controlfile/current.260.695209463′ ;
·如果控制文件存储为常规文件系统文件,则:
1 关闭数据库
2 复制现有的控制文件来替代丢失的控制文件
成功恢复控制文件后,打开数据库
控制文件丢失
1.部分丢失
关闭数据库
复制存在的给丢失的
启动数据库
实例启动阶段
复制给丢失的
alter database mount;
alter database open;
2.全部丢失
a.利用备份恢复
b.利用脚本重建控制文件
日志文件丢失
UNUSED INACTIVE –>
alter database clear logfile group <>;
ACTIVE –>
alter system chechpoint;
alter database celear logfile group <>;
CURRENT –>
alter system wsitch logfile;
alter system checkpoint;
alter database clear logfile group <>;
查看日志文件的状态
select member from v$logfile;
select group#,status from v$log;
用RMAN做数据库备份
用RMAN做数据恢复,一定要提前有备份
[oracle@wyzc ~]rman target /
RMAN> backup database;
1.丢失情况是system undo丢失
shutdown immediate
shutdown abort
startup mount
restore datafile <>;
recover database;
alter database open;
2.其他数据文件丢失
首先在RMAN里面执行sql指令
run{
sql ‘alter tablespace <> offline immediate’;
restore tablespace <>;
recover tablespace <>;
sql ‘alter tablespace <> online’;
}
这里的restore和recover
restore是使用以前的备份文件恢复到数据库崩溃之前的某个状态
recover是从备份状态开始,使用redo日志和归档日志,从备份的那个状态到数据库崩溃的状态之间的数据库操作重新做一遍,直到数据库宕机之前
这样就保证了数据库一点不差的被恢复起来了
因此将restore翻译为还原,recover翻译为恢复比较好
这两个词的博客原文解释
https://blog.csdn.net/chagaostu/article/details/19549279
转载于:https://www.cnblogs.com/tudousix/p/9480253.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101489.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...