Oracle PDB 备份恢复

Oracle 19c 支持多个或单个PDB执行独立的备份操作。

备份命令示例:

--备份 pdb
RMAN> backup pluggable database pdb1 format '/u02/rmanback/pdb1_%U';

--备份 pdb 某个表空间
RMAN> backup tablespace PDB1:SYSTEM,PDB1:USERS format '/u02/rmanback/pdb1_tbs_%U';

1.恢复表空间

1.1.删除某个表空间所有数据文件

rm USERS.301.1093274147
rm USERS.308.1093861729

1.2.进行恢复

RMAN> restore tablespace PDB1:USERS;

Starting restore at 13-JAN-22
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=55 instance=orcl1 device type=DISK

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00014 to +DATA/ORCL/D4E5736F9AA9434AE053E850A8C031D8/DATAFILE/users.301.1093864611
channel ORA_DISK_1: restoring datafile 00040 to +DATA/ORCL/D4E5736F9AA9434AE053E850A8C031D8/DATAFILE/users.308.1093876415
channel ORA_DISK_1: reading from backup piece /u02/rmanback/pdb1_0k0j60e8_1_1
channel ORA_DISK_1: piece handle=/u02/rmanback/pdb1_0k0j60e8_1_1 tag=TAG20220113T103031
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
Finished restore at 13-JAN-22

RMAN> recover tablespace PDB1:USERS;

Starting recover at 13-JAN-22
using channel ORA_DISK_1

starting media recovery
media recovery complete, elapsed time: 00:00:03

Finished recover at 13-JAN-22

SQL> alter pluggable database pdb1 open;

2.恢复数据文件

SQL> alter database datafile 40 offline;

RMAN> restore datafile 40;

Starting restore at 13-JAN-22
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1193 instance=orcl1 device type=DISK

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00040 to +DATA/ORCL/D4E5736F9AA9434AE053E850A8C031D8/DATAFILE/users.308.1093865113
channel ORA_DISK_1: reading from backup piece /u02/rmanback/pdb1_0k0j60e8_1_1
channel ORA_DISK_1: piece handle=/u02/rmanback/pdb1_0k0j60e8_1_1 tag=TAG20220113T103031
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
Finished restore at 13-JAN-22

RMAN> recover datafile 40;

Starting recover at 13-JAN-22
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=39 instance=orcl1 device type=DISK

starting media recovery
media recovery complete, elapsed time: 00:00:02

Finished recover at 13-JAN-22

SQL> alter database datafile 40 online;

3.PDB的不完全恢复

3.1.创建测试表

SQL> create table h2(id number);
SQL> begin
     for i in 0..1000 loop
       insert into h2 values(i);   
commit;
     end loop;
  end;

3.2.记录当前SCN和数据行

SQL> select CURRENT_SCN from v$database;

CURRENT_SCN
-----------
    4598861

SQL> select count(*) from h2;

  COUNT(*)
----------
      1000

3.3.删除表中的数据

SQL> delete h2 where id>800;

SQL> select count(*) from h2;

  COUNT(*)
----------
       800

3.4.进行恢复

--关闭 pdb
SQL> alter pluggable database pdb1 close;

--开始恢复
RMAN> run {
set until SCN = 4598861;
restore pluggable database pdb1;
recover pluggable database pdb1;
}

--打开数据库
SQL> alter pluggable database open resetlogs;

--检查数据行数
SQL> select count(*) from h2;

  COUNT(*)
----------
      1000

4.所有数据文件全部丢失

--删除所有的数据文件
cd +DATA/ORCL/D4E5736F9AA9434AE053E850A8C031D8/DATAFILE/
rm *

--开始恢复
RMAN> restore pluggable database pdb1;

Starting restore at 13-JAN-22
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=62 instance=orcl1 device type=DISK

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00010 to +DATA/ORCL/D4E5736F9AA9434AE053E850A8C031D8/DATAFILE/system.297.1093877359
channel ORA_DISK_1: restoring datafile 00011 to +DATA/ORCL/D4E5736F9AA9434AE053E850A8C031D8/DATAFILE/sysaux.298.1093273527
channel ORA_DISK_1: restoring datafile 00012 to +DATA/ORCL/D4E5736F9AA9434AE053E850A8C031D8/DATAFILE/undotbs1.296.1093273523
channel ORA_DISK_1: restoring datafile 00013 to +DATA/ORCL/D4E5736F9AA9434AE053E850A8C031D8/DATAFILE/undo_2.300.1093274127
channel ORA_DISK_1: restoring datafile 00014 to +DATA/ORCL/D4E5736F9AA9434AE053E850A8C031D8/DATAFILE/users.301.1093877811
channel ORA_DISK_1: restoring datafile 00040 to +DATA/ORCL/D4E5736F9AA9434AE053E850A8C031D8/DATAFILE/users.308.1093877811
channel ORA_DISK_1: reading from backup piece /u02/rmanback/pdb1_0k0j60e8_1_1
channel ORA_DISK_1: piece handle=/u02/rmanback/pdb1_0k0j60e8_1_1 tag=TAG20220113T103031
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:45
Finished restore at 13-JAN-22

RMAN> recover pluggable database pdb1;

Starting recover at 13-JAN-22
using channel ORA_DISK_1

starting media recovery
media recovery complete, elapsed time: 00:00:13

Finished recover at 13-JAN-22

RMAN> alter pluggable database pdb1 open;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值