oracle全库备份恢复详细步骤 oracle数据库备份与恢复( 二 )


Oracle 数据库的恢复需要在 oracle 用户下执行 , 恢复内容包括控制文件*.ctl , 重组日志文件*.log,数据库文件*.dbf 。

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


一、恢复 dbf 文件
前提条件是 Oracle 数据库的初始化 spfile 文件 , 控制文件、重组日志文件、归档日志、备份都可以正常使用 。
现在先删除 dbf 文件 。

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


1、关闭数据库 , 再重新数据库 , 进入数据库
1.1 $ sqlplul / as sysdba
SQL>shutdown immediate(无法正常关闭 , 原因是没有数据库文件)

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


SQL>shutdown abort(强制关闭)

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


1.2 SQL>startup(无法正常启动 , 原因是没有数据库文件)

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


1.3 恢复
$ rman target/

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


Oracle 数据库没有处于 open 状态 , 这是因为数据库找不到数据文件 , 所以目前的数据库处于 mount 状态 。
1.3.1 还原文件
RMAN> restore database;

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


1.3.2 验证
进入存放 dbf 文件的目录查看 , dfb 文件已经被恢复 。

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


1.3.3 继续恢复数据
RMAN> recover database;

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


1.3.4 打开数据库的 open 状态
RMAN> sql ‘alter database open’;

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


恢复完成 , 下面退出 oracle 数据库的 rman 环境 , 重新进入数据库 。
[oracle@shell ~]$ sqlplus / as sysdba

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


SQL> select instance_name,status from v$instance;

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


【oracle全库备份恢复详细步骤 oracle数据库备份与恢复】 查看重做日志文件是否为原来的重做日志文件
SQL> archive log list;

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


由上图显示 , 数据库的重做日志的序号没有从 1 开始 , 证明还是原来的重做日志 。数据库进行了完全恢复 。
恢复成功后 , 最好立刻备份数据 。

oracle全库备份恢复详细步骤 oracle数据库备份与恢复



oracle全库备份恢复详细步骤 oracle数据库备份与恢复


二、重做日志文件损坏的恢复
2.1 确定数据库的备份状态
必须是 oracle 用户 , 执行 rman target/

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


查看数据库备份信息

oracle全库备份恢复详细步骤 oracle数据库备份与恢复



oracle全库备份恢复详细步骤 oracle数据库备份与恢复


2.2 删除重做日志文件

推荐阅读