ITPub博客

首页 > 数据库 > Oracle > oracle 12c中CDB和PDB的备份还原实验

oracle 12c中CDB和PDB的备份还原实验

原创 Oracle 作者:水逸冰 时间:2019-07-19 14:50:25 0 删除 编辑

本文档分为两部分:
1.单个pdb备份还原
2.只cdb备份还原


1.rman只备份pdb
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 MPDB01                         READ WRITE NO
         5 MPDB02                         READ WRITE NO
CDB和PDB中建立如下测试表:
SQL> create table t_for_back (a int);

Table created.

SQL> insert into t_for_back select 1 from dual;

1 row created.

SQL> commit;

Commit complete.


备份单个pdb
RMAN> BACKUP pluggable database mpdb02 FORMAT '/backup/oraback/bk_%s_%p_%t';

Starting backup at 19-JUL-19
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00016 name=/u02/app/oracle/oradata/MCDB/8E032EED10D56F47E05302CEA8C0D24C/datafile/o1_mf_undotbs1_gm2p199r_.dbf
input datafile file number=00014 name=/u02/app/oracle/oradata/MCDB/8E032EED10D56F47E05302CEA8C0D24C/datafile/o1_mf_system_gm2p199h_.dbf
input datafile file number=00015 name=/u02/app/oracle/oradata/MCDB/8E032EED10D56F47E05302CEA8C0D24C/datafile/o1_mf_sysaux_gm2p199q_.dbf
input datafile file number=00017 name=/u02/app/oracle/oradata/MCDB/8E032EED10D56F47E05302CEA8C0D24C/datafile/o1_mf_users_gm2p199s_.dbf
channel ORA_DISK_1: starting piece 1 at 19-JUL-19
channel ORA_DISK_1: finished piece 1 at 19-JUL-19
piece handle=/backup/oraback/bk_100_1_1014040596 tag=TAG20190719T135636 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
Finished backup at 19-JUL-19

Starting Control File and SPFILE Autobackup at 19-JUL-19
piece handle=/u02/app/oracle/products/12.2.0.1/db_1/dbs/c-3951895183-20190719-01 comment=NONE
Finished Control File and SPFILE Autobackup at 19-JUL-19

检查备份情况:
RMAN>  list backup of pluggable database mpdb02;


List of Backup Sets
===================


BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
94      Full    1.17G      DISK        00:00:08     19-JUL-19      
        BP Key: 94   Status: AVAILABLE  Compressed: NO  Tag: TAG20190719T135636
        Piece Name: /backup/oraback/bk_100_1_1014040596
  List of Datafiles in backup set 94
  Container ID: 5, PDB Name: MPDB02
  File LV Type Ckp SCN    Ckp Time  Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- --------- ----------- ------ ----
  14      Full 2902650    19-JUL-19              NO    /u02/app/oracle/oradata/MCDB/8E032EED10D56F47E05302CEA8C0D24C/datafile/o1_mf_system_gm2p199h_.dbf
  15      Full 2902650    19-JUL-19              NO    /u02/app/oracle/oradata/MCDB/8E032EED10D56F47E05302CEA8C0D24C/datafile/o1_mf_sysaux_gm2p199q_.dbf
  16      Full 2902650    19-JUL-19              NO    /u02/app/oracle/oradata/MCDB/8E032EED10D56F47E05302CEA8C0D24C/datafile/o1_mf_undotbs1_gm2p199r_.dbf
  17      Full 2902650    19-JUL-19              NO    /u02/app/oracle/oradata/MCDB/8E032EED10D56F47E05302CEA8C0D24C/datafile/o1_mf_users_gm2p199s_.dbf
 
模拟数据文件丢失  
[oracle@oradb-2062 datafile]$ mv o1_mf_system_gm2p199h_.dbf o1_mf_system_gm2p199h_.dbf.bak


cdb和mpdb01中:
SQL> create table t19071901 (a int);

Table created.

SQL> insert into t19071901 select 1 from dual;

1 row created.

SQL> commit;

Commit complete.

mpdb02中
SQL> create table t19071901 (a int) tablespace users;

Table created.

SQL> insert into t19071901 select 1 from dual;

1 row created.

SQL> commit;

Commit complete.

SQL> alter system checkpoint;

System altered.

SQL> sho con_name
ERROR:
ORA-03135: connection lost contact
Process ID: 94384
Session ID: 33 Serial number: 19671


SP2-1545: This feature requires Database availability.

现在RMAN恢复:
RMAN> restore pluggable database mpdb02;

