ITPub博客

首页 > 数据库 > Oracle > 【恢复删除的pdb 19c】实验

【恢复删除的pdb 19c】实验

原创 Oracle 作者:Yichen16 时间:2023-05-03 23:11:17 0 删除 编辑

oracle 19c支持删除pdb库的恢复,本次实验数据库处于本地撤销空间的情况下,同时在删除pdb前已经做好了cdb、pdb的rman整库备份,下面我们来看下整个实验的过程。

数据库版本:Oracle Database 19c Version 19.3.0.0.0  for linux

操作系统:Red Hat Enterprise Linux Server release 7.8 (Maipo)

1、备份数据库cdb、pdb(略)

2、检查数据库状态(数据库已经设置 快速恢复区域)

SQL> show parameter db_recovery;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest                string      /flash_recovery_area

db_recovery_file_dest_size           big integer 50G

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

         2 PDB$SEED                       READ ONLY  NO

         3 PDB01                          READ WRITE NO

         4 PDB02                          READ WRITE NO

3、删除pdb02

SQL> alter pluggable database pdb02 close immediate;

Pluggable database altered.

SQL>  select con_id,dbid,con_uid,guid,name from v$pdbs;

    CON_ID       DBID    CON_UID GUID                             NAME

---------- ---------- ---------- -------------------------------- --------------------------------------------------------------------------------------------------------------------------------

         2 3352637039 3352637039 F7F7C7ED21D03119E053640200C01CB7 PDB$SEED

         3 1242846190 1242846190 F7F7E812847B3A54E053640200C0BEB7 PDB01

         4   93579843   93579843 F95C8E5302D7AEF7E053640200C05BDB PDB02

SQL> drop pluggable database pdb02 including datafiles;


Pluggable database dropped.


SQL> show pdbs;


    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

         2 PDB$SEED                       READ ONLY  NO

         3 PDB01                          READ WRITE NO

检查alert日志:

Completed: alter pluggable database pdb02 close immediate

2023-05-03T22:05:59.656127+08:00

Buffer Cache Full DB Caching mode changing from FULL CACHING DISABLED to FULL CACHING ENABLED 

2023-05-03T22:06:05.297490+08:00

drop pluggable database pdb02 

ORA-65179 signalled during: drop pluggable database pdb02 ...

2023-05-03T22:06:21.088904+08:00

drop pluggable database pdb02

ORA-65179 signalled during: drop pluggable database pdb02...

2023-05-03T22:06:46.612711+08:00

drop pluggable database pdb02 keep datafiles

ORA-65179 signalled during: drop pluggable database pdb02 keep datafiles...

备注:日志显示pdb02及其数据文件已经全部删除,同时检查F95C8E5302D7AEF7E053640200C05BDB文件夹下的文件为0.


5、开始着手恢复删除的pdb02

     a、确认删除时间点  2023-05-03T22:06:05.297490+08:00

     b、编写恢复命令脚本(恢复到删除时间点前就可以了)

RUN

{ 

  SET UNTIL time "to_date('2023-05-03 22:05:59','yyyy-mm-dd hh24:mi:ss')";

  RECOVER pluggable DATABASE pdb02;

}

备注:如果未标明时间转换格式,在恢复过程中会出现格式化报错问题,如下:

Removing automatic instance

shutting down automatic instance 

Oracle instance shut down

Automatic instance removed

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 05/03/2023 22:09:46

RMAN-06136: Oracle error from auxiliary database: ORA-01861: literal does not match format string

      c、恢复过程片段

#recover pdb

recover clone database tablespace  "SYSTEM", "UNDOTBS1", "SYSAUX", "USERS" pluggable database 

 'PDB02'  delete archivelog;

#open in read write mode

sql clone 'alter database open resetlogs';

#unplug dropped pdb into temp file

sql clone "alter pluggable database PDB02 unplug into ''

/u01/app/oracle/product/19.0.0/dbhome_1/dbs/_rm_pdb_pitr_1_szkv.xml''";

#create pdb using temp file of recovered pdb

sql "create pluggable database PDB02 using ''

/u01/app/oracle/product/19.0.0/dbhome_1/dbs/_rm_pdb_pitr_1_szkv.xml'' nocopy tempfile reuse";

alter pluggable database PDB02 open;

}

