{"id":4193,"date":"2021-04-30T08:12:09","date_gmt":"2021-04-30T08:12:09","guid":{"rendered":"https:\/\/swiv.com.br\/rman-block-compression-for-backup-sets\/"},"modified":"2026-05-27T20:02:32","modified_gmt":"2026-05-27T19:02:32","slug":"rman-block-compression-for-backup-sets","status":"publish","type":"post","link":"https:\/\/swiv.com.br\/index.php\/2021\/04\/30\/rman-block-compression-for-backup-sets\/","title":{"rendered":"RMAN Block Compression for Backup Sets"},"content":{"rendered":"\n<p>O RMAN utiliza 2 tipos de compress\u00e3o de blocos quando est\u00e1 realizando a cria\u00e7\u00e3o dos backup sets:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Unused Block Compression (suportado nos backups em disco e em backups de fita via Oracle Secure Backup)<\/li><li>Null Block Compression (suportado em todos os tipos de backup)<\/li><\/ul>\n\n\n<p>Apesar dessa refer\u00eancia de compress\u00e3o, nos bastidores o RMAN realiza um &#8220;block skipping&#8221;, ou seja, ao montar o backup set, os blocos em quest\u00e3o n\u00e3o s\u00e3o contemplados no backup. Na documenta\u00e7\u00e3o oficial (link <a rel=\"\\&quot;noreferrer noopener\" noopener=\"\" href=\"\/\/docs.oracle.com\/cd\/E11882_01\/backup.112\/e10642\/rcmcncpt.htm#BRADV89481\\&quot;\" target=\"\\&quot;_blank\\&quot;\">AQUI<\/a>), vemos que o recurso de Unused Block Compression ocorre quando:<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/swiv.com.br\/wp-content\/uploads\/2022\/07\/image-233.png\" alt=\"\" class=\"wp-image-7863\"\/><\/figure>\n\n\n\n<p>Al\u00e9m dos itens acima, tamb\u00e9m \u00e9 considerado que o RMAN ler\u00e1 aqueles blocos que atualmente s\u00e3o utilizados por algum segmento do banco de dados. <\/p>\n\n\n\n<p>J\u00e1 o &#8220;Null Block Compression&#8221; nada mais \u00e9 do que a regra: blocos que nunca foram usados n\u00e3o ser\u00e3o contemplados no backup. Blocos que possuem ou j\u00e1 possu\u00edram dados, ser\u00e3o contemplados.<\/p>\n\n\n<p>Eu encontrei um post na internet de como simular esses recursos (link <a rel=\"\\&quot;noreferrer noopener\" noopener=\"\" href=\"\/\/hemantoracledba.blogspot.com\/2016\/02\/rman-unused-block-compression-and-null.html\\&quot;\" target=\"\\&quot;_blank\\&quot;\">AQUI<\/a>) e decidir reproduzir exatamente o mesmo processo, para ter passado pela experi\u00eancia ver em funcionamento. Criando uma tablespace (com 100MB) e usu\u00e1rio:<\/p>\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 Fri Apr 30 04:50:57 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; CREATE TABLESPACE ASWAN;\n \nTablespace created.\n \nSQL&gt; CREATE USER LUXOR IDENTIFIED BY LUXOR DEFAULT TABLESPACE ASWAN;\n \nUser created.\n \nSQL&gt; ALTER USER LUXOR QUOTA UNLIMITED ON ASWAN;\n \nUser altered.\n \nSQL&gt; GRANT CREATE SESSION TO LUXOR;\n \nGrant succeeded.\n \nSQL&gt; GRANT DBA TO LUXOR;\n \nGrant succeeded.\n \nSQL&gt; col file_name for a50\nSQL&gt; select file_name, bytes\/1024\/1024 from dba_data_files where tablespace_name = &#039;ASWAN&#039;;\n \nFILE_NAME                                          BYTES\/1024\/1024\n-------------------------------------------------- ---------------\n\/oracle\/dados\/RMANDB\/datafile\/o1_mf_aswan_j8qfq313             100\n_.dbf\n<\/pre><\/div>\n\n\n<p>Realizando um backup dessa tablespace, que at\u00e9 o momento, est\u00e1 vazia. O que podemos perceber? Apesar da tablespace ter 100MB, o backup tem pouco mais de 1MB. Ou seja, o RMAN usufruiu do recurso de Null Block Compression:<\/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 Fri Apr 30 04:53:03 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; BACKUP TABLESPACE ASWAN;\n \nStarting backup at 2021-04-30:04:53:19\nusing target database control file instead of recovery catalog\nallocated channel: ORA_DISK_1\nchannel ORA_DISK_1: SID=89 device type=DISK\nchannel ORA_DISK_1: starting full datafile backup set\nchannel ORA_DISK_1: specifying datafile(s) in backup set\ninput datafile file number=00002 name=\/oracle\/dados\/RMANDB\/datafile\/o1_mf_aswan_j8qfq313_.dbf\nchannel ORA_DISK_1: starting piece 1 at 2021-04-30:04:53:19\nchannel ORA_DISK_1: finished piece 1 at 2021-04-30:04:53:20\npiece handle=\/oracle\/fra\/RMANDB\/backupset\/2021_04_30\/o1_mf_nnndf_TAG20210430T045319_j8qfvj5g_.bkp tag=TAG20210430T045319 comment=NONE\nchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01\nFinished backup at 2021-04-30:04:53:20\n \nStarting Control File and SPFILE Autobackup at 2021-04-30:04:53:20\npiece handle=\/oracle\/fra\/RMANDB\/autobackup\/2021_04_30\/o1_mf_s_1071204801_j8qfvkm8_.bkp comment=NONE\nFinished Control File and SPFILE Autobackup at 2021-04-30:04:53:22\n \nRMAN&gt; LIST BACKUP OF TABLESPACE ASWAN;\n \n \nList of Backup Sets\n===================\n \n \nBS Key  Type LV Size       Device Type Elapsed Time Completion Time\n------- ---- -- ---------- ----------- ------------ -------------------\n260     Full    1.05M      DISK        00:00:01     2021-04-30:04:53:20\n        BP Key: 260   Status: AVAILABLE  Compressed: NO  Tag: TAG20210430T045319\n        Piece Name: \/oracle\/fra\/RMANDB\/backupset\/2021_04_30\/o1_mf_nnndf_TAG20210430T045319_j8qfvj5g_.bkp\n  List of Datafiles in backup set 260\n  File LV Type Ckp SCN    Ckp Time            Abs Fuz SCN Sparse Name\n  ---- -- ---- ---------- ------------------- ----------- ------ ----\n  2       Full 2568238    2021-04-30:04:53:19              NO    \/oracle\/dados\/RMANDB\/datafile\/o1_mf_aswan_j8qfq313_.dbf\n<\/pre><\/div>\n\n\n<p>Nesta etapa vamos criar alguns segmentos dentro da tablespace, que atingir\u00e1 um tamanho de 88MB:<\/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 LUXOR\/LUXOR\n \nSQL*Plus: Release 18.0.0.0.0 - Production on Fri Apr 30 04:58:56 2021\nVersion 18.13.0.0.0\n \nCopyright (c) 1982, 2018, Oracle.  All rights reserved.\n \nLast Successful login time: Fri Apr 30 2021 04:58:07 -03:00\n \nConnected to:\nOracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production\nVersion 18.13.0.0.0\n \nSQL&gt; CREATE TABLE TESTE AS SELECT * FROM DBA_OBJECTS;\n \nTable created.\n \nSQL&gt; INSERT INTO TESTE SELECT * FROM TESTE;\n \n73407 rows created.\n \nSQL&gt; INSERT INTO TESTE SELECT * FROM TESTE;\n \n146814 rows created.\n \nSQL&gt; INSERT INTO TESTE SELECT * FROM TESTE;\n \n293628 rows created.\n \nSQL&gt; COMMIT;\n \nCommit complete.\n \nSQL&gt; col segment_name for a30\nSQL&gt; select segment_name, bytes\/1024\/1024 from user_segments where tablespace_name = &#039;ASWAN&#039;;\n \nSEGMENT_NAME                   BYTES\/1024\/1024\n------------------------------ ---------------\nTESTE                                       88\n<\/pre><\/div>\n\n\n<p>Realizando backup da tablespace (eu j\u00e1 deletei o backupset anterior para n\u00e3o termos uma vis\u00e3o polu\u00edda). Agora podemos notar que devido sua utiliza\u00e7\u00e3o por parte de segmentos de banco de dados, o tamanho do backup \u00e9 o mesmo do tamanho da tablespace:<\/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 Fri Apr 30 05:03:41 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; BACKUP TABLESPACE ASWAN;\n \nStarting backup at 2021-04-30:05:03:50\nusing target database control file instead of recovery catalog\nallocated channel: ORA_DISK_1\nchannel ORA_DISK_1: SID=93 device type=DISK\nchannel ORA_DISK_1: starting full datafile backup set\nchannel ORA_DISK_1: specifying datafile(s) in backup set\ninput datafile file number=00002 name=\/oracle\/dados\/RMANDB\/datafile\/o1_mf_aswan_j8qfq313_.dbf\nchannel ORA_DISK_1: starting piece 1 at 2021-04-30:05:03:51\nchannel ORA_DISK_1: finished piece 1 at 2021-04-30:05:03:54\npiece handle=\/oracle\/fra\/RMANDB\/backupset\/2021_04_30\/o1_mf_nnndf_TAG20210430T050351_j8qgh805_.bkp tag=TAG20210430T050351 comment=NONE\nchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:03\nFinished backup at 2021-04-30:05:03:54\n \nStarting Control File and SPFILE Autobackup at 2021-04-30:05:03:54\npiece handle=\/oracle\/fra\/RMANDB\/autobackup\/2021_04_30\/o1_mf_s_1071205434_j8qghc1c_.bkp comment=NONE\nFinished Control File and SPFILE Autobackup at 2021-04-30:05:03:55\n \nRMAN&gt; LIST BACKUP OF TABLESPACE ASWAN;\n \n \nList of Backup Sets\n===================\n \n \nBS Key  Type LV Size       Device Type Elapsed Time Completion Time\n------- ---- -- ---------- ----------- ------------ -------------------\n262     Full    89.05M     DISK        00:00:01     2021-04-30:05:03:52\n        BP Key: 262   Status: AVAILABLE  Compressed: NO  Tag: TAG20210430T050351\n        Piece Name: \/oracle\/fra\/RMANDB\/backupset\/2021_04_30\/o1_mf_nnndf_TAG20210430T050351_j8qgh805_.bkp\n  List of Datafiles in backup set 262\n  File LV Type Ckp SCN    Ckp Time            Abs Fuz SCN Sparse Name\n  ---- -- ---- ---------- ------------------- ----------- ------ ----\n  2       Full 2571030    2021-04-30:05:03:51              NO    \/oracle\/dados\/RMANDB\/datafile\/o1_mf_aswan_j8qfq313_.dbf\n<\/pre><\/div>\n\n\n<p>Dropando o segmento e fazendo o purge:<\/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; DROP TABLE LUXOR.TESTE;\n \nTable dropped.\n \nSQL&gt; PURGE TABLE LUXOR.TESTE;\n \nTable purged.\n<\/pre><\/div>\n\n\n<p>Com o exemplo abaixo, vemos implementado o recurso de Unused Block Compression:<\/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 TABLESPACE ASWAN;\n \nStarting backup at 2021-04-30:05:09:13\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=00002 name=\/oracle\/dados\/RMANDB\/datafile\/o1_mf_aswan_j8qfq313_.dbf\nchannel ORA_DISK_1: starting piece 1 at 2021-04-30:05:09:14\nchannel ORA_DISK_1: finished piece 1 at 2021-04-30:05:09:15\npiece handle=\/oracle\/fra\/RMANDB\/backupset\/2021_04_30\/o1_mf_nnndf_TAG20210430T050914_j8qgsb4n_.bkp tag=TAG20210430T050914 comment=NONE\nchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01\nFinished backup at 2021-04-30:05:09:15\n \nStarting Control File and SPFILE Autobackup at 2021-04-30:05:09:15\npiece handle=\/oracle\/fra\/RMANDB\/autobackup\/2021_04_30\/o1_mf_s_1071205755_j8qgscnl_.bkp comment=NONE\nFinished Control File and SPFILE Autobackup at 2021-04-30:05:09:16\n \nRMAN&gt; LIST BACKUP OF TABLESPACE ASWAN;\n \n \nList of Backup Sets\n===================\n \n \nBS Key  Type LV Size       Device Type Elapsed Time Completion Time\n------- ---- -- ---------- ----------- ------------ -------------------\n264     Full    1.05M      DISK        00:00:00     2021-04-30:05:09:14\n        BP Key: 264   Status: AVAILABLE  Compressed: NO  Tag: TAG20210430T050914\n        Piece Name: \/oracle\/fra\/RMANDB\/backupset\/2021_04_30\/o1_mf_nnndf_TAG20210430T050914_j8qgsb4n_.bkp\n  List of Datafiles in backup set 264\n  File LV Type Ckp SCN    Ckp Time            Abs Fuz SCN Sparse Name\n  ---- -- ---- ---------- ------------------- ----------- ------ ----\n  2       Full 2571325    2021-04-30:05:09:14              NO    \/oracle\/dados\/RMANDB\/datafile\/o1_mf_aswan_j8qfq313_.dbf\n<\/pre><\/div>\n\n\n<p>Limpando ambiente:<\/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; DROP USER LUXOR;\n \nUser dropped.\n \nSQL&gt; DROP TABLESPACE ASWAN INCLUDING CONTENTS AND DATAFILES;\n \nTablespace dropped.\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>O RMAN utiliza 2 tipos de compress\u00e3o de blocos quando est\u00e1 realizando a cria\u00e7\u00e3o dos backup sets: Unused Block Compression (suportado nos backups em disco e em backups de fita via Oracle Secure Backup) Null Block Compression (suportado em todos os tipos de backup) Apesar dessa refer\u00eancia de compress\u00e3o, nos bastidores o RMAN realiza 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],"tags":[],"class_list":["post-4193","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\/4193","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=4193"}],"version-history":[{"count":1,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/posts\/4193\/revisions"}],"predecessor-version":[{"id":9154,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/posts\/4193\/revisions\/9154"}],"wp:attachment":[{"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=4193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=4193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=4193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}