{"id":1746,"date":"2017-08-23T21:36:52","date_gmt":"2017-08-23T19:36:52","guid":{"rendered":"http:\/\/clemente.pamplona.name\/dba\/?p=1746"},"modified":"2017-08-26T20:10:34","modified_gmt":"2017-08-26T18:10:34","slug":"uso-del-gestor-de-recursos-en-un-cbd-y-pdb","status":"publish","type":"post","link":"http:\/\/clemente.pamplona.name\/dba\/uso-del-gestor-de-recursos-en-un-cbd-y-pdb\/","title":{"rendered":"Uso del gestor de recursos en un CBD y PDB"},"content":{"rendered":"<p>Con la llegada de la 12c se han introducido mejoraras en el manejo de los gestores de recursos, de manera que el  Resource Manager puede ser usado a dos niveles:<br \/>\n\u2022\tCDB:\tGestiona los recursos entre los distintos PDB<br \/>\n\u2022\tPDB: Gestiona los recursos de manera tradicional <\/p>\n<h1> Gesti\u00f3n de los recursos en el CDB: Administrando recursos entre los PDBS<\/h1>\n<p>Algo que puede parecer evidente pero que debemos de decir, es que esta gesti\u00f3n se lleva  a cabo en el  CBD$ROOT,  No se puede poner recursos al CDB$ROOT, igualmente no aparece en el computo de los shares<br \/>\nEl Resource Manager  lleva a cabo esta tarea mediante dos conceptos, shares y l\u00edmites<\/p>\n<ul>\n<li><b>Shares<\/b><br \/>\nLos shares es la manera que tiene de repartir los recursos, a m\u00e1s shares, mas recursos dispone el PDB<br \/>\nEl porcentaje que asigna cada share se obtiene dividiendo el 100% de los recursos entre el numero de shares y multiplic\u00e1ndolo.<\/p>\n<li><b>Limites<\/b><br \/>\nEL otro par\u00e1metro que puedes indicar es el l\u00edmite de utilizaci\u00f3n sobre el global, este l\u00edmite puedes aplicarlo solamente a:<\/p>\n<ul>\n<li>CPU\n<li>Cantidad de ejecuciones paralelas en el servidor\n<\/ul>\n<\/ul>\n<p>[table caption=\u00bbPlanes de recursos\u00bb width=500]<br \/>\nContenedor,shares,utilization limit, PARALLEL SERVER LIMIT<br \/>\nDefault, 1   ,100%, 100%<br \/>\nPDB1   ,4    ,50% , 100%<br \/>\nPDB2   ,1   ,100% ,50%<br \/>\n[\/table]<\/p>\n<h2>\u00bfQu\u00e9 significa un valor de 50% en PARALLEL SERVER LIMIT?<\/h2>\n<p>El  PARALLEL SERVER LIMIT indica un porcentaje, este porcentaje es sobre el valor de inicializaci\u00f3n de la base de datos de PARALLEL_SERVERS_TARGET, as\u00ed pues, si tenemos un valor de 200 en PARALLEL_SERVER_TARGETS tendremos que el PARALLEL_SERVER_LIMITS ser\u00e1 de 0.50*200=100 procesos paralelos.<\/p>\n<p>No todos los PDBs tienen por que tener una pol\u00edtica de asignaci\u00f3n, aquellos que no la tengan ir\u00e1n a parar a el \u201cDefault allocation\u201d.<br \/>\nLas directivas sobre los PDBs se han de crear en el momento de CREATE_CDB_PLAN_DIRECTIVE, y un PDB solamente puede ser afectado por una directiva.<\/p>\n<h2>\u00bfCu\u00e1les son los par\u00e1metros por defecto de la directiva \u201cDefault allocation\u201d?<\/h2>\n<p>Si no especificas ninguna pol\u00edtica espec\u00edfica para un PDB ir\u00e1 a la de por defecto con :<br \/>\nShares=1<br \/>\nUtilization_limit=100<br \/>\nParallel_srever_limit=100<\/p>\n<h1> Pasos para crear\/modificar un plan <\/h1>\n<p>Para modificarlos el paquete DMNS_RESOURCE_MANAGER tiene su propia directiva llamada   UPDATE_CDB_DEFAULT_DIRECTIVE<\/p>\n<h3>Pasos para la creacion<\/h3>\n<p>Al igual que en las BBDD cl\u00e1sicas hay que:<br \/>\n1.\tCrear el pending area<br \/>\n2.\tCrear el plan<br \/>\n3.\tCrear directivas (DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE)<br \/>\n4.\tValidar el pending area<br \/>\n5.\tSubmit el pending area <\/p>\n<h3>Habilitar el plan <\/h3>\n<p>Al igual que en las versiones antiguas <\/p>\n<pre>\r\nALTER SYSTEM SET RESOURCE_MANAGER_PLAN=\u2019myplan;\r\n<\/pre>\n<p>Se puede deshabilitar el plan quitando la variable de inicializaci\u00f3n<\/p>\n<pre>\r\nALTER SYSTEM SET RESOURCE_MANAGER_PLAN=\u2019\u2019;\r\n<\/pre>\n<h1>PDB: Administracion de recursos dentro de los PDB<\/h1>\n<p>La administracion de recursos dentro del PDB se lleva a cabo igual que se llevaba dentro de las bases de datos tradicionales, teniendo en cuenta:<\/p>\n<ul>\n<li>Ha de ser un single level resource plan, ya no puede ser multilevel\n<li>Tienes solamente 8 grupos de consumidores ( en el no-cdb son 32)\n<li>No puedes tener subplans dentro del plan ( en el no-dbs se podia)\n<\/ul>\n<p>Hay que tener en cuenta que hay dos par\u00e1metros que cambian de nombre:<br \/>\nMAX_UTILIZATION_LIMIT pasa a ser UTILIZATION_LIMIT<br \/>\nPARALLEL_TARGET_PERCENTAGE pasa a ser  PARALLEL_SERVER_LIMIT<\/p>\n<p>Es importante que, para poder crear una politica de gestor de recursos dentro de un PDB,la pol\u00edtica del CDB para los recursos que quieres administrar debe de debe de satisfacer :<br \/>\n<b>CPU<\/b><\/p>\n<ul>\n<li>La directiva debe de tener definido el valor de SHARES para ese PDB\n<li>La directiva debe de tener definido el valor de UTILIZATION_LIMIT a menos del 100%\n<\/ul>\n<p><b> PARALLEL EXECUTION<\/b><\/p>\n<ul>\n<li>Las dos de arriba de CPU\n<li>La directiva debe de tener definido el valor de PARALLEL_SERVER_LIMIT a menos del 100%\n<\/ul>\n<h1>Notas finales del resource manager <\/h1>\n<p>Se ha introducido un  Nuevo grupo de consumidores llamado LOG_ONLY que sirve para usarlo en como switch group en los casos en los que  merely want to log the runaway query but  don\u2019t want to change its consumer group or perform any other action<br \/>\nPuedes ver lo definido en las vistas<br \/>\nV$RSRC_PLAN<br \/>\nDBA_CDB_RSRC_PLANS<\/p>\n<p>Otra de las cosas que ofrece el RESOURCE MANAGER es que ha a\u00f1adido nuevas columnas en  la vista V$SQL_MONITOR <\/p>\n<ul>\n<li>RM_LAST_ACTION The most recent action taken by the Resource Manager, such as cancelling a SQL execution or killing a session\n<li>RM_LAST_ACTION_REASON The reason for the most recent action taken by theResource Manager on this SQL operation, such as SWITCH_CPU_TIME orSWITCH_ELAPSED_TIME\n<li>RM_LAST_ACTION_TIME The time of the most recent action taken by the Resource Manager on this SQL operation\n<li>RM_CONSUMER_GROUP The current consumer group for this SQL operation\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Con la llegada de la 12c se han introducido mejoraras en el manejo de los gestores de recursos, de manera que el Resource Manager puede ser usado a dos niveles: \u2022 CDB: Gestiona los recursos entre los distintos PDB \u2022 &hellip; <a href=\"http:\/\/clemente.pamplona.name\/dba\/uso-del-gestor-de-recursos-en-un-cbd-y-pdb\/\">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":[60,744,262],"tags":[254,808,19],"class_list":["post-1746","post","type-post","status-publish","format-standard","hentry","category-12c","category-cdbpdb","category-resource-manager","tag-12c","tag-1z0-060","tag-gestor-recursos"],"_links":{"self":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1746","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=1746"}],"version-history":[{"count":8,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1746\/revisions"}],"predecessor-version":[{"id":1754,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1746\/revisions\/1754"}],"wp:attachment":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/media?parent=1746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/categories?post=1746"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/tags?post=1746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}