{"id":565,"date":"2013-05-25T22:00:13","date_gmt":"2013-05-25T20:00:13","guid":{"rendered":"http:\/\/clemente.pamplona.name\/dba\/?p=565"},"modified":"2013-05-24T12:34:46","modified_gmt":"2013-05-24T10:34:46","slug":"problemas-con-sysaux-ocupacion-de-awrs","status":"publish","type":"post","link":"http:\/\/clemente.pamplona.name\/dba\/problemas-con-sysaux-ocupacion-de-awrs\/","title":{"rendered":"Problemas con SYSAUX, ocupaci\u00f3n de AWRs"},"content":{"rendered":"<p>Hoy vamos a lidiar con un problema muy com\u00fan en las bases de datos de Oracle que es el tama\u00f1o del tablespace SYSAUX.<br \/>\nEl tablespace SYSAUX es uno de los tablespaces especiales de la base de datos con el que no podemos jugar alegremente, la principal caracter\u00edstica que tiene de cara a la administraci\u00f3n de base de datos es que ,el espacio que le demos se ha perdido, es decir, no va ha haber forma de hacerlo mas peque\u00f1o (al menos en mi caso siempre ha habido un \u00abpero\u00bb que lo imposibilita).<\/p>\n<p>Como dec\u00eda al principio es junto con el SYSTEM un tablespace muy especial, y los motivos de su tama\u00f1o pueden ser varios,hoy vamos a centrarnos en como vaciar un poco el tama\u00f1o debido el AWR.<\/p>\n<p>Lo que, lo primero que tendremos que hacer es ver cual es el componente que esta llen\u00e1ndonos el tablespace.<br \/>\nPara ello tenemos la consulta<\/p>\n<pre>set linesize 100;\r\ncolumn OCCUPANT_NAME format a20;\r\ncolumn OCCUPANT_DESC format a60;\r\ncolumn Mb format 999.99\r\nSELECT occupant_name,space_usage_kbytes\/1024 Mb,occupant_desc\r\n  FROM V$SYSAUX_OCCUPANTS\r\n  order by space_usage_kbytes  desc;\r\n\r\nOCCUPANT_NAME             MB OCCUPANT_DESC\r\n-------------------- ------- ------------------------------------------------------------\r\nSM\/AWR                780.06 Server Manageability - Automatic Workload Repository\r\nSM\/OPTSTAT            333.00 Server Manageability - Optimizer Statistics History\r\nLOGMNR                 91.63 LogMiner\r\nXDB                    85.50 XDB\r\nSM\/ADVISOR             65.56 Server Manageability - Advisor Framework\r\nWM                      6.38 Workspace Manager\r\nSM\/OTHER                6.25 Server Manageability - Other Components\r\nSMON_SCN_TIME           5.31 Transaction Layer - SCN to TIME mapping\r\nEXPRESSION_FILTER       3.88 Expression Filter System\r\nJOB_SCHEDULER           2.81 Unified Job Scheduler\r\nEM_MONITORING_USER      2.75 Enterprise Manager Monitoring User\r\nSQL_MANAGEMENT_BASE     1.69 SQL Management Base Schema\r\nPL\/SCOPE                1.56 PL\/SQL Identifier Collection\r\nXSOQHIST                1.38 OLAP API History Tables\r\nAO                      1.38 Analytical Workspace Object Table\r\nLOGSTDBY                1.38 Logical Standby\r\nSTREAMS                 1.00 Oracle Streams\r\nAUTO_TASK                .31 Automated Maintenance Tasks\r\nORDIM\/ORDDATA            .00 Oracle Multimedia ORDDATA Components\r\nORDIM\/ORDPLUGINS         .00 Oracle Multimedia ORDPLUGINS Components\r\nORDIM\/SI_INFORMTN_SC     .00 Oracle Multimedia SI_INFORMTN_SCHEMA Components\r\nHEMA\r\nEM                       .00 Enterprise Manager Repository\r\nTEXT                     .00 Oracle Text\r\nULTRASEARCH              .00 Oracle Ultra Search\r\nORDIM                    .00 Oracle Multimedia ORDSYS Components\r\nSDO                      .00 Oracle Spatial\r\nSTATSPACK                .00 Statspack Repository\r\nTSM                      .00 Oracle Transparent Session Migration User\r\nXSAMD                    .00 OLAP Catalog\r\nAUDIT_TABLES             .00 DB audit tables\r\nULTRASEARCH_DEMO_USE     .00 Oracle Ultra Search Demo User\r\n\r\n<\/pre>\n<p>Como podemos ver, son muchas las cosas que se guardan en SYSAUX, pero, en nuestro caso, est\u00e1 bastante claro que, la mayor\u00eda de la ocupaci\u00f3n es debida a los AWR.<\/p>\n<p>Nuestro siguientes pasos van a ser:<\/p>\n<ul>\n<li>Determinar que es lo que nos ocupa el espacio<\/li>\n<li>Mirar si la causa esta en la retenci\u00f3n<\/li>\n<li>Mirar si la causa est\u00e1 en los AWR guardados<\/li>\n<li>Mirar si la causa est\u00e1 en las lineas \u00abhuerfanas\u00bb de las Active Session History<\/li>\n<\/ul>\n<p>Nuestro objetivo va a ser <em>liberar espacio dentro de SYSAUX<\/em> , no disminuir el tama\u00f1o de este tablespace ya que, como dec\u00eda al principio esto es pr\u00e1cticamente una misi\u00f3n imposible.<\/p>\n<h1>Determinar que es lo que ocupa espacio<\/h1>\n<p>El siguiente paso ser\u00e1 el buscar la informaci\u00f3n del AWR, para ello el propio Oracle tiene una utilidad que podemos llamar desde sqlplus<\/p>\n<pre>\r\n SQL> @$ORACLE_HOME\/rdbms\/admin\/awrinfo.sql\r\n\r\n<\/pre>\n<p>Este sql nos genera un informe con unos apartados muy interesantes que nos servir\u00e1n para encontrar de donde liberar espacio.<\/p>\n<h1>Mirar si la causa esta en la retenci\u00f3n<\/h1>\n<pre>\r\n************************************                                                                         \r\n(2) Size estimates for AWR snapshots                                                                          \r\n*************************************                                                                                                                                                                                    \r\n| Estimates based on 60 mins snapshot INTERVAL:                                                               \r\n|    AWR size\/day                           31.0 MB (1,324 K\/snap * 24 snaps\/day)                             \r\n|    AWR size\/wk                           217.2 MB (size_per_day * 7) per instance                                                                                                                                     \r\n| Estimates based on 24 snaps in past 24 hours:                                                               \r\n|    AWR size\/day                           31.0 MB (1,324 K\/snap and 24 snaps in past 24 hours)              \r\n|    AWR size\/wk                           217.2 MB (size_per_day * 7) per instance                           \r\n|<\/pre>\n<p>Aqui podemos ver el tama\u00f1o estimado que ocupa nuestra informaci\u00f3n de los AWR, en funci\u00f3n del periodo de retencion que tengamos de los AWR tendremos la ocupaci\u00f3n en la base de datos.<br \/>\nCuando sabemos cuanto ocupa cada AWR y cuanto hacemos al d\u00eda, tenemos que saber cuantos dias guardamos para ver si la ocupaci\u00f3n es correcta, para ello haremos :<\/p>\n<pre>\r\nSQL> SELECT retention FROM dba_hist_wr_control;\r\n\r\nRETENTION\r\n---------------------------------------------------------------------------\r\n+00007 00:00:00.0\r\n<\/pre>\n<p>En mi caso por ejemplo, la retencion es de 7 d\u00edas.<\/p>\n<h1>Mirar si la causa est\u00e1 en los AWR guardados<\/h1>\n<p>Otro de los problemas que podemos tener es que el n\u00famero de AWR que mantenemos guardados por razones hist\u00f3ricas en la instancia, en el informe que acabamos de obtener tambi\u00e9n aparece un apartado con las \u00faltimas 50 snapshots de la base de datos, el eliminar im\u00e1genes antiguas tambi\u00e9n nos ayudar\u00e1 a liberar espacio.<\/p>\n<li>Mirar si la causa est\u00e1 en las lineas \u00abhuerfanas\u00bb de las Active Session History<\/li>\n<p>Algunas veces el Active Session History (ASH) guarda filas que no pertenecen a ning\u00fan AWR,esto hace que el ASH ocupe gran parte del espacio dedicado al AWR, la forma de saber si esto nos est\u00e1 sucediendo es mirar nuestro informe en el apartado<\/p>\n<pre>\r\n\r\n**********************************\r\n(3a) Space usage by AWR components (per database)\r\n**********************************\r\n\r\nCOMPONENT        MB  % AWR  KB_PER_SNAP MB_PER_DAY MB_PER_WEEK TABLE% : INDEX%                                \r\n--------- --------- ------ ------------ ---------- ----------- ----------------                               \r\nFIXED         131.5   50.6          670       15.7       109.9    52% : 48%                                   \r\nEVENTS         37.9   14.6          193        4.5        31.7    43% : 57%                                   \r\nSQLPLAN        25.0    9.6          127        3.0        20.9    72% : 28%                                   \r\nASH            18.3    7.0           93        2.2        15.3    89% : 11%                                   \r\nSQL            11.0    4.2           56        1.3         9.2    60% : 40%                                   \r\nSPACE          10.3    4.0           53        1.2         8.6    61% : 39%                                   \r\nSQLTEXT         5.2    2.0           26        0.6         4.3    96% : 4%                                    \r\nSQLBIND         0.8    0.3            4        0.1         0.6    50% : 50%                                   \r\nRAC             0.6    0.2            3        0.1         0.5    50% : 50%                                   \r\n<\/pre>\n<p>Si la l\u00ednea de <\/b>ASH<\/b> ocupa mas de un 1% probablemente sea la causa de nuestra ocupaci\u00f3n.<br \/>\nMediante la siguiente consulta podemos saber si es nuestro caso.<\/p>\n<pre>\r\nSELECT COUNT(*) huerfanas\r\nFROM wrh$_active_session_history a\r\nWHERE NOT EXISTS\r\n  (SELECT *\r\n  FROM wrm$_snapshot\r\n  WHERE snap_id       = a.snap_id\r\n  AND dbid            = a.dbid\r\n  AND instance_number = a.instance_number\r\n  );\r\n\r\n\r\n HUERFANAS\r\n----------\r\n       116\r\n\r\n<\/pre>\n<p>Si aparece alguna l\u00ednea podemos borrarlas con <\/p>\n<pre>\r\ndelete  \r\nFROM wrh$_active_session_history a\r\nWHERE NOT EXISTS\r\n  (SELECT *\r\n  FROM wrm$_snapshot\r\n  WHERE snap_id       = a.snap_id\r\n  AND dbid            = a.dbid\r\n  AND instance_number = a.instance_number\r\n  );\r\n<\/pre>\n<p>Con estas tres acciones, si elproblema de laocupaci\u00f3n del SYSAUX es debido a el AWR tendremos que haberpodido liberar el espacio suficiente para que la base de datos pueda seguir trabajando sin problemas de espacio.<\/p>\n<p>A\u00fan as\u00ed, el tema de la ocupaci\u00f3n del SYSAUX es un tema bastante complejo, con lo que, como siempre, el mejor sitio para buscar soluciones es soporte de Oracle, aqu\u00ed ten\u00e9is un peque\u00f1o listado de algunas de las notas que puede que os aplique  y cuyo contenido ten\u00e9is en la p\u00e1gina de soporte<\/p>\n<ul>\n<li>AWR Data Uses Significant Space in the SYSAUX Tablespace [ID 287679.1]<\/li>\n<li>Suggestions if your SYSAUX Tablespace grows rapidly or too large [Document 1292724.1]<\/li>\n<li>General Guidelines for SYSAUX Space Issues [Document 552880.1]<\/li>\n<li>SYSAUX Grows Because Optimizer Stats History is Not Purged [Document 1055547.1]<\/li>\n<li>Space issue in Sysaux tablespace due to Unexpected AWR size [Document 1218413.1]<\/li>\n<li>Space Management In Sysaux Tablespace with AWR in Use [Document 287679.1]<\/li>\n<li>SYSAUX Tablespace Grows Heavily Due To AWR [Document 852028.1]<\/li>\n<\/ul>\n<p>O alguna entrada muy interesante en algunos blogs como es<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"BzaowtPJ8B\"><p><a href=\"https:\/\/mwidlake.wordpress.com\/2011\/06\/02\/why-is-my-sysaux-tablespace-so-big-statistics_levelall\/\">Why is my SYSAUX Tablespace so Big? Statistics_level=ALL<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;Why is my SYSAUX Tablespace so Big? Statistics_level=ALL&#8221; &#8212; Martin Widlake&#039;s Yet Another Oracle Blog\" src=\"https:\/\/mwidlake.wordpress.com\/2011\/06\/02\/why-is-my-sysaux-tablespace-so-big-statistics_levelall\/embed\/#?secret=50PupkJzXI#?secret=BzaowtPJ8B\" data-secret=\"BzaowtPJ8B\" width=\"584\" height=\"329\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoy vamos a lidiar con un problema muy com\u00fan en las bases de datos de Oracle que es el tama\u00f1o del tablespace SYSAUX. El tablespace SYSAUX es uno de los tablespaces especiales de la base de datos con el que &hellip; <a href=\"http:\/\/clemente.pamplona.name\/dba\/problemas-con-sysaux-ocupacion-de-awrs\/\">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":[11,60,5,4,3],"tags":[96,95,22],"class_list":["post-565","post","type-post","status-publish","format-standard","hentry","category-11g","category-12c","category-em","category-tablespaces","category-tunning","tag-awr","tag-sysaux","tag-tablespace"],"_links":{"self":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/565","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=565"}],"version-history":[{"count":20,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/565\/revisions"}],"predecessor-version":[{"id":585,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/565\/revisions\/585"}],"wp:attachment":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/media?parent=565"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/categories?post=565"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/tags?post=565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}