Oracle Live

21/04/2016

CAP 6.- Administration and Management New Features

Filed under: 1z0-060,Certificaciones — mogukiller @ 1:13 pm

En este cápitulo se muestran las mejoras en:

  • Resource Manager en arquitecturas multitenant.
  • Oracle Smart Flash Cache.
  • Mejoras en la gestión de indices y tablas.
  • Nuevos varchar2 de 32K

1.- Resource Manager en Multitenant

La gestión de recursos en una arquitectura multitenant se puede hacer a dos niveles. Al nivel del CDB, donde se dividen los recursos entre todos lod PDB y a nivel de PDB donde se gestionan los recursos de forma tradicional.

Gestion de recursos a entre PDBs: Para gestionar los recursos entre las PDBs de una base de datos se añaden dos nuevos conceptos shares limits (se puede traducir como porcion) y utilization limits. Estos parametros se pueden utilizar en conjunto o por separado.

El paquete que gestiona los recursos entre PDBs es DBMS_RESOURCE_MANAGER, será la funcion CREATE_CDB_PLAN_DIRECTIVE la que gestione el share que le toca a cada PDB, con el mecanismo de crear directivas para cada PDB.

Las directivas en un CDB gestionan dos tipos de recursos:

  • CPU utilizado por una PDB.
  • Numero de servidores ejecutando en paralelo.

Como hemos dicho el CDB utiliza shared values para indicar que porcion de los recursos le toca a cada PDB y utiliza utilization limits para limitar el uso que hace de ese recurso asignado.

Creo que ni yo entiendo muy bien el concepto de share, intentaremos explicarlo. Supongamos que tengo un entorno con 3 PDB y le añado un share a cada una, por lo que a cada PDB le correspondera un 33% del recurso asignado. Pero supongamos ahora que le quiero dar mas relevancia a una PDB, pues le asigno 2 share en vez de 1. En este caso esta pdb tendria el 50% de la utilizacion del recurso, mientras que las otras dos tendrían solo el 25%.

El utilization limit, es mucho mas simple que el anterior, por que de los recursos totales le decimos que utilice un %.

Estos dos parametros pueden combinarse para hacer directivas mas complejas.

Los valores por defecto son:

  • Shares: 1 a cada PDB
  • Utilization_limit: 100%
  • Parallel_server_limit: 100%

Cuando se conecta una nueva PDB no se le asigna una nueva directiva, se le asigna la que este por defecto.

Para crear una directiva tenemos que seguir los siguientes pasos:

  • Crear una pending area con la funcion CREATE_PENDING_AREA.
  • Crear el resource plan, unicamente le asignamos un nombre. CREATE_CDB_PLAN.
  • Creamos la directiva, donde indicamos la PDB y los shares o los utilization limits que queramos. CREATE_CDB_PLAN_DIRECTIVE
  • Se valida la pending area. VALIDATE_PENDING_AREA
  • Fijamos el resultado. SUBMIT_PENDING_AREA.
  • Para activar el resource plan haremos:

SQL> alter system set resource_plan='plan diario';

Adicionalmente podemos asignar un resource plan a una ventana. Por lo que dependiendo de la hora o el día, podemos tener activa un resource plan u otro.

Se puede utilizar la vista DBA_RSRCE_PLAN_DIRECTIVES para ver las directivas definidas.

Gestion de recursos dentro de una PDB. La gestion de recursos dentro de una PDB es la forma tradicional que todos conocemos. Aunque existen algunas diferencias con el modo tradicional:

  • En una PDB no se puede tener un resource plan multinivel.
  • Se pueden tener hasta 8 grupos de usuarios.
  • No se puden tener sub-plans dentro de un plan.

Los recursos a gestionar son los mismos, cpu y procesos en paralelo.

Se puede utilizar la vista V$RSRC_PLAN para ver los resorce plan definidos.

En 12c se introducen dos nuevos parametros para gestionar el cambio de consumer group dentro de un plan.

  • switch_to_logical: hace que salte un trigger cuando se exceden el numero de operaciones de I/O
  • switch_elapset_time: que gestionara el tiempo de ejecucion de las sentencias.

2.- Procesos multithread

