{"id":1862,"date":"2018-02-14T21:12:40","date_gmt":"2018-02-14T20:12:40","guid":{"rendered":"http:\/\/clemente.pamplona.name\/dba\/?p=1862"},"modified":"2018-02-15T18:53:16","modified_gmt":"2018-02-15T17:53:16","slug":"datafiles-unamed-en-dataguard","status":"publish","type":"post","link":"http:\/\/clemente.pamplona.name\/dba\/datafiles-unamed-en-dataguard\/","title":{"rendered":"Datafiles  UNAMED en dataguard"},"content":{"rendered":"<p>Hoy vamos a ver un a peque\u00f1a  entrada de un error bastante com\u00fan en dataguard. <\/p>\n<p>El problema se da cuando la base de datos standby deja de aplicar  <\/p>\n<pre>\r\nDGMGRL> show configuration verbose\r\nConfiguration - test\r\n  Protection Mode: MaxPerformance\r\n  Members:\r\n  DBTEST        - Primary database\r\n    DBTEST_STBY   - Physical standby database\r\n      Error: ORA-16810: multiple errors or warnings detected for the database\r\n<\/pre>\n<p>Ante un error tan gen\u00e9rico como este, lo primero que hemos de hacer es buscar en el alert.log de la base de datos del standby.<br \/>\nEn este alert.log ya vemos un error mas claro <\/p>\n<pre>\r\nErrors in file \/u01\/app\/oracle\/diag\/rdbms\/dbtest_stby\/dbtest\/trace\/dbtest_mrp0_3972.trc:\r\nORA-01111: name for data file 21 is unknown - rename to correct file\r\nORA-01110: data file 21: '\/u01\/app\/oracle\/product\/12.1.0.2\/dbhome_1\/dbs\/UNNAMED0021'\r\nORA-01157: cannot identify\/lock data file 21 - see DBWR trace file\r\nORA-01111: name for data file 21 is unknown - rename to correct file\r\nORA-01110: data file 21: '\/u01\/app\/oracle\/product\/12.1.0.2\/dbhome_1\/dbs\/UNNAMED0021'\r\n<\/pre>\n<p>Que es ese datafile que aparece en el <i> $ORACLE_HOME\/dbs <\/i> llamado <b> UNNAMED<\/b>?<\/p>\n<p>La respuesta nos la da oracle en la nota  <i>ID 739618.1.<\/i>.<br \/>\nEstos ficheros aparecen en el equipo de standby cuando se ha creado un datafile en el primario y el secundario no ha podido crearlo (por falta de espacio, error de configuraci\u00f3n &#8230;. ) <\/p>\n<h1> Como lo solucionamos ?<\/h1>\n<p>Lo primero que tenemos que hacer es cambiar el  STANDBY_FILE_MANAGEMENT a MANUAL ya que vamos a modificar manualmente la ubicaci\u00f3n de ficheros.<\/p>\n<pre>\r\nALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL;\r\n<\/pre>\n<p>Tras esto, identificaremos en la base de datos primary cual es la ubicaci\u00f3n correcta del fichero, si miramos en el extracto anterior del alert.log, veremos que se trata del datafile 21, as\u00ed pues, iremos a la base de datos primary y veremos donde esta ubicado .<\/p>\n<pre>\r\nSQL>   select file_name,tablespace_name,bytes\/1024\/1024\/1024 Gb\r\n  from dba_data_files where file_id=21;\r\n\r\nFILE_NAME  \t\t                      TABLESPACE_NAME      GB \r\n----------------------------------------------------------------\r\n+DATA_01\/DBTEST\/DATAFILE\/testdf.791.968123327   TESTDF           5\r\n<\/pre>\n<p>Ahora tenemos que ir al standby y mover el fichero UNNAMED a su lugar correcto, para ello no usaremos el <b> MOVE<\/b> sino el comando <b> CREATE DATAFILE  AS <\/b><\/p>\n<pre>\r\nalter database create datafile \r\n'\/u01\/app\/oracle\/product\/12.1.0.2\/dbhome_1\/dbs\/UNNAMED0021'\r\n as '+DATA_01' ;\r\n<\/pre>\n<p>Como pod\u00e9is  ver, no ha indicado el nombre que debe de tener el datafile, solamente la ruta, esto es por que tenemos definido el parametro <b>db_recovery_file_dest<\/b> que nos lo dejara con el nombre correcto.<\/p>\n<h1> Posible errores <\/h1>\n<p>Efectivamente, con el comando anterior no va a funcionar, ya que nos dara el error <\/p>\n<pre>\r\nERROR at line 1:\r\nORA-01136: specified size of file 204 (80 blocks) is less than original size of\r\n655360 blocks\r\nORA-01111: name for data file 204 is unknown - rename to correct file\r\nORA-01110: data file 204:\r\n'\/u01\/app\/oracle\/product\/12.1.0.2\/dbhome_1\/dbs\/UNNAMED0021'\r\n<\/pre>\n<h2>Que hemos echo mal ?<\/h2>\n<p>No hemos echo nada mal, lo que ocurre es que cuando la ubicaci\u00f3n de destino es dentro el ASM tendremos que indicarle el tama\u00f1o exacto del fichero .<br \/>\nEn el alert nos ha indicado que el tama\u00f1o es de <b>655360 blocks<\/b><br \/>\nSi miramos el tama\u00f1o de bloque que tenemos :<\/p>\n<pre>\r\nSQL> show parameter block_size\r\nNAME               TYPE        VALUE\r\n------ --------------------------------------\r\ndb_block_size     integer       8192\r\n<\/pre>\n<p>Llevando  a cabo una peque\u00f1a operacion aritm\u00e9tica   655360 *8192=5368709120<\/p>\n<p>Ya podemos ejecutar el comando completo <\/p>\n<pre>\r\nalter database create datafile \r\n'\/u01\/app\/oracle\/product\/12.1.0.2\/dbhome_1\/dbs\/UNNAMED0021' \r\nas '+DATA_01'size 5368709120;\r\n<\/pre>\n<p>Con esto tenemos el problema solucionado.<\/p>\n<p>Volvemos a poner el standby en modo management auto <\/p>\n<pre>\r\nALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;\r\n<\/pre>\n<p>Y activamos el broker de nuevo desde el primario. <\/p>\n<pre>\r\nDGMGRL> show configuration verbose\r\nConfiguration - test\r\n  Protection Mode: MaxPerformance\r\n  Members:\r\n  DBTEST        - Primary database\r\n    DBTEST_STBY   - Physical standby database\r\n      Error: ORA-16810: multiple errors or warnings detected for the database\r\n\r\nDGMGRL> enable database 'DBTEST_STBY'\r\nDisabled.\r\nDGMGRL> enable database 'DBTEST_STBY'\r\nEnabled.\r\nDGMGRL> show configuration verbose\r\nConfiguration - test\r\n  Protection Mode: MaxPerformance\r\n  Members:\r\n  DBTEST        - Primary database\r\n    DBTEST_STBY   - Physical standby database\r\n.\r\n.\r\n\r\nConfiguration Status:\r\nSUCCESS\r\n\r\n<\/pre>\n<p>Como siempre , mas informaci\u00f3n en las notas de soporte<\/p>\n<ul>\n<li>How to resolve ORA-01111 ORA-01110 ORA-01157 in a physical standby database (Doc ID 1416554.1)\n<li>Background Media Recovery terminated with ORA-1274 after adding a Datafile (Doc ID 739618.1)\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Hoy vamos a ver un a peque\u00f1a entrada de un error bastante com\u00fan en dataguard. El problema se da cuando la base de datos standby deja de aplicar DGMGRL> show configuration verbose Configuration &#8211; test Protection Mode: MaxPerformance Members: DBTEST &hellip; <a href=\"http:\/\/clemente.pamplona.name\/dba\/datafiles-unamed-en-dataguard\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,60,52,66],"tags":[873,859,875,877,871],"class_list":["post-1862","post","type-post","status-publish","format-standard","hentry","category-11g","category-12c","category-dataguard","category-errores-ora","tag-dataguard","tag-ora-01110","tag-ora-1136","tag-ora-16810","tag-unnamed"],"_links":{"self":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1862","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=1862"}],"version-history":[{"count":10,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1862\/revisions"}],"predecessor-version":[{"id":1875,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1862\/revisions\/1875"}],"wp:attachment":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/media?parent=1862"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/categories?post=1862"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/tags?post=1862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}