Oracle-介质恢复

介质恢复是基于物理备份恢复数据,它包括块恢复、数据文件恢复、表空间恢复和整个数据库的恢复。

介质恢复的过程

步骤

介质恢复过程包括还原(RESTORE)和恢复(RECOVER)两个步骤

  • RESTORE:将某个时间点的数据文件的拷贝再拷贝回去,还原到一个不一致的状态或不是最新的状态,还需要recover操作
  • RECOVER:使用日志(归档或是联机在线日志)将不一致的数据库应用到一致性状态

恢复过程分类

数据库的恢复过程又分为完全恢复和不完全恢复。

完全恢复

完全恢复是一种没有数据丢失的恢复方式,它能够恢复到最新联机在线日志中已提交的数据。

不完全恢复

不完全恢复是一种丢失数据的恢复方式,称为基于时间点的恢复。它只能针对整个数据库的恢复。不完全恢复根据备份情况恢复到与指定时间、日志序列号和SCN具有一致性的数据,之后的数据都将丢失。使用RESTLOGS选项打开数据库

场景
  • 丢失归档日志,联机日志的情形
  • 在某一刻误操作数据,想要找回数据
不完全恢复的选项
不完全恢复方式 RMAN选项
恢复到某个时间点 until time
恢复到某个日志序列号 until suquence
恢复到某个SCN号 until SCN

数据库完全恢复

Oracle数据库中有各种各样的块,如空块、表头块、数据块、索引块、数据文件头块、UNDO段块等。如果损坏的是普通表的数据块,那即不会影响启动数据库,也不会影响其他表的正常访问,只是在访问该表的时候会出现问题。如果损坏的是数据文件的块头,那么将导致数据库无法正常启动和停止,进行块恢复不能修复这个问题,只有数据文件的完全恢复才能恢复数据文件块头的损坏或尝试使用BBED修改数据文件块头。

数据文件的完全恢复

命令还原、恢复6号数据文件

rman target /
restore datafile 6;
recover datafile 6;

打开数据库

alter database open;

数据库不完全恢复

基于时间点的不完全恢复

rman target /
run {
shutdown immediate;
startup mount;

SQL "alter session set nls_date_format=‘‘YYYY-MM-DD HH24:MI:SS‘‘";

set until time ‘2021-08-08 18:24:00‘;

restore database;

recover database;

alter database open resetlogs;
}

基于SCN的不完全恢复

run {
shutdown immediate;

startup mount;

set until scn 5166390;

restore database;

recover database;

alter database open resetlogs;
}

基于序列号的不完全恢复

run {
shutdown immediate;

startup mount;

set until sequence 10350 thread 1;

restore database;

recover database;

alter database open resetlogs;
}

不包含10350序号的日志中redo数据

Oracle-介质恢复

上一篇:MYSQL中数据类型介绍


下一篇:[Python]网络爬虫(七):Python中的正则表达式教程