首页 > 数据库 > Oracle > 【恢复删除的pdb 19c】实验
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/ ,如需转载,请注明出处,否则将追究法律责任。