oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

Oracle数据库使用RMAN备份,需要把数据库的非归档模式改成归档模式。

一、更改数据库的归档模式需要重新启动数据库,在mount模式下修改(三种启动模式nomount—mount— open)。

具体步骤如下:

1、进入数据库后,关闭数据库

SQLshutdown immediate

2、启动数据库到mount状态

SQLstartup mount

3、改变数据库为归档模式

SQLalter database archivelog;(归档改为非归档语句为alter database noarchivelog;)

4、验证方式

SQLalter database open;(打开数据库)

SQLarchive log list

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

二、启动控制文件的自动备份

RMANconfigure controlfile autobackup on;

RMANshow controlfile autobackup ;(验证)

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

三、全库备份

3.1最简单的全库备份

RMANbackup database;

RMANlist backup;(验证)

RMANlist backup summary;(验证)

在以上备份的情况下,使用以下步骤恢复。

数据库丢失数据文件、控制文件、重做日志文件的恢复

一、查看备份情况

在oracle用户下,输入以下命令

[oracle@shell ~]$ rman target/

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

RMAN list backup;

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

由上图知悉,已经备份了数据库的控制文件。

现在删除/usr/local/oradata/orcl下的文件

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

[oracle@shell orcl]$ rm *.*

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

SQL select count(*) from bankuser.emp;

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

上图显示找不到数据库文件导致错误。

二、恢复

目标是恢复控制文件、数据文件、重做日志文件

2.1强制关闭数据库再重新启动

SQL shutdown abort

SQL startup

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

2.2 查看实例

SQL select instance_name,status from v$instance;

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

上图中的started状态表明数据库只读取到了初始化文件,当前为nomount状态。

2.3恢复控制文件

[oracle@shell orcl]$ rman target/

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

RMAN restore controlfile from autobackup;

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

在/usr/local/oradata/orcl目录下查看恢复的文件。

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

2.4恢复数据文件

设置数据库到mount状态

RMAN alter database mount;

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

从原来的备份中还原数据库的数据文件

RMAN restore database;

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

由上图知悉成功还原数据库数据文件。

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

由上图可以看到恢复的文件。

2.5恢复数据库

[oracle@shell orcl]$ sqlplus / as sysdba

SQL recover database using backup controlfile until cancel;

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

这样就恢复了数据库的数据文件。

2.6由于丢失了数据库的重做日志文件,这一部分数据将会丢失,所以这是不完全恢复。需要重新生成数据库重做日志文件。

SQL alter database open resetlogs;

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

三、验证

SQL archive log list;

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

由上图知悉,查看当前数据库的日志序号,是从1开始,表示重新生成了oracle数据库的重做日志文件。

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

由上图看到,在/usr/local/oradata/orcl目录下生成了.log的重做日志文件。

三、验证

[oracle@shell RmanBackup]$ sqlplus / as sysdba

SQL select instance_name,status from v$instance;

oracle数据恢复到之前的某个时间点(oracle数据恢复到一天之前)

由上图知悉,数据库恢复正常。

(0)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@ZLME.COM 举报,一经查实,立刻删除。

相关推荐