Oracle 12c 新特性 --- Recovery PDBs

概念

There are two approaches to recovering a PDB with RMAN:

· Connect to the root and then use the RESTORE PLUGGABLE DATABASE and RECOVER PLUGGABLE DATABASE commands. This approach enables you to recover multiple PDBs with a single command.

· Connect to the PDB and use the RESTORE DATABASE and RECOVER DATABASE commands. This approach recovers only a single PDB and enables you to use the same commands used for recovering non-CDB databases.

有两种方法可以与RMAN恢复PDB:

连接到根,然后使用恢复可插入数据库和恢复可插入数据库命令。这种方法使您能够使用单个命令恢复多个PDBs。

连接到PDB,使用恢复数据库和恢复数据库命令。此方法仅恢复单个PDB,并使您能够使用用于恢复非cdb数据库的相同命令。

实验

1)创建表空间,用户,表
SQL> conn /as sysdba
Connected.
SQL> alter session set container=pdbcndba;

Session altered.

CREATE TABLESPACE test
  DATAFILE '/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf'
  SIZE 1M AUTOEXTEND ON NEXT 1M;

CREATE USER test IDENTIFIED BY test
  DEFAULT TABLESPACE test
 QUOTA UNLIMITED ON test;
  


SQL> grant dba to test; 


Grant succeeded. 
  


SQL> conn test/test@pdbcndba 


Connected.


SQL> create table leo2 as select * from dba_objects;
 
Table created.

SQL>  select TABLESPACE_NAME from dba_tables where table_name='LEO2';

TABLESPACE_NAME
------------------------------
TEST

SQL> insert into leo2 select * from dba_objects;

72625 rows created.

SQL> commit;

Commit complete.

SQL> select count(*) from leo2;

  COUNT(*)
----------
    145149
2)查看数据文件
[oracle@dg1 pdbcndba]$ pwd
/u01/app/oracle/oradata/cndba/pdbcndba
[oracle@dg1 pdbcndba]$ ls
sysaux01.dbf  system01.dbf  temp01.dbf  test01.dbf  undotbs01.dbf  users01.dbf
3)备份PDB
[oracle@dg1 ~]$ rman target /

Recovery Manager: Release 12.2.0.1.0 - Production on Thu Aug 3 17:45:45 2017

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

connected to target database: CNDBA (DBID=211273844)

RMAN> BACKUP PLUGGABLE DATABASE pdbcndba;

Starting backup at 03-AUG-17
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=63 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00010 name=/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
input datafile file number=00009 name=/u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf
input datafile file number=00011 name=/u01/app/oracle/oradata/cndba/pdbcndba/undotbs01.dbf
input datafile file number=00012 name=/u01/app/oracle/oradata/cndba/pdbcndba/users01.dbf
channel ORA_DISK_1: starting piece 1 at 03-AUG-17
channel ORA_DISK_1: finished piece 1 at 03-AUG-17
piece handle=/u01/app/oracle/product/12.1.0/db_1/dbs/dbs/0isb0d6m_1_1 tag=TAG20170803T174633 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45
Finished backup at 03-AUG-17

Starting Control File and SPFILE Autobackup at 03-AUG-17
piece handle=/u01/app/oracle/product/12.1.0/db_1/dbs/c-211273844-20170803-06 comment=NONE
Finished Control File and SPFILE Autobackup at 03-AUG-17
4)删除数据文件
[oracle@dg1 pdbcndba]$ pwd
/u01/app/oracle/oradata/cndba/pdbcndba
[oracle@dg1 pdbcndba]$ ls
sysaux01.dbf  system01.dbf  temp01.dbf  test01.dbf  undotbs01.dbf  users01.dbf
[oracle@dg1 pdbcndba]$ rm -rf test01.dbf 
[oracle@dg1 pdbcndba]$ ls
sysaux01.dbf  system01.dbf  temp01.dbf  undotbs01.dbf  users01.dbf
5)关闭PDB,再次启动报错
SQL> conn /as sysdba
Connected.
SQL> alter session set container=pdbcndba;

Session altered.

SQL> shutdown immediate
Pluggable Database closed.
SQL> startup
ORA-01157: cannot identify/lock data file 13 - see DBWR trace file
ORA-01110: data file 13: '/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf'
6)恢复PDB
[oracle@dg1 ~]$ rman target /

Recovery Manager: Release 12.2.0.1.0 - Production on Thu Aug 3 19:18:16 2017

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

connected to target database: CNDBA (DBID=211273844)

RMAN> run{
  RESTORE PLUGGABLE DATABASE pdbcndba;
  RECOVER PLUGGABLE DATABASE pdbcndba;
  ALTER PLUGGABLE DATABASE pdbcndba OPEN;
}2> 3> 4> 5> 

Starting restore at 03-AUG-17
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=69 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 00009 to /u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf
channel ORA_DISK_1: restoring datafile 00010 to /u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00011 to /u01/app/oracle/oradata/cndba/pdbcndba/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00012 to /u01/app/oracle/oradata/cndba/pdbcndba/users01.dbf
channel ORA_DISK_1: restoring datafile 00013 to /u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/12.1.0/db_1/dbs/0isb0d6m_1_1
channel ORA_DISK_1: piece handle=/u01/app/oracle/product/12.1.0/db_1/dbs/0isb0d6m_1_1 tag=TAG20170803T183917
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:55
Finished restore at 03-AUG-17

Starting recover at 03-AUG-17
using channel ORA_DISK_1

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

Finished recover at 03-AUG-17

Statement processed
7)验证RMAN恢复结果,数据文件,表已恢复
[oracle@dg1 pdbcndba]$ ls
sysaux01.dbf  system01.dbf  temp01.dbf  test01.dbf  undotbs01.dbf  users01.dbf

[oracle@dg1 ~]$ sqlplus test/test@pdbcndba

SQL*Plus: Release 12.2.0.1.0 Production on Thu Aug 3 19:20:17 2017

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Last Successful login time: Thu Aug 03 2017 18:55:40 +08:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> select count(*) from leo2;

  COUNT(*)
----------
    145149

参考链接:
http://docs.oracle.com/database/121/BRADV/rcmcomre.htm#BRADV749
https://oracle-base.com/articles/12c/multitenant-rman-backup-recovery-cdb-and-pdb-12cr1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值