12C RMAN备份恢复

12C RMAN备份恢复

12C 重做日志文件处于共享状态,所以只能在CDB级别设置ARCHIVELOG模式,不能在PDB级别设置。

RMAN可以比较好的操作cdb和pdb备份,同时pdb的备份和恢复可以通过cdb来完成。

=备份=
backup备份的内容取决于连接到rman的方式,可以连接到cdbroot,也可以连接到相关的pdb里进行备份。如果连接到cdb,那么该命令对所有的pdb和cdbroot,也可以连接到相关的pdb里进行备份。 如果连接到cdb,那么该命令对所有的pdb和cdbroot,也可以连接到相关的pdb里进行备份。如果连接到cdb,那么该命令对所有的pdbcdbroot进行备份。
如果连接到pdb,那么该命令只对连接到的pdb进行备份。

只对部分的pdb进行备份:

Rman >  backup pluggable database PDBTEST1;

只备份pdb的部分表空间:

Rman > backup tablespace PDBTEST1:USERS;
Rman > backup tablespace system, PDBTEST1:sysaux, PDBTEST2:users;

如果在备份命令后不加format参数,那么备份的文件默认放在闪回恢复区中

Rman > backup  pluggable database PDBTEST2 format '/home/oracle/back/%d_%U.full';

=恢复=

临时文件的恢复

PDB可以在缺少临时文件的情况下打开。如果在打开PDB时有任何临时文件不存在,系统会自动重新创建这些临时文件。

还会在CDB启动时自动重新创建这些临时文件。也可以在连接到PDB时执行手动重新创建:

SQL> ALTER TABLESPACE temp ADD  TEMPFILE '/u01/app/oracle/oradata/CDB1/TEST1/temp1_02.dbf' SIZE 50M;
SQL> ALTER TABLESPACE temp DROP TEMPFILE '/u01/app/oracle/oradata/CDB1/TEST2/temp1_01.dbf';

控制文件的恢复
如果控制文件缺少或损坏,由于控制文件属于CDB,因此实例很快就会崩溃,并需要进行整个CDB介质恢复。
•首先启动CDB实例。
•然后从备份中还原控制文件。
•装载CDB。
•然后在重置日志中恢复和打开CDB。

SQL> STARTUP nomount
SQL> restore controlfile from autobackup ;
SQL> alter database mount;
SQL> ALTER DATABASE OPEN RESETLOGS;

重做日志文件丢失
Redo日志文件分为在线Redo日志文件和归档Redo日志文件。
rman只会备份归档Redo日志文件,不会备份在线Redo日志文件。
如果在线Redo日志损坏,那么需要分情况进行恢复:
1、inactive redo异常ORA-00316 ORA-00327

SQL > ALTER DATABASE CLEAR LOGFILE GROUP 2;

2、正常关闭数据库ACTIVE、current redo异常ORA-00316 ORA-01623

ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 1;
或:
--ALTER DATABASE CLEAR LOGFILE GROUP 1;
recover database until cancel; #输入具体的在线Redo文件
alter database open resetlogs;

3、数据库异常关闭current/active redo异常ORA-00316 ORA-01624 ORA-01194

sql>alter system set "_allow_resetlogs_corruption"=true scope=spfile;
sql>recover database until cancel; --cancel
sql>alter database open resetlogs;
sql>startup force mount
sql>alter database open resetlogs;
sql>alter system set "_allow_resetlogs_corruption"=false scope=spfile;
sql>alter system reset "_allow_resetlogs_corruption" scope=spfile sid='*';
sql>shutdown immediate
sql>startup
## 使用隐藏参数,跳过数据库一致性检查
## 最好通过expdp进行逻辑的导出再导入
## 当然,rman备份也是不可少的

4、 恢复全库

startup nomount
restore controlfile from '';
alter database mount;
restore database;
recover database;
alter database open resetlogs;

5、不完全恢复 – 数据库基于时间点恢复(Point-in-Time Recovery,PITR)
不完全恢复是一种与完全恢复相反的恢复方式,是一种丢失数据的恢复方式,也称为数据库基于时间点恢复
(Point-in-Time Recovery,PITR),是将整个数据库恢复到之前的某个时间点、日志序列号或者SCN号。
PDB原型是CDB的子原型。例如,如果CDB为原型5,PDB为原型3,则PDB的完全指定原型编号为(5,3)。
PDB的初始原型为0。要查看PDB的原型,请查询V$PDB_INCARNATION视图。

RMAN> LIST INCARNATION;
--CDB执行PITR--
startup force mount
RUN {
SET UNTIL SCN = 11234129 ;
RESTORE  DATABASE ;
RECOVER  DATABASE ;
alter database open resetlogs;
}
--CDB执行TSPITR(表空间不完全恢复)--
rman target /
RMAN> RECOVER TABLESPACE TEST UNTIL SCN 11234129 AUXILIARY DESTINATION '/u01/app/oracle/oradata';
RMAN> ALTER TABLESPACE TEST ONLINE;
--PDB执行PITR--
RMAN> ALTER PLUGGABLE DATABASE PDBTEST2 CLOSE;
RMAN> RUN {
SET UNTIL SCN = 1851648 ;
RESTORE pluggable DATABASE PDBTEST2 ;
RECOVER pluggable DATABASE PDBTEST2 AUXILIARY DESTINATION='/u01/app/oracle/oradata';
ALTER PLUGGABLE DATABASE PDBTEST2 OPEN RESETLOGS;
}
--PDB表空间PITR--TSPITR--
rman target /
RMAN> RECOVER TABLESPACE PDBTEST2:test UNTIL SCN 11234111 AUXILIARY DESTINATION '/u01/app/oracle/oradata';
RMAN> ALTER TABLESPACE PDBTEST2:test ONLINE;

注意:
1、执行TSPITR的表空间不能是数据库的默认永久表空间,否则会报错。
2、做该实验别用12.2.0.1,因为有bug会报错。ORA-65254: invalid path specified for the directory,需要打打patch 25074866。
Datapatch Fails With “ORA-65254: invalid path specified for the directory” on PDB Where PATH_PREFIX is set (文档 ID 2296226.1)

全备的脚本 :

run{
  allocate channel c1 type disk;
  allocate channel c2 type disk;
  allocate channel c3 type disk;
  backup database format '';  
  sql 'alter system archive log current';  
  backup archivelog all format '';  
  backup current controlfile  format ''; 
  release channel c1;
  release channel c2;
  release channel c3;  
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值