oracle-SYSTEM表空间的备份与恢复
发布时间:2021-01-06 04:08:24 所属栏目:站长百科 来源:网络整理
导读:oracle-SYSTEM表空间的备份与恢复 这一篇在介绍备份及恢复数据文件的方法时,以备份和重做日志(包括归档日志和在线日志)没有丢失为前提 所谓关键数据文件:system表空间的数据文件与参数undo_tablespace指向的自动撤销表空间的数据文件(undo_tablespace
|
使用RMAN登录也报错 $ rman target / RMAN-00554 RMAN-04005: error from target database ORA-00604: error occurred at recursive SQL level 1 ORA-01578: ORACLE data block corrupted (file # 1,block #857) ORA-01110: data file 1: ‘/u01/app/oracle/oradata/orcl/system01.dbf‘ 此时必须终止实例才能开始恢复操作,比如将后台进程SMON 杀死,另一个后台进程PMON $ kill -9 `ps aux |grep ora_smon_orcl |grep -v grep | awk ‘{print $2}‘`
9.3.2 恢复流程 恢复操作必须在mount下进行,具体步骤: --1 如果实例尚未崩溃,使用shutdown abort或者操作系统的kill将实例关闭 --2 执行startup mount将实例启动到mount状态 --3 使用RMAN执行restore或switch还原损坏的关键数据文件 --4 使用RMAN执行recover database 利用归档日志和在线日志恢复数据文件 --5 执行alter database open 打开数据库 第一步确保实例已经停止,可以通过RMAN的一个运行块完成,比如恢复undotbs1表空间的数据文件 RMAN> run {
startup mount;
restore tablespace undotbs1;
recover database;
alter database open;
}
再比如恢复1号数据文件 RMAN> run {
startup mount;
restore datafile 1;
recover database;
alter database open;
}
当数据文件的镜像复制处于磁盘上时,可用switch命令取代restore将控制文件中的数据文件名立即换成镜像复制名,文件越大,还原操作节省的时间就越多。 首先启动到mount状态 RMAN> startup mount; 查看镜像复制信息和生成时间 RMAN> list datafilecopy all;
RMAN> run {
switch datafile 1 to datafilecopy
‘/u01/app/oracle/fra/ORCL/autobackup/2019_07_18/o1_mf_s__glzrwsd5_.dbf‘;
recover database;
alter database open;
}
现在查看1号数据文件的路径将是镜像复制 SQL> select name from v$datafile where file#=1; NAME /u01/app/oracle/fra/ORCL/autobackup/2019_07_18/o1_mf_s__glzrwsd5_.dbf 而查看镜像复制的路径将是原来的数据文件 RMAN> list copy of tablespace system; /u01/app/oracle/oradata/orcl/system01.dbf 如果原来数据文件已经是损坏的,此镜像复制当然也是损坏的,dba需要考虑这样的复制是否有意义,所以在使用switch之后要执行validate RMAN> validate datafilecopy all; 如有错误,可以删除 RMAN> delete noprompt datafilecopy 44; RMAN> backup as copy datafile 1 format ‘/u01/app/oracle/oradata/orcl/system01.dbf’; 将来不论是主动或被动,利用switch和recover都能再次切换回原路径 (编辑:安卓应用网_ASP源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