executing Memory Script

executing command: SET until clause

sql statement: alter database datafile  1 online

sql statement: alter database datafile  4 online

sql statement: alter database datafile  3 online

sql statement: alter database datafile  7 online

sql statement: alter database datafile  14 online

sql statement: alter database datafile  15 online

sql statement: alter database datafile  16 online

sql statement: alter database datafile  17 online

Starting recover at 2023-05-03  22:35:30

using channel ORA_AUX_DISK_1

starting media recovery

archived log for thread 1 with sequence 32 is already on disk as file /flash_recovery_area/ORCL/archivelog/2023_05_03/o1_mf_1_32_l54trqod_.arc

channel ORA_DISK_1: starting archived log restore to default destination

channel ORA_DISK_1: restoring archived log

archived log thread=1 sequence=30

channel ORA_DISK_1: reading from backup piece /home/oracle/backup22/archivelog_431r8mln_1_1_20230503

channel ORA_DISK_1: piece handle=/home/oracle/backup22/archivelog_431r8mln_1_1_20230503 tag=ARC_BAK0

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:00:15

channel ORA_DISK_1: starting archived log restore to default destination

channel ORA_DISK_1: restoring archived log

archived log thread=1 sequence=31

channel ORA_DISK_1: reading from backup piece /home/oracle/backup22/archivelog_441r8mln_1_1_20230503

archived log file name=/flash_recovery_area/ORCL/archivelog/2023_05_03/o1_mf_1_30_l54w9mrk_.arc thread=1 sequence=30

channel clone_default: deleting archived log(s)

archived log file name=/flash_recovery_area/ORCL/archivelog/2023_05_03/o1_mf_1_30_l54w9mrk_.arc RECID=28 STAMP=1135895738

channel ORA_DISK_1: piece handle=/home/oracle/backup22/archivelog_441r8mln_1_1_20230503 tag=ARC_BAK0

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:00:01

archived log file name=/flash_recovery_area/ORCL/archivelog/2023_05_03/o1_mf_1_31_l54wb2sr_.arc thread=1 sequence=31

channel clone_default: deleting archived log(s)

archived log file name=/flash_recovery_area/ORCL/archivelog/2023_05_03/o1_mf_1_31_l54wb2sr_.arc RECID=29 STAMP=1135895746

archived log file name=/flash_recovery_area/ORCL/archivelog/2023_05_03/o1_mf_1_32_l54trqod_.arc thread=1 sequence=32

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

Finished recover at 2023-05-03  22:35:50

sql statement: alter database open resetlogs

sql statement: alter pluggable database PDB02 unplug into ''/u01/app/oracle/product/19.0.0/dbhome_1/dbs/_rm_pdb_pitr_1_szkv.xml''

sql statement: create pluggable database PDB02 using ''/u01/app/oracle/product/19.0.0/dbhome_1/dbs/_rm_pdb_pitr_1_szkv.xml'' nocopy tempfile reuse

Statement processed

Removing automatic instance

shutting down automatic instance 

Oracle instance shut down

Automatic instance removed

auxiliary instance file /u01/app/oracle/product/19.0.0/dbhome_1/dbs/_rm_pdb_pitr_1_szkv.xml deleted

auxiliary instance file /flash_recovery_area/ORCL/datafile/o1_mf_sysaux_l54w6gvq_.dbf deleted

auxiliary instance file /flash_recovery_area/ORCL/controlfile/o1_mf_l54w5zhy_.ctl deleted

Finished recover at 2023-05-03  22:36:15

6、完成恢复pdb02

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

         2 PDB$SEED                       READ ONLY  NO

         3 PDB01                          READ WRITE NO

         4 PDB02                          READ WRITE NO

SQL> alter session set container=pdb02;

Session altered.

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

         4 PDB02                          READ WRITE NO

SQL> create tablespace data datafile size 100m autoextend on ;

Tablespace created.


总结:19c的pdb空间基于时间点的恢复,确保在恢复前有pdb的数据备份,在误删除的情况下是可以找回pdb的。恢复完成后,需要尽快做好数据备份工作。


Yicheng16
23.05.03

-- The End --   

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

请登录后发表评论 登录
全部评论

注册时间:2020-02-22

  • 博文量
    39
  • 访问量
    33300