{"id":143,"date":"2012-08-23T18:30:28","date_gmt":"2012-08-23T16:30:28","guid":{"rendered":"http:\/\/clemente.pamplona.name\/dba\/?p=143"},"modified":"2012-10-20T20:04:49","modified_gmt":"2012-10-20T18:04:49","slug":"creando-una-estrategia-de-seguridad-con-image-copies","status":"publish","type":"post","link":"http:\/\/clemente.pamplona.name\/dba\/creando-una-estrategia-de-seguridad-con-image-copies\/","title":{"rendered":"Creando una estrategia de seguridad incremental con image copies"},"content":{"rendered":"<p>Hoy vamos a ver como plantear una estrategia de seguridad distinta a la cl\u00e1sica estrategia de RMAN backupsets , esta nueva estrategia se va a basar en <em>image copies<\/em> y nos va a requerir mucho mas espacio en disco ( el mismo que la base de datos),pero lo que nos permitir\u00e1 es por el contrario un tiempo de recuperaci\u00f3n muchisimo menor.<a href=\"http:\/\/clemente.pamplona.name\/dba\/wp-content\/uploads\/2012\/08\/ScreenHunter_82-Aug.-23-17.33.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-144 alignright\" title=\"ScreenHunter_82 Aug. 23 17.33\" src=\"http:\/\/clemente.pamplona.name\/dba\/wp-content\/uploads\/2012\/08\/ScreenHunter_82-Aug.-23-17.33.jpg\" alt=\"\" width=\"259\" height=\"241\" \/><\/a><\/p>\n<p>Nos aseguramos que tenemos suficiente espacio en la FRA (Flash Recovery Area) para albergar nuestra base de de datos entera.<\/p>\n<p>Vemos que tenemos 15,4 Gb libres en la FRA,\u00a0 la ocupaci\u00f3n de nuestra base de datos la calcularemos desde el sistema operativo con el comando<\/p>\n<pre>[oracle@test] du -sh oradata\/orcl\/\r\n5.5G\u00a0\u00a0\u00a0 oradata\/orcl\/<\/pre>\n<hr \/>\n<p>Ahora haremos un backup de toda nuestra base de datos\u00a0 <em><\/em> al que llamaremos<strong> incremental en copias<\/strong><\/p>\n<p>Nos conectamos a nuestra base de datos y al cat\u00e1logo de RMAN y ejecutaremos el comando:<\/p>\n<pre>run {\r\n1&gt; recover copy of database with tag 'incremental en copias';\r\n2 &gt; backup incremental level 1 for recover of copy with tag 'incremental en copias' database;\r\n}<\/pre>\n<p>Viendo el texto de nuestro bloque RUN, lo primero que os estareis preguntando es :<br \/>\n\u00bfpor que hacemos un recover si lo que queremos hacer es un backup?<br \/>\nveamos que hacen las\u00a0 dos lineas del script de backup, pero vamos a verlo en orden inverso.<\/p>\n<p><strong>2&gt;<\/strong> La l\u00ednea <em>backup incremental level 1 for recover of copy with tag &#8216;incremental en copias&#8217; database;<\/em> nos va ha hacer un backup image copy de los ficheros de la base de datos, en caso de no encontrar alguna copia anterior con el tag <em>&#8216;incremental en copias&#8217;<\/em>\u00a0 har\u00e1 una imagecopy completa del datafile, pero , si encontrara una imagecopy anterior con ese tag, lo que har\u00e1 es copiar solamente los cambios incrementales de esa imagecopy.<\/p>\n<p><strong>1&gt;<\/strong> El comando <em>recover copy of database with tag &#8216;incremental en copias&#8217;;<\/em> no va ha hacer un recovery de los ficheros de la base de datos, lo que va ha hacer es, recuperar sobre la <strong>image copy &#8216;incremental en copias&#8217; <\/strong> los cambios incrementales que encuentre creados por la l\u00ednea\u00a0 2&gt; .<\/p>\n<p>Esto que a priori puede ser muy lioso, se ve claramente si ejecutamos nuestros bloque de rman varias veces.<\/p>\n<p>Vamos a ejecutar nuestros script de backup para comprobar que lo dicho anteriormente es cierto<\/p>\n<hr \/>\n<p>Veamos la salida del comando en la primera ejecucion<\/p>\n<p>Vemos la linea 1 del script\u00a0 no ha hecho nada, y nuestra linea 2\u00a0 es similar a la que saldr\u00eda haciendo un simple backup\u00a0 basado encopias de todos los datafiles de la base de datos.<\/p>\n<h6><strong>Ejecucion 1<\/strong><\/h6>\n<pre>Starting recover at 23\/08\/12\r\nusing channel ORA_DISK_1\r\nno copy of datafile 1 found to recover\r\nno copy of datafile 2 found to recover\r\nno copy of datafile 3 found to recover\r\nno copy of datafile 4 found to recover\r\nno copy of datafile 5 found to recover\r\nFinished recover at 23\/08\/12\r\n\r\nStarting backup at 23\/08\/12\r\nusing channel ORA_DISK_1\r\nno parent backup or copy of datafile 3 found\r\nno parent backup or copy of datafile 1 found\r\nno parent backup or copy of datafile 2 found\r\nno parent backup or copy of datafile 4 found\r\nno parent backup or copy of datafile 5 found\r\nchannel ORA_DISK_1: starting datafile copy\r\ninput datafile file number=00003 name=\/opt\/oracle\/oradata\/orcl\/undotbs01.dbf\r\noutput file name=\/opt\/oracle\/flash_recovery_area\/ORCL\/datafile\/o1_mf_undotbs1_83dn40z2_.dbf tag=INCREMENTAL EN COPIAS RECID=94 STAMP=792092958\r\nchannel ORA_DISK_1: datafile copy complete, elapsed time: 00:02:18\r\nchannel ORA_DISK_1: starting datafile copy\r\ninput datafile file number=00001 name=\/opt\/oracle\/oradata\/orcl\/system01.dbf\r\noutput file name=\/opt\/oracle\/flash_recovery_area\/ORCL\/datafile\/o1_mf_system_83dn8gv0_.dbf tag=INCREMENTAL EN COPIAS RECID=95 STAMP=792093020\r\nchannel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:55\r\nchannel ORA_DISK_1: starting datafile copy\r\ninput datafile file number=00002 name=\/opt\/oracle\/oradata\/orcl\/sysaux01.dbf\r\noutput file name=\/opt\/oracle\/flash_recovery_area\/ORCL\/datafile\/o1_mf_sysaux_83dnb5vv_.dbf tag=INCREMENTAL EN COPIAS RECID=96 STAMP=792093064\r\nchannel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:45\r\nchannel ORA_DISK_1: starting datafile copy\r\ninput datafile file number=00004 name=\/opt\/oracle\/oradata\/orcl\/users01.dbf\r\noutput file name=\/opt\/oracle\/flash_recovery_area\/ORCL\/datafile\/o1_mf_users_83dnclot_.dbf tag=INCREMENTAL EN COPIAS RECID=97 STAMP=792093085\r\nchannel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15\r\nchannel ORA_DISK_1: starting datafile copy\r\ninput datafile file number=00005 name=\/opt\/oracle\/oradata\/orcl\/example01.dbf\r\noutput file name=\/opt\/oracle\/flash_recovery_area\/ORCL\/datafile\/o1_mf_example_83dnd1yn_.dbf tag=INCREMENTAL EN COPIAS RECID=98 STAMP=792093093\r\nchannel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07\r\nFinished backup at 23\/08\/12\r\n\r\nStarting Control File and SPFILE Autobackup at 23\/08\/12\r\npiece handle=\/opt\/oracle\/flash_recovery_area\/ORCL\/autobackup\/2012_08_23\/o1_mf_s_792093100_83dndg0h_.bkp comment=NONE\r\nFinished Control File and SPFILE Autobackup at 23\/08\/12<\/pre>\n<p>&nbsp;<\/p>\n<p>Si lo ejecutamos por segunda vez, el comando <em>recover copy of database with tag &#8216;incremental en copias&#8217;\u00a0 <\/em>(l\u00ednea 1) seguir\u00e1 sin encontrar un backup llamado asi, con lo que no aplicar\u00e1 nada, pero el comando <em>backup incremental level 1 for recover of copy with tag &#8216;incremental en copias&#8217; database; (l\u00ednea 2) \u00a0<\/em>si que encontrar\u00e1 cambios en la base de datos, con lo que si que deber\u00eda de copiar nuevos datos.<br \/>\nVeamos que ocurre si lo ejecutamos de nuevo<\/p>\n<h6><strong>Ejecucion 2<\/strong><\/h6>\n<pre>RMAN&gt; run {\r\nrecover copy of database with tag 'incremental en copias';\r\nbackup incremental level 1 for recover of copy with tag 'incremental en copias' database;\r\n}2&gt; 3&gt; 4&gt;\r\n\r\nStarting recover at 23\/08\/12\r\nallocated channel: ORA_DISK_1\r\nchannel ORA_DISK_1: SID=149 device type=DISK\r\nno copy of datafile 1 found to recover\r\nno copy of datafile 2 found to recover\r\nno copy of datafile 3 found to recover\r\nno copy of datafile 4 found to recover\r\nno copy of datafile 5 found to recover\r\nFinished recover at 23\/08\/12\r\n\r\nStarting backup at 23\/08\/12\r\nusing channel ORA_DISK_1\r\nchannel ORA_DISK_1: starting incremental level 1 datafile backup set\r\nchannel ORA_DISK_1: specifying datafile(s) in backup set\r\ninput datafile file number=00003 name=\/opt\/oracle\/oradata\/orcl\/undotbs01.dbf\r\ninput datafile file number=00001 name=\/opt\/oracle\/oradata\/orcl\/system01.dbf\r\ninput datafile file number=00002 name=\/opt\/oracle\/oradata\/orcl\/sysaux01.dbf\r\ninput datafile file number=00004 name=\/opt\/oracle\/oradata\/orcl\/users01.dbf\r\ninput datafile file number=00005 name=\/opt\/oracle\/oradata\/orcl\/example01.dbf\r\nchannel ORA_DISK_1: starting piece 1 at 23\/08\/12\r\nchannel ORA_DISK_1: finished piece 1 at 23\/08\/12\r\npiece handle=\/opt\/oracle\/flash_recovery_area\/ORCL\/backupset\/2012_08_23\/o1_mf_nnnd1_INCREMENTAL_EN_COPIA_83dntqbk_.bkp tag=INCREMENTAL EN COPIAS comment=NONE\r\nchannel ORA_DISK_1: backup set complete, elapsed time: 00:03:15\r\nFinished backup at 23\/08\/12\r\n\r\nStarting Control File and SPFILE Autobackup at 23\/08\/12\r\npiece handle=\/opt\/oracle\/flash_recovery_area\/ORCL\/autobackup\/2012_08_23\/o1_mf_s_792093756_83do0xlz_.bkp comment=NONE\r\nFinished Control File and SPFILE Autobackup at 23\/08\/12<\/pre>\n<p>\u00bfQue ocurrir\u00e1 en la tercera ejecuci\u00f3n?<\/p>\n<p>El comando <em>recover copy of database with tag &#8216;incremental en copias&#8217; <\/em>ya tiene que haber encontrado datos ya que tiene la primera copia,con lo que esta vez si que ejecutar\u00e1 en <em>recover<\/em>, pero no lo har\u00e1 sobre los datafiles originales, sino que aplicar\u00e1 los cambios que hemos guardado en la <strong>ejecuci\u00f3n 2<\/strong> sobre las copias de la <strong>ejecuci\u00f3n 1<\/strong> y el incremental que hemos hecho antesvolver\u00e1 a encontrar cambios en la base de datos, con lo que si que deber\u00eda de volver a copiar nuevos datos.<br \/>\nVeamos la salida de esta tercera ejecuci\u00f3n:<\/p>\n<h6><strong>\u00a0Ejecucion 3<\/strong><\/h6>\n<pre>RMAN&gt; run {\r\nrecover copy of database with tag 'incremental en copias';\r\nbackup incremental level 1 for recover of copy with tag 'incremental en copias' database;\r\n}\r\n2&gt; 3&gt; 4&gt;\r\nStarting recover at 23\/08\/12\r\nusing channel ORA_DISK_1\r\nchannel ORA_DISK_1: starting incremental datafile backup set restore\r\nchannel ORA_DISK_1: specifying datafile copies to recover\r\nrecovering datafile copy file number=00001 name=\/opt\/oracle\/flash_recovery_area\/ORCL\/datafile\/o1_mf_system_83dn8gv0_.dbf\r\nrecovering datafile copy file number=00002 name=\/opt\/oracle\/flash_recovery_area\/ORCL\/datafile\/o1_mf_sysaux_83dnb5vv_.dbf\r\nrecovering datafile copy file number=00003 name=\/opt\/oracle\/flash_recovery_area\/ORCL\/datafile\/o1_mf_undotbs1_83dn40z2_.dbf\r\nrecovering datafile copy file number=00004 name=\/opt\/oracle\/flash_recovery_area\/ORCL\/datafile\/o1_mf_users_83dnclot_.dbf\r\nrecovering datafile copy file number=00005 name=\/opt\/oracle\/flash_recovery_area\/ORCL\/datafile\/o1_mf_example_83dnd1yn_.dbf\r\nchannel ORA_DISK_1: reading from backup piece \/opt\/oracle\/flash_recovery_area\/ORCL\/backupset\/2012_08_23\/o1_mf_nnnd1_INCREMENTAL_EN_COPIA_83dntqbk_.bkp\r\nchannel ORA_DISK_1: piece handle=\/opt\/oracle\/flash_recovery_area\/ORCL\/backupset\/2012_08_23\/o1_mf_nnnd1_INCREMENTAL_EN_COPIA_83dntqbk_.bkp tag=INCREMENTAL EN COPIAS\r\nchannel ORA_DISK_1: restored backup piece 1\r\nchannel ORA_DISK_1: restore complete, elapsed time: 00:00:07\r\nFinished recover at 23\/08\/12\r\n\r\nStarting backup at 23\/08\/12\r\nusing channel ORA_DISK_1\r\nchannel ORA_DISK_1: starting incremental level 1 datafile backup set\r\nchannel ORA_DISK_1: specifying datafile(s) in backup set\r\ninput datafile file number=00003 name=\/opt\/oracle\/oradata\/orcl\/undotbs01.dbf\r\ninput datafile file number=00001 name=\/opt\/oracle\/oradata\/orcl\/system01.dbf\r\ninput datafile file number=00002 name=\/opt\/oracle\/oradata\/orcl\/sysaux01.dbf\r\ninput datafile file number=00004 name=\/opt\/oracle\/oradata\/orcl\/users01.dbf\r\ninput datafile file number=00005 name=\/opt\/oracle\/oradata\/orcl\/example01.dbf\r\nchannel ORA_DISK_1: starting piece 1 at 23\/08\/12\r\nchannel ORA_DISK_1: finished piece 1 at 23\/08\/12\r\npiece handle=\/opt\/oracle\/flash_recovery_area\/ORCL\/backupset\/2012_08_23\/o1_mf_nnnd1_INCREMENTAL_EN_COPIA_83do2ztw_.bkp tag=INCREMENTAL EN COPIAS comment=NONE\r\nchannel ORA_DISK_1: backup set complete, elapsed time: 00:02:26\r\nFinished backup at 23\/08\/12\r\n\r\nStarting Control File and SPFILE Autobackup at 23\/08\/12\r\npiece handle=\/opt\/oracle\/flash_recovery_area\/ORCL\/autobackup\/2012_08_23\/o1_mf_s_792093966_83do7h1p_.bkp comment=NONE\r\nFinished Control File and SPFILE Autobackup at 23\/08\/12<\/pre>\n<p>As\u00ed pues vemos como vamos teniendo un juego de <em>image copies<\/em><em> <\/em> de la base de datos que se van actualizando diariamente.<\/p>\n<p>Alguna de las caracter\u00edsticas de este backup son.<\/p>\n<ol>\n<li><strong>Menor tiempo de recuperacion<\/strong>: El tiempo de recuperacion de uno de estos datafiles\u00a0 ser\u00e1 mas corto que el tiempo que empleariamos en restaurarlo desde un backuppiece ya que el level 0 es un backup image copy<\/li>\n<li><strong>Alta ocupacion en disco:<\/strong> Estos ficheros son un image copy,lo que significa que estamos copiando todo el fichero a la FRA, este la ocupaci\u00f3n del datafile al 10% o al 100%<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoy vamos a ver como plantear una estrategia de seguridad distinta a la cl\u00e1sica estrategia de RMAN backupsets , esta nueva estrategia se va a basar en image copies y nos va a requerir mucho mas espacio en disco ( &hellip; <a href=\"http:\/\/clemente.pamplona.name\/dba\/creando-una-estrategia-de-seguridad-con-image-copies\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[246,18],"class_list":["post-143","post","type-post","status-publish","format-standard","hentry","category-backup","tag-backup","tag-image-copies"],"_links":{"self":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/comments?post=143"}],"version-history":[{"count":14,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/143\/revisions"}],"predecessor-version":[{"id":264,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/143\/revisions\/264"}],"wp:attachment":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/media?parent=143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/categories?post=143"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/tags?post=143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}