Starting restore at 19-JUL-19
using channel ORA_DISK_1

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 /u02/app/oracle/oradata/MCDB/8E032EED10D56F47E05302CEA8C0D24C/datafile/o1_mf_system_gm2p199h_.dbf
channel ORA_DISK_1: restoring datafile 00015 to /u02/app/oracle/oradata/MCDB/8E032EED10D56F47E05302CEA8C0D24C/datafile/o1_mf_sysaux_gm2p199q_.dbf
channel ORA_DISK_1: restoring datafile 00016 to /u02/app/oracle/oradata/MCDB/8E032EED10D56F47E05302CEA8C0D24C/datafile/o1_mf_undotbs1_gm2p199r_.dbf
channel ORA_DISK_1: restoring datafile 00017 to /u02/app/oracle/oradata/MCDB/8E032EED10D56F47E05302CEA8C0D24C/datafile/o1_mf_users_gm2p199s_.dbf
channel ORA_DISK_1: reading from backup piece /backup/oraback/bk_100_1_1014040596
channel ORA_DISK_1: piece handle=/backup/oraback/bk_100_1_1014040596 tag=TAG20190719T135636
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:16
Finished restore at 19-JUL-19

RMAN> recover pluggable database mpdb02;

Starting recover at 19-JUL-19
using channel ORA_DISK_1

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

Finished recover at 19-JUL-19

数据检查

SQL> alter session set container=mpdb02;

Session altered.

SQL> select * from t_for_back
  2  ;

         A
----------
         1

SQL> select * from t19071901;

         A
----------
         1

###########################################################################

下面用rman只备份cdb
RMAN> backup database root FORMAT '/backup/oraback/bk_%s_%p_%t';

Starting backup at 19-JUL-19
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u02/app/oracle/oradata/MCDB/datafile/o1_mf_system_gkmjqb8y_.dbf
input datafile file number=00003 name=/u02/app/oracle/oradata/MCDB/datafile/o1_mf_sysaux_gkmjt28w_.dbf
input datafile file number=00004 name=/u02/app/oracle/oradata/MCDB/datafile/o1_mf_undotbs1_gkmjvjz7_.dbf
input datafile file number=00007 name=/u02/app/oracle/oradata/MCDB/datafile/o1_mf_users_gkmjvl3k_.dbf
channel ORA_DISK_1: starting piece 1 at 19-JUL-19
channel ORA_DISK_1: finished piece 1 at 19-JUL-19
piece handle=/backup/oraback/bk_102_1_1014042002 tag=TAG20190719T142002 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:16
Finished backup at 19-JUL-19

Starting Control File and SPFILE Autobackup at 19-JUL-19
piece handle=/u02/app/oracle/products/12.2.0.1/db_1/dbs/c-3951895183-20190719-02 comment=NONE
Finished Control File and SPFILE Autobackup at 19-JUL-19


SQL> shutdown abort
ORACLE instance shut down.
SQL>
SQL>
SQL>
SQL> startup
ORACLE instance started.

Total System Global Area 1191182336 bytes
Fixed Size                  8792104 bytes
Variable Size             436209624 bytes
Database Buffers          738197504 bytes
Redo Buffers                7983104 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1:
'/u02/app/oracle/oradata/MCDB/datafile/o1_mf_system_gkmjqb8y_.dbf'


SQL> select status from v$instance;

STATUS
------------------------------------
MOUNTED

RMAN> restore database root;

Starting restore at 19-JUL-19
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=42 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 00001 to /u02/app/oracle/oradata/MCDB/datafile/o1_mf_system_gkmjqb8y_.dbf
channel ORA_DISK_1: restoring datafile 00003 to /u02/app/oracle/oradata/MCDB/datafile/o1_mf_sysaux_gkmjt28w_.dbf
channel ORA_DISK_1: restoring datafile 00004 to /u02/app/oracle/oradata/MCDB/datafile/o1_mf_undotbs1_gkmjvjz7_.dbf
channel ORA_DISK_1: restoring datafile 00007 to /u02/app/oracle/oradata/MCDB/datafile/o1_mf_users_gkmjvl3k_.dbf
channel ORA_DISK_1: reading from backup piece /backup/oraback/bk_102_1_1014042002
channel ORA_DISK_1: piece handle=/backup/oraback/bk_102_1_1014042002 tag=TAG20190719T142002
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:15
Finished restore at 19-JUL-19

RMAN> recover database root;

Starting recover at 19-JUL-19
using channel ORA_DISK_1

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

Finished recover at 19-JUL-19

RMAN> alter database open;

Statement processed

BACKUP DATABASE;
会备份所有的CDB和PDB

BACKUP DATABASE root;
只备份CDB

BACKUP DATABASE pdb01,pdb02;
备份指定的PDB



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31480688/viewspace-2651129/,如需转载,请注明出处,否则将追究法律责任。

下一篇: mysql锁之死锁
请登录后发表评论 登录
全部评论
精通oracle和linux,热衷于研究oracle,擅长shell和Python编程,喜欢自动化运维。

注册时间:2017-08-05

  • 博文量
    91
  • 访问量
    78122