{"id":6051,"date":"2021-08-02T23:56:20","date_gmt":"2021-08-02T23:56:20","guid":{"rendered":"https:\/\/swiv.com.br\/performing-recovery-of-database-loss-by-switching-to-image-copies\/"},"modified":"2026-05-27T20:02:30","modified_gmt":"2026-05-27T19:02:30","slug":"performing-recovery-of-database-loss-by-switching-to-image-copies","status":"publish","type":"post","link":"https:\/\/swiv.com.br\/index.php\/2021\/08\/02\/performing-recovery-of-database-loss-by-switching-to-image-copies\/","title":{"rendered":"Performing recovery of database loss by switching to image copies"},"content":{"rendered":"<p>No \u00faltimo artigo (link <a rel=\"\\&quot;noreferrer noopener\" noopener=\"\" href=\"https:\/\/swiv.com.br\/performing-recovery-of-datafiles-loss-by-switching-to-image-copies\/\" target=\"\\&quot;_blank\\&quot;\">AQUI<\/a>), simulamos um caso onde usamos o switch de um datafile espec\u00edfico para agilizar o processo de recupera\u00e7\u00e3o de um ambiente (ou seja, nos bastidores o restore n\u00e3o era necess\u00e1rio, uma vez que o backup do tipo image copy era utilizado e era apenas necess\u00e1rio a recupera\u00e7\u00e3o do datafile com o comando de recover). Hoje, vamos realizar o mesmo processo, mas agora do banco de dados como um todo. Esse cen\u00e1rio economiza o tempo de restore, e pode ser uma boa estrat\u00e9gia para o neg\u00f3cio.<\/p>\n\n\n<p>Reconhecendo o nosso banco de dados:<\/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@oel8 ~]$ rman target \/\n \nRecovery Manager: Release 18.0.0.0.0 - Production on Mon Aug 2 20:36:58 2021\nVersion 18.13.0.0.0\n \nCopyright (c) 1982, 2018, Oracle and\/or its affiliates.  All rights reserved.\n \nconnected to target database: RMANDB (DBID=3825250984)\n \nRMAN&gt; SELECT NAME,OPEN_MODE,LOG_MODE FROM V$DATABASE;\n \nusing target database control file instead of recovery catalog\nNAME      OPEN_MODE            LOG_MODE\n--------- -------------------- ------------\nRMANDB    READ WRITE           ARCHIVELOG\n \nRMAN&gt; REPORT SCHEMA;\n \nReport of database schema for database with db_unique_name RMANDB\n \nList of Permanent Datafiles\n===========================\nFile Size(MB) Tablespace           RB segs Datafile Name\n---- -------- -------------------- ------- ------------------------\n1    880      SYSTEM               YES     \/oracle\/RESTORE\/system.dbf\n2    120      TS_HIPO_CATALOG      NO      \/oracle\/RESTORE\/ts_hipo_catalog.dbf\n3    730      SYSAUX               NO      \/oracle\/RESTORE\/sysaux.dbf\n4    305      UNDOTBS1             YES     \/oracle\/RESTORE\/undo.tbs\n5    200      TS_CORTEX_CATALOG    NO      \/oracle\/RESTORE\/ts_cortex_catalog.dbf\n7    16       USERS                NO      \/oracle\/fra\/RMANDB\/datafile\/o1_mf_users_jj3sw90n_.dbf\n \nList of Temporary Files\n=======================\nFile Size(MB) Tablespace           Maxsize(MB) Tempfile Name\n---- -------- -------------------- ----------- --------------------\n1    69       TEMP                 32767       \/oracle\/dados\/RMANDB\/datafile\/o1_mf_temp_h8nyvt1f_.tmp\n<\/pre><\/div>\n\n\n<p>Realizando um backup as copy do banco de dados inteiro:<\/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 AS COPY DATABASE;\n \nStarting backup at 2021-08-02:20:41:27\nusing channel ORA_DISK_1\nchannel ORA_DISK_1: starting datafile copy\ninput datafile file number=00001 name=\/oracle\/RESTORE\/system.dbf\noutput file name=\/oracle\/fra\/RMANDB\/datafile\/o1_mf_system_jjk0o792_.dbf tag=TAG20210802T204127 RECID=66 STAMP=1079556103\nchannel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25\nchannel ORA_DISK_1: starting datafile copy\ninput datafile file number=00003 name=\/oracle\/RESTORE\/sysaux.dbf\noutput file name=\/oracle\/fra\/RMANDB\/datafile\/o1_mf_sysaux_jjk0p0g4_.dbf tag=TAG20210802T204127 RECID=67 STAMP=1079556130\nchannel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25\nchannel ORA_DISK_1: starting datafile copy\ninput datafile file number=00004 name=\/oracle\/RESTORE\/undo.tbs\noutput file name=\/oracle\/fra\/RMANDB\/datafile\/o1_mf_undotbs1_jjk0pskk_.dbf tag=TAG20210802T204127 RECID=68 STAMP=1079556143\nchannel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07\nchannel ORA_DISK_1: starting datafile copy\ninput datafile file number=00005 name=\/oracle\/RESTORE\/ts_cortex_catalog.dbf\noutput file name=\/oracle\/fra\/RMANDB\/datafile\/o1_mf_ts_corte_jjk0q0oo_.dbf tag=TAG20210802T204127 RECID=69 STAMP=1079556155\nchannel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15\nchannel ORA_DISK_1: starting datafile copy\ninput datafile file number=00002 name=\/oracle\/RESTORE\/ts_hipo_catalog.dbf\noutput file name=\/oracle\/fra\/RMANDB\/datafile\/o1_mf_ts_hipo__jjk0qhw7_.dbf tag=TAG20210802T204127 RECID=70 STAMP=1079556167\nchannel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15\nchannel ORA_DISK_1: starting datafile copy\ninput datafile file number=00007 name=\/oracle\/fra\/RMANDB\/datafile\/o1_mf_users_jj3sw90n_.dbf\noutput file name=\/oracle\/fra\/RMANDB\/datafile\/o1_mf_users_jjk0qz0o_.dbf tag=TAG20210802T204127 RECID=71 STAMP=1079556175\nchannel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:02\nFinished backup at 2021-08-02:20:42:56\n \nStarting Control File and SPFILE Autobackup at 2021-08-02:20:42:56\npiece handle=\/oracle\/fra\/RMANDB\/autobackup\/2021_08_02\/o1_mf_s_1079556176_jjk0r11y_.bkp comment=NONE\nFinished Control File and SPFILE Autobackup at 2021-08-02:20:42:59\n<\/pre><\/div>\n\n\n<p>Para reproduzirmos um problema que exige recupera\u00e7\u00e3o, vamos deletar os datafiles do nosso banco direto no S.O:<\/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; host &#039;rm \/oracle\/RESTORE\/system.dbf \/oracle\/RESTORE\/ts_hipo_catalog.dbf \/oracle\/RESTORE\/sysaux.dbf \/oracle\/RESTORE\/undo.tbs \/oracle\/RESTORE\/ts_cortex_catalog.dbf \/oracle\/fra\/RMANDB\/datafile\/o1_mf_users_jj3sw90n_.dbf&#039;;\n \nhost command complete\n<\/pre><\/div>\n\n\n<p>Com o comando VALIDATE DATABASE, j\u00e1 podemos notar que o problema foi reconhecido:<\/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; VALIDATE DATABASE;\n \nStarting validate at 2021-08-02:20:45:14\nusing channel ORA_DISK_1\nchannel ORA_DISK_1: starting validation of datafile\nchannel ORA_DISK_1: specifying datafile(s) for validation\nRMAN-00571: ===========================================================\nRMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============\nRMAN-00571: ===========================================================\nRMAN-03009: failure of validate command on ORA_DISK_1 channel at 08\/02\/2021 20:45:14\nORA-01122: database file 1 failed verification check\nORA-01110: data file 1: &#039;\/oracle\/RESTORE\/system.dbf&#039;\nORA-01565: error in identifying file &#039;\/oracle\/RESTORE\/system.dbf&#039;\nORA-27037: unable to obtain file status\nLinux-x86_64 Error: 2: No such file or directory\nAdditional information: 7\n<\/pre><\/div>\n\n\n<p>Vamos baixar a inst\u00e2ncia e montar o banco de dados:<\/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@oel8 ~]$ sqlplus \/ as sysdba\n \nSQL*Plus: Release 18.0.0.0.0 - Production on Mon Aug 2 20:46:17 2021\nVersion 18.13.0.0.0\n \nCopyright (c) 1982, 2018, Oracle.  All rights reserved.\n \n \nConnected to:\nOracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production\nVersion 18.13.0.0.0\n \nSQL&gt; SHU IMMEDIATE;\nORA-01116: error in opening database file 1\nORA-01110: data file 1: &#039;\/oracle\/RESTORE\/system.dbf&#039;\nORA-27041: unable to open file\nLinux-x86_64 Error: 2: No such file or directory\nAdditional information: 3\nSQL&gt; SHU ABORT;\nORACLE instance shut down.\nSQL&gt; STARTUP MOUNT;\nORACLE instance started.\n \nTotal System Global Area 1610612016 bytes\nFixed Size                  8658224 bytes\nVariable Size             520093696 bytes\nDatabase Buffers         1073741824 bytes\nRedo Buffers                8118272 bytes\nDatabase mounted.\nSQL&gt;\n<\/pre><\/div>\n\n\n<p>Com um \u00fanico comando RMAN, conseguimos rotear os datafiles que antes eram os nossos backups as image copy para que se tornem os datafiles oficiais do ambiente. Ou seja, poupamos aqui a etapa de restore dos mesmos, uma vez que o RMAN alterar\u00e1 no controlfile o novo nome e diret\u00f3rio dos datafiles:<\/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@oel8 ~]$ rman target \/\n \nRecovery Manager: Release 18.0.0.0.0 - Production on Mon Aug 2 20:49:12 2021\nVersion 18.13.0.0.0\n \nCopyright (c) 1982, 2018, Oracle and\/or its affiliates.  All rights reserved.\n \nconnected to target database: RMANDB (DBID=3825250984, not open)\n \nRMAN&gt; SWITCH DATABASE TO COPY;\n \nusing target database control file instead of recovery catalog\ndatafile 1 switched to datafile copy &quot;\/oracle\/fra\/RMANDB\/datafile\/o1_mf_system_jjk0o792_.dbf&quot;\ndatafile 2 switched to datafile copy &quot;\/oracle\/fra\/RMANDB\/datafile\/o1_mf_ts_hipo__jjk0qhw7_.dbf&quot;\ndatafile 3 switched to datafile copy &quot;\/oracle\/fra\/RMANDB\/datafile\/o1_mf_sysaux_jjk0p0g4_.dbf&quot;\ndatafile 4 switched to datafile copy &quot;\/oracle\/fra\/RMANDB\/datafile\/o1_mf_undotbs1_jjk0pskk_.dbf&quot;\ndatafile 5 switched to datafile copy &quot;\/oracle\/fra\/RMANDB\/datafile\/o1_mf_ts_corte_jjk0q0oo_.dbf&quot;\ndatafile 7 switched to datafile copy &quot;\/oracle\/fra\/RMANDB\/datafile\/o1_mf_users_jjk0qz0o_.dbf&quot;\n<\/pre><\/div>\n\n\n<p>A partir daqui, \u00e9 o caminho padr\u00e3o: fazemos o recover dos datafiles com os vetores de altera\u00e7\u00e3o de eventuais archived redo logs e Online Redo Logs:<\/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; RECOVER DATABASE;\n \nStarting recover at 2021-08-02:20:50:20\nallocated channel: ORA_DISK_1\nchannel ORA_DISK_1: SID=45 device type=DISK\n \nstarting media recovery\nmedia recovery complete, elapsed time: 00:00:01\n \nFinished recover at 2021-08-02:20:50:22\n<\/pre><\/div>\n\n\n<p>Abertura do banco e valida\u00e7\u00e3o do mesmo:<\/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; ALTER DATABASE OPEN;\n \nStatement processed\n \nRMAN&gt; VALIDATE DATABASE;\n \nStarting validate at 2021-08-02:20:50:54\nusing channel ORA_DISK_1\nchannel ORA_DISK_1: starting validation of datafile\nchannel ORA_DISK_1: specifying datafile(s) for validation\ninput datafile file number=00001 name=\/oracle\/fra\/RMANDB\/datafile\/o1_mf_system_jjk0o792_.dbf\ninput datafile file number=00003 name=\/oracle\/fra\/RMANDB\/datafile\/o1_mf_sysaux_jjk0p0g4_.dbf\ninput datafile file number=00004 name=\/oracle\/fra\/RMANDB\/datafile\/o1_mf_undotbs1_jjk0pskk_.dbf\ninput datafile file number=00005 name=\/oracle\/fra\/RMANDB\/datafile\/o1_mf_ts_corte_jjk0q0oo_.dbf\ninput datafile file number=00002 name=\/oracle\/fra\/RMANDB\/datafile\/o1_mf_ts_hipo__jjk0qhw7_.dbf\ninput datafile file number=00007 name=\/oracle\/fra\/RMANDB\/datafile\/o1_mf_users_jjk0qz0o_.dbf\nchannel ORA_DISK_1: validation complete, elapsed time: 00:00:15\nList of Datafiles\n=================\nFile Status Marked Corrupt Empty Blocks Blocks Examined High SCN\n---- ------ -------------- ------------ --------------- ----------\n1    OK     0              16514        112644          4489478\n  File Name: \/oracle\/fra\/RMANDB\/datafile\/o1_mf_system_jjk0o792_.dbf\n  Block Type Blocks Failing Blocks Processed\n  ---------- -------------- ----------------\n  Data       0              74956\n  Index      0              13665\n  Other      0              7505\n \nFile Status Marked Corrupt Empty Blocks Blocks Examined High SCN\n---- ------ -------------- ------------ --------------- ----------\n2    OK     0              401          15361           2733896\n  File Name: \/oracle\/fra\/RMANDB\/datafile\/o1_mf_ts_hipo__jjk0qhw7_.dbf\n  Block Type Blocks Failing Blocks Processed\n  ---------- -------------- ----------------\n  Data       0              150\n  Index      0              98\n  Other      0              14711\n \nFile Status Marked Corrupt Empty Blocks Blocks Examined High SCN\n---- ------ -------------- ------------ --------------- ----------\n3    OK     0              16502        93504           4489519\n  File Name: \/oracle\/fra\/RMANDB\/datafile\/o1_mf_sysaux_jjk0p0g4_.dbf\n  Block Type Blocks Failing Blocks Processed\n  ---------- -------------- ----------------\n  Data       0              11620\n  Index      0              10560\n  Other      0              54758\n \nFile Status Marked Corrupt Empty Blocks Blocks Examined High SCN\n---- ------ -------------- ------------ --------------- ----------\n4    OK     0              1            39047           4489478\n  File Name: \/oracle\/fra\/RMANDB\/datafile\/o1_mf_undotbs1_jjk0pskk_.dbf\n  Block Type Blocks Failing Blocks Processed\n  ---------- -------------- ----------------\n  Data       0              0\n  Index      0              0\n  Other      0              39039\n \nFile Status Marked Corrupt Empty Blocks Blocks Examined High SCN\n---- ------ -------------- ------------ --------------- ----------\n5    OK     0              505          25601           2790924\n  File Name: \/oracle\/fra\/RMANDB\/datafile\/o1_mf_ts_corte_jjk0q0oo_.dbf\n  Block Type Blocks Failing Blocks Processed\n  ---------- -------------- ----------------\n  Data       0              175\n  Index      0              135\n  Other      0              24785\n \nFile Status Marked Corrupt Empty Blocks Blocks Examined High SCN\n---- ------ -------------- ------------ --------------- ----------\n7    OK     0              120          2101            3924688\n  File Name: \/oracle\/fra\/RMANDB\/datafile\/o1_mf_users_jjk0qz0o_.dbf\n  Block Type Blocks Failing Blocks Processed\n  ---------- -------------- ----------------\n  Data       0              1440\n  Index      0              19\n  Other      0              501\n \nchannel ORA_DISK_1: starting validation of datafile\nchannel ORA_DISK_1: specifying datafile(s) for validation\nincluding current control file for validation\nincluding current SPFILE in backup set\nchannel ORA_DISK_1: validation complete, elapsed time: 00:00:01\nList of Control File and SPFILE\n===============================\nFile Type    Status Blocks Failing Blocks Examined\n------------ ------ -------------- ---------------\nSPFILE       OK     0              2\nControl File OK     0              722\nFinished validate at 2021-08-02:20:51:11\n \nRMAN&gt; REPORT SCHEMA;\n \nReport of database schema for database with db_unique_name RMANDB\n \nList of Permanent Datafiles\n===========================\nFile Size(MB) Tablespace           RB segs Datafile Name\n---- -------- -------------------- ------- ------------------------\n1    880      SYSTEM               YES     \/oracle\/fra\/RMANDB\/datafile\/o1_mf_system_jjk0o792_.dbf\n2    120      TS_HIPO_CATALOG      NO      \/oracle\/fra\/RMANDB\/datafile\/o1_mf_ts_hipo__jjk0qhw7_.dbf\n3    730      SYSAUX               NO      \/oracle\/fra\/RMANDB\/datafile\/o1_mf_sysaux_jjk0p0g4_.dbf\n4    305      UNDOTBS1             YES     \/oracle\/fra\/RMANDB\/datafile\/o1_mf_undotbs1_jjk0pskk_.dbf\n5    200      TS_CORTEX_CATALOG    NO      \/oracle\/fra\/RMANDB\/datafile\/o1_mf_ts_corte_jjk0q0oo_.dbf\n7    16       USERS                NO      \/oracle\/fra\/RMANDB\/datafile\/o1_mf_users_jjk0qz0o_.dbf\n \nList of Temporary Files\n=======================\nFile Size(MB) Tablespace           Maxsize(MB) Tempfile Name\n---- -------- -------------------- ----------- --------------------\n1    69       TEMP                 32767       \/oracle\/dados\/RMANDB\/datafile\/o1_mf_temp_h8nyvt1f_.tmp\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>No \u00faltimo artigo (link AQUI), simulamos um caso onde usamos o switch de um datafile espec\u00edfico para agilizar o processo de recupera\u00e7\u00e3o de um ambiente (ou seja, nos bastidores o restore n\u00e3o era necess\u00e1rio, uma vez que o backup do tipo image copy era utilizado e era apenas necess\u00e1rio a recupera\u00e7\u00e3o do datafile com o [&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],"tags":[],"class_list":["post-6051","post","type-post","status-publish","format-standard","hentry","category-backup-recovery"],"_links":{"self":[{"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/posts\/6051","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=6051"}],"version-history":[{"count":1,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/posts\/6051\/revisions"}],"predecessor-version":[{"id":9069,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/posts\/6051\/revisions\/9069"}],"wp:attachment":[{"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=6051"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=6051"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=6051"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}