Con la version 12c algunos procesos de background de Oracle utilizan multithread, con el objetivo de reducir el coste de CPU y de memoria. Se estima que con esta nueva arquitectura se esta reduciendo a la mitad el consumo de memoria.

Los procesos de background que no utilizan multithread son: PMON, DBW, VKTM y PSP. El resto de procesos de background utilizarian ejecución por hilos. Por ejemplo, las nuevas conexiones que se establezcan en la base de datos se haran como un therad del server process.

Para configurar una instancia en multithread hay que configurar el parametro THREADED_EXECUTION  a TRUE. Con esta configuracion no estan permitidos las autienticaciones por sistema operativo.

La relacion entre el PID del proceso y sus hilos se refleja en la V$PROCESS y en las columnas SPID y STID

3.- Database Smart Flash Cache

Database Smart Flash Cache comienza con la version 11.2 y consistia en aumentar la capacidad del buffer cache con un dispositivo flash.

En la versión 11g Oracle unicamente permitia configurar la Smart Cache en un dispositivo flash, lo que obligaba a que este tuviese un gran tamaño. Con 12c podemos configurar hasta 16 dispositivos diferentes.

Para configurar la Flash Cache tenemos que configurar dos parametros, db_flash_cache_file, donde configuramos nuestros dispositivos flash y db_flash_cache_size donde le asignamos el valor que va a tener la Flash Cache. Los dispositivos flash se pueden especificar como path de sistema operativo o como diskgroup de ASM.

En 12c se introduce una modificacion en el algoritmo LRU que permite la opcion de in-memory Parallel Query. Este algoritmo consiste en particionar la buffer cache incluyendo la flash cache. Ademas, es necesario, configurar el parametro PARALLEL_DEGREE_POLICY a AUTO, para que se configure de forma automatica el grado de paralelismo.

4.- Mejoras en la gestión de indices y tablas.

4.1.- Mejoras en la gestion de tablas

Se pueden crear columnas invisibles que unicamente muestren su valor cuando se especifica el nombre de la columna en la query. Existe la opcion de configurar como invisible una columna en cualquier momento. Para insertar valores en una columna invisible es necesario especificar el nombre de las columnas.

Se puede consultar si una columna es invisible en la columna HIDDEN_COLUMN en la vista DBA_TAB_COLS

4.2.- Multiples indices en el mismo grupo de columnas.

Para poder crear indices sobre el mismo juego de columnas se tienen que cumplir una de las siguientes condiciones:

  • Los indices tienen que ser de distinto tipo.
  • Los indices tienen que tener distinta clave de particionamiento.
  • Los indices pueden ser unique y non-unique.

Pero lo mas importante a tener en cuenta es que unicamente un indice puede estar visible a la vez.

5.- Mejoras en las operaciones Online

Online redefinition de tablas con VPD: VPD (Virtual Private Database), es una herramienta que permite gestionar el acceso a nivel de fila. En tablas con politicas VPD  definidas se pueden hacer redefiniciones online. EL paquete que utilizamos es DBMS_REDEFINITION.

OJO: Hay que tener en cuenta que durante la operativa de redefinicion se deshabilitan los triggers que hayan sobre esa tabla.

Nuevas funciones Online: Se puede utilizar la clausula ONLINE en las siguientes operaciones:

  • Drop index.
  • Drop constraint.
  • Alter index unusable.
  • Set unused para una columna.

6.- Mejoras en SQL

Se ha definido que la nueva longitud para los VARCHAR2 sea de 32767 bytes. Se tendrá que configurar el parámetro MAX_STRING_SIZE a EXTENDED. Oracle recomienda que no añadan VARCHAR2 de mas de 4000 bytes.

Se configuran los SecureFiles como almacenamiento por defecto para los LOB.

Row-Limiting: Permite limitar el numero de filas que se muestran en una query. La sintaxis seria:

[OFFSET offset {ROW|ROWS}]
[FECH {FIRST|NEXT} [{rowcount|percent PERCENT}]
{ROW|ROWS} {ONLY | WITH TIES}]

OFFSET son el numero de filas que salta antes de visualizar los resultados.

FECH es el numero de registros que visualiza.

Se puede ver un ejemplo práctico aqui

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: