{"id":4891,"date":"2021-05-28T08:28:31","date_gmt":"2021-05-28T08:28:31","guid":{"rendered":"https:\/\/swiv.com.br\/performing-pitr-in-a-pugglabe-database-with-shared-undo\/"},"modified":"2026-05-27T20:02:32","modified_gmt":"2026-05-27T19:02:32","slug":"performing-pitr-in-a-pugglabe-database-with-shared-undo","status":"publish","type":"post","link":"https:\/\/swiv.com.br\/index.php\/2021\/05\/28\/performing-pitr-in-a-pugglabe-database-with-shared-undo\/","title":{"rendered":"Performing PITR in a Pugglabe Database with Shared UNDO"},"content":{"rendered":"\n<p>Realizar um Point-in-Time Recover de PDB que utilize uma \u00e1rea de UNDO compartilhada exige um procedimento um pouco diferente se comparado com Local UNDO. Na 12.1 nossa \u00fanica op\u00e7\u00e3o \u00e9 o Shared UNDO, mas a partir da 12.2 conseguimos definir isso no momento da cria\u00e7\u00e3o do banco de dados. Para este artigo, estou criando um banco novo em 19C como Shared UNDO, conforme abaixo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/swiv.com.br\/wp-content\/uploads\/2022\/07\/image-119.png\" alt=\"\" class=\"wp-image-7694\"\/><\/figure>\n\n\n\n<p>Com o ambiente dispon\u00edvel, conseguimos validar a condi\u00e7\u00e3o da UNDO com a consulta abaixo:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \\&quot;wp-block-syntaxhighlighter-code\\&quot;\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&#x5B;oracle@oel7 PITR]$ sqlplus \/ as sysdba\n \nSQL*Plus: Release 19.0.0.0.0 - Production on Thu May 27 20:48:17 2021\nVersion 19.3.0.0.0\n \nCopyright (c) 1982, 2019, Oracle.  All rights reserved.\n \n \nConnected to:\nOracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production\nVersion 19.3.0.0.0\n \nSQL&gt; ALTER SESSION SET CONTAINER=HIPOFISE1;\n \nSession altered.\n \nSQL&gt; col PROPERTY_NAME format a25\nSQL&gt; col PROPERTY_VALUE format a10\nSQL&gt; SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME = &#039;LOCAL_UNDO_ENABLED&#039;;\n \nPROPERTY_NAME             PROPERTY_V\n------------------------- ----------\nLOCAL_UNDO_ENABLED        FALSE\n<\/pre><\/div>\n\n\n<p>Realizando um backup do CDB e seus PDBs:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \\&quot;wp-block-syntaxhighlighter-code\\&quot;\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&#x5B;oracle@oel7 PITR]$ rman target \/\n \nRecovery Manager: Release 19.0.0.0.0 - Production on Thu May 27 20:49:29 2021\nVersion 19.3.0.0.0\n \nCopyright (c) 1982, 2019, Oracle and\/or its affiliates.  All rights reserved.\n \nconnected to target database: ASWAN (DBID=1341595825)\n \nRMAN&gt; BACKUP DATABASE PLUS ARCHIVELOG;\n \n \nStarting backup at 27-MAY-21\ncurrent log archived\nusing target database control file instead of recovery catalog\nallocated channel: ORA_DISK_1\nchannel ORA_DISK_1: SID=80 device type=DISK\nchannel ORA_DISK_1: starting archived log backup set\nchannel ORA_DISK_1: specifying archived log(s) in backup set\ninput archived log thread=1 sequence=6 RECID=1 STAMP=1073681379\nchannel ORA_DISK_1: starting piece 1 at 27-MAY-21\nchannel ORA_DISK_1: finished piece 1 at 27-MAY-21\npiece handle=\/oracle\/fra\/ASWAN\/backupset\/2021_05_27\/o1_mf_annnn_TAG20210527T204940_jc0d0njh_.bkp tag=TAG20210527T204940 comment=NONE\nchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:03\nFinished backup at 27-MAY-21\n \nStarting backup at 27-MAY-21\nusing channel ORA_DISK_1\nchannel ORA_DISK_1: starting full datafile backup set\nchannel ORA_DISK_1: specifying datafile(s) in backup set\ninput datafile file number=00001 name=\/oracle\/dados\/ASWAN\/datafile\/o1_mf_system_jc0blms9_.dbf\ninput datafile file number=00003 name=\/oracle\/dados\/ASWAN\/datafile\/o1_mf_sysaux_jc0bn0x8_.dbf\ninput datafile file number=00004 name=\/oracle\/dados\/ASWAN\/datafile\/o1_mf_undotbs1_jc0bnt0l_.dbf\ninput datafile file number=00007 name=\/oracle\/dados\/ASWAN\/datafile\/o1_mf_users_jc0bnv2t_.dbf\nchannel ORA_DISK_1: starting piece 1 at 27-MAY-21\nchannel ORA_DISK_1: finished piece 1 at 27-MAY-21\npiece handle=\/oracle\/fra\/ASWAN\/backupset\/2021_05_27\/o1_mf_nnndf_TAG20210527T204943_jc0d0qt6_.bkp tag=TAG20210527T204943 comment=NONE\nchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:55\nchannel ORA_DISK_1: starting full datafile backup set\nchannel ORA_DISK_1: specifying datafile(s) in backup set\ninput datafile file number=00010 name=\/oracle\/dados\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/datafile\/o1_mf_sysaux_jc0congs_.dbf\ninput datafile file number=00009 name=\/oracle\/dados\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/datafile\/o1_mf_system_jc0congn_.dbf\ninput datafile file number=00011 name=\/oracle\/dados\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/datafile\/o1_mf_users_jc0cp8xo_.dbf\nchannel ORA_DISK_1: starting piece 1 at 27-MAY-21\nchannel ORA_DISK_1: finished piece 1 at 27-MAY-21\npiece handle=\/oracle\/fra\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/backupset\/2021_05_27\/o1_mf_nnndf_TAG20210527T204943_jc0d2h2l_.bkp tag=TAG20210527T204943 comment=NONE\nchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:25\nchannel ORA_DISK_1: starting full datafile backup set\nchannel ORA_DISK_1: specifying datafile(s) in backup set\ninput datafile file number=00006 name=\/oracle\/dados\/ASWAN\/datafile\/o1_mf_sysaux_jc0bys95_.dbf\ninput datafile file number=00005 name=\/oracle\/dados\/ASWAN\/datafile\/o1_mf_system_jc0bys8k_.dbf\nchannel ORA_DISK_1: starting piece 1 at 27-MAY-21\nchannel ORA_DISK_1: finished piece 1 at 27-MAY-21\npiece handle=\/oracle\/fra\/ASWAN\/C3592AD9E96374EFE0536C00A8C0C507\/backupset\/2021_05_27\/o1_mf_nnndf_TAG20210527T204943_jc0d385v_.bkp tag=TAG20210527T204943 comment=NONE\nchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:25\nFinished backup at 27-MAY-21\n \nStarting backup at 27-MAY-21\ncurrent log archived\nusing channel ORA_DISK_1\nchannel ORA_DISK_1: starting archived log backup set\nchannel ORA_DISK_1: specifying archived log(s) in backup set\ninput archived log thread=1 sequence=7 RECID=2 STAMP=1073681489\nchannel ORA_DISK_1: starting piece 1 at 27-MAY-21\nchannel ORA_DISK_1: finished piece 1 at 27-MAY-21\npiece handle=\/oracle\/fra\/ASWAN\/backupset\/2021_05_27\/o1_mf_annnn_TAG20210527T205129_jc0d41rq_.bkp tag=TAG20210527T205129 comment=NONE\nchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01\nFinished backup at 27-MAY-21\n \nStarting Control File and SPFILE Autobackup at 27-MAY-21\npiece handle=\/oracle\/fra\/ASWAN\/autobackup\/2021_05_27\/o1_mf_s_1073681490_jc0d43r6_.bkp comment=NONE\nFinished Control File and SPFILE Autobackup at 27-MAY-21\n<\/pre><\/div>\n\n\n<p>Observando a tabela que usaremos como refer\u00eancia para nosso teste:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \\&quot;wp-block-syntaxhighlighter-code\\&quot;\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSQL&gt; ALTER SESSION SET CONTAINER=HIPOFISE1;\n \nSession altered.\n \nSQL&gt; SELECT * FROM BSS1.TESTE1;\n \nDESCRICAO\n--------------------\nPITR PDB 1\nPITR PDB 2\nPITR PDB 3\n<\/pre><\/div>\n\n\n<p>Gerando alguns archives:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \\&quot;wp-block-syntaxhighlighter-code\\&quot;\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSQL&gt; conn \/ as sysdba\nConnected.\nSQL&gt; ALTER SYSTEM SWITCH LOGFILE;\n \nSystem altered.\n \nSQL&gt; \/\n \nSystem altered.\n<\/pre><\/div>\n\n\n<p>Verificando o atual SCN do banco:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \\&quot;wp-block-syntaxhighlighter-code\\&quot;\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSQL&gt; ALTER SESSION SET CONTAINER=HIPOFISE1;\n \nSession altered.\n \nSQL&gt; SELECT CURRENT_SCN FROM V$DATABASE;\n \nCURRENT_SCN\n-----------\n    2139480\n<\/pre><\/div>\n\n\n<p>Disparando um backup dos archivelogs:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \\&quot;wp-block-syntaxhighlighter-code\\&quot;\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nRMAN&gt; BACKUP ARCHIVELOG ALL;\n \nStarting backup at 27-MAY-21\ncurrent log archived\nusing target database control file instead of recovery catalog\nallocated channel: ORA_DISK_1\nchannel ORA_DISK_1: SID=68 device type=DISK\nchannel ORA_DISK_1: starting archived log backup set\nchannel ORA_DISK_1: specifying archived log(s) in backup set\ninput archived log thread=1 sequence=6 RECID=1 STAMP=1073681379\ninput archived log thread=1 sequence=7 RECID=2 STAMP=1073681489\ninput archived log thread=1 sequence=8 RECID=3 STAMP=1073681651\ninput archived log thread=1 sequence=9 RECID=4 STAMP=1073681652\ninput archived log thread=1 sequence=10 RECID=5 STAMP=1073681712\nchannel ORA_DISK_1: starting piece 1 at 27-MAY-21\nchannel ORA_DISK_1: finished piece 1 at 27-MAY-21\npiece handle=\/oracle\/fra\/ASWAN\/backupset\/2021_05_27\/o1_mf_annnn_TAG20210527T205512_jc0dc0r3_.bkp tag=TAG20210527T205512 comment=NONE\nchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:07\nFinished backup at 27-MAY-21\n \nStarting Control File and SPFILE Autobackup at 27-MAY-21\npiece handle=\/oracle\/fra\/ASWAN\/autobackup\/2021_05_27\/o1_mf_s_1073681719_jc0dc7yg_.bkp comment=NONE\nFinished Control File and SPFILE Autobackup at 27-MAY-21\n<\/pre><\/div>\n\n\n<p>Fazendo o delete da tabela para simularmos a situa\u00e7\u00e3o que justifique o PITR (claro que poder\u00edamos usar o Flashback tamb\u00e9m, mas n\u00e3o \u00e9 este o cerne deste artigo):<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \\&quot;wp-block-syntaxhighlighter-code\\&quot;\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSQL&gt; ALTER SESSION SET CONTAINER=HIPOFISE1;\n \nSession altered.\n \nSQL&gt; DELETE BSS1.TESTE1;\n \n3 rows deleted.\n \nSQL&gt; COMMIT;\n \nCommit complete.\n \nSQL&gt;    SELECT COUNT(*) FROM BSS1.TESTE1;\n \n  COUNT(*)\n----------\n         0\n<\/pre><\/div>\n\n\n<p>Vamos baixar o nosso pluggable database:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \\&quot;wp-block-syntaxhighlighter-code\\&quot;\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSQL&gt; conn \/ as sysdba\nConnected.\nSQL&gt; ALTER PLUGGABLE DATABASE HIPOFISE1 CLOSE IMMEDIATE;\n \nPluggable database altered.\n<\/pre><\/div>\n\n\n<p>Agora podemos disparar os comandos de restore e recover apenas do PDB, respeitando o n\u00famero de SCN informado, conforme exemplo abaixo. Devido a Shared UNDO, uma inst\u00e2ncia auxiliar ser\u00e1 criada pelo RMAN, ent\u00e3o passamos um diret\u00f3rio de trabalho para que ela possa utilizar durante o processo:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \\&quot;wp-block-syntaxhighlighter-code\\&quot;\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nrun {\n    SET UNTIL SCN 2139480;\n    RESTORE PLUGGABLE DATABASE HIPOFISE1;\n    RECOVER PLUGGABLE DATABASE HIPOFISE1 AUXILIARY DESTINATION=&#039;\/oracle\/PITR&#039;;\n}\n<\/pre><\/div>\n\n\n<p>Log do processo:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \\&quot;wp-block-syntaxhighlighter-code\\&quot;\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nRMAN&gt; run {\n        SET UNTIL SCN 2139480;\n        RESTORE PLUGGABLE DATABASE HIPOFISE1;\n        RECOVER PLUGGABLE DATABASE HIPOFISE1 AUXILIARY DESTINATION=&#039;\/oracle\/PITR&#039;;\n}2&gt; 3&gt; 4&gt; 5&gt;\n \nexecuting command: SET until clause\n \nStarting restore at 27-MAY-21\nusing target database control file instead of recovery catalog\nallocated channel: ORA_DISK_1\nchannel ORA_DISK_1: SID=68 device type=DISK\n \nchannel ORA_DISK_1: starting datafile backup set restore\nchannel ORA_DISK_1: specifying datafile(s) to restore from backup set\nchannel ORA_DISK_1: restoring datafile 00009 to \/oracle\/dados\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/datafile\/o1_mf_system_jc0congn_.dbf\nchannel ORA_DISK_1: restoring datafile 00010 to \/oracle\/dados\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/datafile\/o1_mf_sysaux_jc0congs_.dbf\nchannel ORA_DISK_1: restoring datafile 00011 to \/oracle\/dados\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/datafile\/o1_mf_users_jc0cp8xo_.dbf\nchannel ORA_DISK_1: reading from backup piece \/oracle\/fra\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/backupset\/2021_05_27\/o1_mf_nnndf_TAG20210527T204943_jc0d2h2l_.bkp\nchannel ORA_DISK_1: piece handle=\/oracle\/fra\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/backupset\/2021_05_27\/o1_mf_nnndf_TAG20210527T204943_jc0d2h2l_.bkp tag=TAG20210527T204943\nchannel ORA_DISK_1: restored backup piece 1\nchannel ORA_DISK_1: restore complete, elapsed time: 00:00:15\nFinished restore at 27-MAY-21\n \nStarting recover at 27-MAY-21\nusing channel ORA_DISK_1\nRMAN-05026: warning: presuming following set of tablespaces applies to specified point-in-time\n \nList of tablespaces expected to have UNDO segments\nTablespace SYSTEM\nTablespace UNDOTBS1\n \nCreating automatic instance, with SID=&#039;iwlo&#039;\n \ninitialization parameters used for automatic instance:\ndb_name=ASWAN\ndb_unique_name=iwlo_pitr_HIPOFISE1_ASWAN\ncompatible=19.0.0\ndb_block_size=8192\ndb_files=200\ndiagnostic_dest=\/oracle\/19.3.0\/base\n_system_trig_enabled=FALSE\ndb_domain=localdomain\nsga_target=2272M\nprocesses=200\ndb_create_file_dest=\/oracle\/PITR\nlog_archive_dest_1=&#039;location=\/oracle\/PITR&#039;\nenable_pluggable_database=true\n_clone_one_pdb_recovery=true\n#No auxiliary parameter file used\n \n \nstarting up automatic instance ASWAN\n \nOracle instance started\n \nTotal System Global Area    2382363840 bytes\n \nFixed Size                     9137344 bytes\nVariable Size                520093696 bytes\nDatabase Buffers            1845493760 bytes\nRedo Buffers                   7639040 bytes\nAutomatic instance created\n \ncontents of Memory Script:\n{\n# set requested point in time\nset until  scn 2139480;\n# restore the controlfile\nrestore clone controlfile;\n \n# mount the controlfile\nsql clone &#039;alter database mount clone database&#039;;\n}\nexecuting Memory Script\n \nexecuting command: SET until clause\n \nStarting restore at 27-MAY-21\nallocated channel: ORA_AUX_DISK_1\nchannel ORA_AUX_DISK_1: SID=34 device type=DISK\n \nchannel ORA_AUX_DISK_1: starting datafile backup set restore\nchannel ORA_AUX_DISK_1: restoring control file\nchannel ORA_AUX_DISK_1: reading from backup piece \/oracle\/fra\/ASWAN\/autobackup\/2021_05_27\/o1_mf_s_1073681490_jc0d43r6_.bkp\nchannel ORA_AUX_DISK_1: piece handle=\/oracle\/fra\/ASWAN\/autobackup\/2021_05_27\/o1_mf_s_1073681490_jc0d43r6_.bkp tag=TAG20210527T205130\nchannel ORA_AUX_DISK_1: restored backup piece 1\nchannel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01\noutput file name=\/oracle\/PITR\/ASWAN\/controlfile\/o1_mf_jc0dr6bo_.ctl\nFinished restore at 27-MAY-21\n \nsql statement: alter database mount clone database\n \ncontents of Memory Script:\n{\n# set requested point in time\nset until  scn 2139480;\n# switch to valid datafilecopies\nswitch clone datafile  9 to datafilecopy\n &quot;\/oracle\/dados\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/datafile\/o1_mf_system_jc0congn_.dbf&quot;;\nswitch clone datafile  10 to datafilecopy\n &quot;\/oracle\/dados\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/datafile\/o1_mf_sysaux_jc0congs_.dbf&quot;;\nswitch clone datafile  11 to datafilecopy\n &quot;\/oracle\/dados\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/datafile\/o1_mf_users_jc0cp8xo_.dbf&quot;;\n# set destinations for recovery set and auxiliary set datafiles\nset newname for clone datafile  1 to new;\nset newname for clone datafile  4 to new;\nset newname for clone datafile  3 to new;\nset newname for clone datafile  7 to new;\n# restore the tablespaces in the recovery set and the auxiliary set\nrestore clone datafile  1, 4, 3, 7;\n \nswitch clone datafile all;\n}\nexecuting Memory Script\n \nexecuting command: SET until clause\n \ndatafile 9 switched to datafile copy\ninput datafile copy RECID=4 STAMP=1073682141 file name=\/oracle\/dados\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/datafile\/o1_mf_system_jc0congn_.dbf\n \ndatafile 10 switched to datafile copy\ninput datafile copy RECID=5 STAMP=1073682141 file name=\/oracle\/dados\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/datafile\/o1_mf_sysaux_jc0congs_.dbf\n \ndatafile 11 switched to datafile copy\ninput datafile copy RECID=6 STAMP=1073682141 file name=\/oracle\/dados\/ASWAN\/C35954A5800908B7E0536C00A8C0EE5B\/datafile\/o1_mf_users_jc0cp8xo_.dbf\n \nexecuting command: SET NEWNAME\n \nexecuting command: SET NEWNAME\n \nexecuting command: SET NEWNAME\n \nexecuting command: SET NEWNAME\n \nStarting restore at 27-MAY-21\nusing channel ORA_AUX_DISK_1\n \nchannel ORA_AUX_DISK_1: starting datafile backup set restore\nchannel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set\nchannel ORA_AUX_DISK_1: restoring datafile 00001 to \/oracle\/PITR\/ASWAN\/datafile\/o1_mf_system_%u_.dbf\nchannel ORA_AUX_DISK_1: restoring datafile 00004 to \/oracle\/PITR\/ASWAN\/datafile\/o1_mf_undotbs1_%u_.dbf\nchannel ORA_AUX_DISK_1: restoring datafile 00003 to \/oracle\/PITR\/ASWAN\/datafile\/o1_mf_sysaux_%u_.dbf\nchannel ORA_AUX_DISK_1: restoring datafile 00007 to \/oracle\/PITR\/ASWAN\/datafile\/o1_mf_users_%u_.dbf\nchannel ORA_AUX_DISK_1: reading from backup piece \/oracle\/fra\/ASWAN\/backupset\/2021_05_27\/o1_mf_nnndf_TAG20210527T204943_jc0d0qt6_.bkp\nchannel ORA_AUX_DISK_1: piece handle=\/oracle\/fra\/ASWAN\/backupset\/2021_05_27\/o1_mf_nnndf_TAG20210527T204943_jc0d0qt6_.bkp tag=TAG20210527T204943\nchannel ORA_AUX_DISK_1: restored backup piece 1\nchannel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:05\nFinished restore at 27-MAY-21\n \ndatafile 1 switched to datafile copy\ninput datafile copy RECID=11 STAMP=1073682205 file name=\/oracle\/PITR\/ASWAN\/datafile\/o1_mf_system_jc0drdtr_.dbf\ndatafile 4 switched to datafile copy\ninput datafile copy RECID=12 STAMP=1073682205 file name=\/oracle\/PITR\/ASWAN\/datafile\/o1_mf_undotbs1_jc0drdvt_.dbf\ndatafile 3 switched to datafile copy\ninput datafile copy RECID=13 STAMP=1073682205 file name=\/oracle\/PITR\/ASWAN\/datafile\/o1_mf_sysaux_jc0drdvs_.dbf\ndatafile 7 switched to datafile copy\ninput datafile copy RECID=14 STAMP=1073682205 file name=\/oracle\/PITR\/ASWAN\/datafile\/o1_mf_users_jc0drdvv_.dbf\n \ncontents of Memory Script:\n{\n# set requested point in time\nset until  scn 2139480;\n# online the datafiles restored or switched\nsql clone &quot;alter database datafile  1 online&quot;;\nsql clone &quot;alter database datafile  4 online&quot;;\nsql clone &quot;alter database datafile  3 online&quot;;\nsql clone &#039;HIPOFISE1&#039; &quot;alter database datafile\n 9 online&quot;;\nsql clone &#039;HIPOFISE1&#039; &quot;alter database datafile\n 10 online&quot;;\nsql clone &#039;HIPOFISE1&#039; &quot;alter database datafile\n 11 online&quot;;\nsql clone &quot;alter database datafile  7 online&quot;;\n# recover pdb\nrecover clone database tablespace  &quot;SYSTEM&quot;, &quot;UNDOTBS1&quot;, &quot;SYSAUX&quot;, &quot;USERS&quot; pluggable database\n &#039;HIPOFISE1&#039;   delete archivelog;\nsql clone &#039;alter database open read only&#039;;\nplsql &amp;lt;&amp;lt;&amp;lt;begin\n   add_dropped_ts;\nend; &gt;&gt;&gt;;\nplsql &amp;lt;&amp;lt;&amp;lt;begin\n   save_pdb_clean_scn;\nend; &gt;&gt;&gt;;\n# shutdown clone before import\nshutdown clone abort\nplsql &amp;lt;&amp;lt;&amp;lt;begin\n   pdbpitr_inspect(pdbname =&gt;  &#039;HIPOFISE1&#039;);\nend; &gt;&gt;&gt;;\n}\nexecuting Memory Script\n \nexecuting command: SET until clause\n \nsql statement: alter database datafile  1 online\n \nsql statement: alter database datafile  4 online\n \nsql statement: alter database datafile  3 online\n \nsql statement: alter database datafile  9 online\n \nsql statement: alter database datafile  10 online\n \nsql statement: alter database datafile  11 online\n \nsql statement: alter database datafile  7 online\n \nStarting recover at 27-MAY-21\nusing channel ORA_AUX_DISK_1\n \nstarting media recovery\n \narchived log for thread 1 with sequence 7 is already on disk as file \/oracle\/archives\/1_7_1073680050.dbf\narchived log for thread 1 with sequence 8 is already on disk as file \/oracle\/archives\/1_8_1073680050.dbf\narchived log for thread 1 with sequence 9 is already on disk as file \/oracle\/archives\/1_9_1073680050.dbf\narchived log for thread 1 with sequence 10 is already on disk as file \/oracle\/archives\/1_10_1073680050.dbf\narchived log file name=\/oracle\/archives\/1_7_1073680050.dbf thread=1 sequence=7\narchived log file name=\/oracle\/archives\/1_8_1073680050.dbf thread=1 sequence=8\narchived log file name=\/oracle\/archives\/1_9_1073680050.dbf thread=1 sequence=9\narchived log file name=\/oracle\/archives\/1_10_1073680050.dbf thread=1 sequence=10\nmedia recovery complete, elapsed time: 00:00:01\nFinished recover at 27-MAY-21\n \nsql statement: alter database open read only\n \n \n \nOracle instance shut down\n \n \nRemoving automatic instance\nAutomatic instance removed\nauxiliary instance file \/oracle\/PITR\/ASWAN\/datafile\/o1_mf_sysaux_jc0drdvs_.dbf deleted\nauxiliary instance file \/oracle\/PITR\/ASWAN\/controlfile\/o1_mf_jc0dr6bo_.ctl deleted\nFinished recover at 27-MAY-21\n<\/pre><\/div>\n\n\n<p>Abrindo o PDB em RESETLOGS:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \\&quot;wp-block-syntaxhighlighter-code\\&quot;\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSQL&gt; SELECT NAME,OPEN_MODE FROM V$PDBS;\n \nNAME\n--------------------------------------------------------------------------------\nOPEN_MODE\n----------\nPDB$SEED\nREAD ONLY\n \nHIPOFISE1\nMOUNTED\n \n \nSQL&gt; ALTER PLUGGABLE DATABASE HIPOFISE1 OPEN RESETLOGS;\n \nPluggable database altered.\n<\/pre><\/div>\n\n\n<p>Agora podemos validar se nossa tabela de teste est\u00e1 dispon\u00edvel para uso ap\u00f3s a recupera\u00e7\u00e3o do PDB:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \\&quot;wp-block-syntaxhighlighter-code\\&quot;\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSQL&gt; ALTER SESSION SET CONTAINER=HIPOFISE1;\n \nSession altered.\n \nSQL&gt; SELECT * FROM BSS1.TESTE1;\n \nDESCRICAO\n--------------------\nPITR PDB 1\nPITR PDB 2\nPITR PDB 3\n<\/pre><\/div>\n\n\n<p>Obs: Este procedimento foi criado pelo senhor Ahmed Baraka (www.ahmedbaraka.com) e foi apenas reproduzido por mim em um laborat\u00f3rio pessoal para fins de aprendizado.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Realizar um Point-in-Time Recover de PDB que utilize uma \u00e1rea de UNDO compartilhada exige um procedimento um pouco diferente se comparado com Local UNDO. Na 12.1 nossa \u00fanica op\u00e7\u00e3o \u00e9 o Shared UNDO, mas a partir da 12.2 conseguimos definir isso no momento da cria\u00e7\u00e3o do banco de dados. Para este artigo, estou criando um [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,8],"tags":[],"class_list":["post-4891","post","type-post","status-publish","format-standard","hentry","category-backup-recovery","category-multitenant"],"_links":{"self":[{"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/posts\/4891","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=4891"}],"version-history":[{"count":1,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/posts\/4891\/revisions"}],"predecessor-version":[{"id":9127,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/posts\/4891\/revisions\/9127"}],"wp:attachment":[{"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=4891"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=4891"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=4891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}