Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12c

4,522 views

Published on

Descripción:
What/If en RAC
Instancias en cascada en Dataguard
Recuperación de tablas
Cuando Usar "In-Memory" y cuando no
EM12cR4 y su AWR Warehouse

Published in: Technology
  • Be the first to comment

Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12c

  1. 1. Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12c Presentado por : Gustavo René Antúnez DBA Team Lead Noviembre, 2014
  2. 2. 2 • 15 Years of Data infrastructure management consulting • 200+ Top brands • 6000+ databases under management • Over 200 DBA’s, in 26 countries • Top 5% of DBA work force, 9 Oracle ACE’s, 2 Microsoft MVP’s • Oracle, Microsoft, MySQL partners, Netezza, Hadoop and MongoDB plus UNIX Sysadmin and Oracle apps About Pythian
  3. 3. #PythianLife • Flexible Environment – Work remotely from anywhere in the world.Flexible hours • Outstanding People: – Work with the industry top minds-­‐in fact, the top 5%. • Career growth and development: – Enhance existing skills or learn new ones.Work with leading-­‐edge technologies. Experiment and explore using our in-­‐house sandbox. Generous training allowance . Professional development days. Internal speaker series. • Fun, fun ,fun – Blog during work hours-­‐please ! Enjoy monthly cheese tastings with our resident cheese sommelier. Take a day off and volunteer for your favourite charity. 3
  4. 4. De Donde Vengo –Oracle DBA • Empece con la Version 9.2 en 2004 – Fanatico de Películas – Amante de la música – Trayendo lo mejor de México (Mexihtli) para el resto del mundo y en el proceso de fotografiándolo :) – reneantunez.com –@grantunez 4
  5. 5. ¿Cómo llegaste a ser un DBA? 5
  6. 6. Empleo Más Feliz de 2014! 6 http://www.forbes.com/sites/susanadams/2014/03/20/the-happiest-and-unhappiest-jobs-in-2014/ Equilibrio trabajo-vida Relación con el jefe y compañeros de trabajo Tareas diarias Recursos de empleo El campo crecerá en un 15% entre 2012 y 2022 DBA puede ser el factor clave del éxito
  7. 7. Oracle Real Application Cluster Evaluación "What-If" de un comando crsctl con Oracle Clusterware • Arquitectura que tiene una relación de una base de datos para muchas Instancias • Todos los archivos de datos, archivos de control y redologs deben estar en discos con que sean “cluster-­‐aware" • Un hilo de redo por instancia • Si se utiliza Automatic Undo Management también se requieren un tablespace UNDO por instancia 7 RAC Cluster DBB DBB DBB ASM ASM ASM Node2 Node3 ASM Disks Node1 Public Network Storage Network ASM Network CSS Network Global Data Services – Service Failover / Load Balancing
  8. 8. Oracle Real Application Cluster Evaluación "What-If" de un comando crsctl con Oracle Clusterware • Oracle Clusterware está manejado por Cluster Ready Services (CRS) que consta de dos componentes clave • Oracle Cluster Registry (OCR) .-­‐ Registra y mantiene la información de clúster y la pertenencia del nodo • Voting Disk .-­‐ Pregunta constantemente la información del “latido del corazón” de todos los nodos cuando el cluster se está ejecutando, y actúa como un desempate durante fallas de comunicación. 8
  9. 9. Oracle Real Application Cluster Evaluación "What-If" de un comando crsctl con Oracle Clusterware [oracle@oel6-112-rac1 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources ———————————————————————————————————————— … ora.asm 1 ONLINE ONLINE oel6-112-rac1 STABLE 2 ONLINE ONLINE oel6-112-rac2 STABLE ora.proxy_advm ONLINE ONLINE oel6-112-rac1 STABLE ONLINE ONLINE oel6-112-rac2 STABLE ora.scan1.vip 1 ONLINE ONLINE oel6-112-rac2 STABLE ora.scan2.vip 1 ONLINE ONLINE oel6-112-rac1 STABLE ora.scan3.vip 1 ONLINE ONLINE oel6-112-rac1 STABLE 9
  10. 10. Oracle Real Application Cluster Evaluación "What-If" de un comando crsctl con Oracle Clusterware [oracle@oel6-112-rac1 ~]$ crsctl eval fail resource ora.asm Stage Group 1: -------------------------------------------------------------------------------- Stage Number Required Action -------------------------------------------------------------------------------- 1 N Create new group (Stage Group = 2) Y Resource 'ora.asm' (1/1) will be in state[ONLINE|INTERMEDIATE] on server [oel6-112-rac1] Y Resource 'ora.asm' (2/1) will be in state[ONLINE|INTERMEDIATE] on server [oel6-112-rac2] -------------------------------------------------------------------------------- Stage Group 2: -------------------------------------------------------------------------------- Stage Number Required Action -------------------------------------------------------------------------------- 1 N Resource 'ora.proxy_advm' (oel6-112-rac2) will be in state [ONLINE|INTERMEDIATE] on server [oel6-112-rac2] 10
  11. 11. Oracle Real Application Cluster Evaluación "What-If" de un comando crsctl con Oracle Clusterware [oracle@oel6-112-rac1 ~]$ crsctl eval stop resource ora.asm -f Stage Group 1: -------------------------------------------------------------------------------- Stage Number Required Action -------------------------------------------------------------------------------- 1 Y Resource 'ora.DATA.dg' (oel6-112-rac1) will be in state [OFFLINE] Y Resource 'ora.DATA.dg' (oel6-112-rac2) will be in state [OFFLINE] Y Resource 'ora.orcl.db' (2/1) will be in state [OFFLINE] Y Resource 'ora.proxy_advm' (oel6-112-rac1) will be in state [OFFLINE] 2 Y Resource 'ora.asm' (1/1) will be in state [OFFLINE] Y Resource 'ora.asm' (2/1) will be in state [OFFLINE] 11
  12. 12. Oracle Real Application Cluster Evaluación "What-If" de un comando crsctlcon Oracle Clusterware Los comandos disponibles para eval: • crsctl eval activate policy • crsctl eval add resource • crsctl eval add server • crsctl eval add serverpool • crsctl eval delete server • crsctl eval delete serverpool • crsctl eval fail resource • crsctl eval modify resource • crsctl eval modify serverpool • crsctl eval relocate resource • crsctl eval relocate server • crsctl eval start resource • crsctl eval stop resource 12
  13. 13. Automatic Workload Repository • Cuenta con los siguientes componentes – SGA In-­‐Memory AWR statistics – AWR snapshots Database Instance 13 SGA Statistics MMON SYSAUX • Periódicamente AWR hace snapshots de estadísticas esenciales • Opción que requiere licencia dentro de la base de datos Oracle • Controlado por los parámetros STATISTICS_LEVEL y CONTROL_MANAGEMENT_PACK_ACCESS
  14. 14. AWR Warehouse (EM 12cR4) 14 Base de datos fuente 1 Carga de snapshots de AWR en el Repositorio Repositorio Central de AWR Database 1 Snapshots Base de datos fuente 2 Base de datos fuente 3 Performance Home ASH Analytics AWR Report Compare Period ADDM Compare Period Report Database 2 Snapshots Database 3 Snapshots …… Database n Snapshots 11.2.0.4 o mayor …
  15. 15. AWR Warehouse (EM 12cR4) • Cada 15 Base de Datos se identifica por el TARGET_GUID • Las Bases de Datos tiene que estar en 12.1.0.2 • Los datos se cargan a través de un proceso de ETL usando un empuje de inserción directa de los datos de agente a agente, inicializado por Enterprise Manager. • “DBMS Scheduler Job” de ETL en BD Fuente • Nombre: MGMT_CAW_EXTRACT • Exec Call: begin dbsnmp.mgmt_caw_extract.run_extract; end; • Frecuencia: intervalos de cada 3 horas si se esta "jugando a ponerse al día", de lo contrario, intervalos de 24 horas. • “DBMS Scheduler Job Name” de ETL en BD Respositorio • Nombre : MGMT_CAW_LOAD • Exec Call: begin dbsnmp.mgmt_caw_load.run_master;end; • Frecuencia : Intervalos de 5 minutos
  16. 16. AWR Warehouse (EM 12cR4) Top I/O* select * from ( SELECT /*+LEADING(x h) USE_NL(h)*/ 16 h.sql_id , SUM(10) ash_secs FROM DBA_HIST_SNAPSHOT x , DBA_HIST_ACTIVE_SESS_HISTORY h , DBSNMP.CAW_DBID_MAPPING m WHERE LOWER(m.target_name) = '&dbname' AND x.dbid = m.new_dbid AND h.dbid = x.dbid AND x.begin_interval_time > sysdate -&days_bk AND h.SNAP_id = X.SNAP_id AND h.instance_number = x.instance_number AND h.event in ('db file sequential read','db file scattered read') GROUP BY h.sql_id ORDER BY ash_secs desc) where rownum <= &num_rows; Top CPU* select * from ( select SQL_ID, sum(CPU_TIME_DELTA), sum(DISK_READS_DELTA), count(*) from DBA_HIST_SQLSTAT a, DBA_HIST_SNAPSHOT s, DBSNMP.CAW_DBID_MAPPING m where lower(m.target_name) = '&dbname' and m.new_dbid = a.dbid and a.dbid = s.dbid and s.snap_id = a.snap_id and s.begin_interval_time > sysdate -&days_bk and EXTRACT(HOUR FROM S.END_INTERVAL_TIME) between &begin_hr and &end_hr group by SQL_ID order by sum(CPU_TIME_DELTA) desc) where rownum <= &num_rows; *AWR Warehouse Scripts : http://dbakevlar.com/scripts/
  17. 17. Oracle Data Guard • Administrar y supervisa desde una y/o hasta 30 bases de datos standby dispersas geográficamente. • Sólo se propagan los datos de los redologs, por lo que no hay corrupciones de disco se introducen en el modo de espera • Physical Standby – Copia idéntica de la base de datos primaria bloque por bloque • Logical Standby – Contiene la misma información lógica como la primaria, y se sincroniza a través de SQL Apply 17
  18. 18. Oracle Data Guard 18 Standby Redo Logs Primary Online Redo Logs User Transactions Queries, Updates, DDL NSA RFS Primary Database LGWR MRP Commit ACK Oracle Net Commit Active Standby Database Queries, Reports Testing & Backups SGA Redo Buffer Redo Buffer
  19. 19. Oracle Data Guard : Instancias en cascada Primaria 19 Standby Far Sync Instance ASYNC Far Sync Instance SYNC SYNC Standby ASYNC
  20. 20. Oracle Data Guard : Instancias en cascada • La propiedad de RedoRoutes, esta definida por reglas, y estas reglas se definen por el origen y el destino de los RedoLogs (origen de los redologs : destino de los redo ) 20 DGMGRL> edit database 'orclstby' set state='apply-­‐off'; Succeeded. DGMGRL> edit database 'orclrep' set state='apply-­‐off'; Succeeded. DGMGRL> edit database 'orcl' set property 'redoroutes'='( LOCAL : farsync SYNC)'; Succeeded. DGMGRL> edit database 'orclstby' set property 'redoroutes'='(orcl : orclrep ASYNC)(orclrep : orcl ASYNC)(LOCAL : farsync2 SYNC)'; Succeeded. DGMGRL> edit database 'orclrep' set property 'redoroutes'= '(orclrep : orclstby SYNC)'; Succeeded. DGMGRL> edit far_sync 'farsync' set property 'redoroutes' = '(orcl : orclstby ASYNC )'; Succeeded. DGMGRL> edit far_sync 'farsync2' set property 'redoroutes' ='(orclstby : orcl ASYNC, orclrep )'; Succeeded. DGMGRL> edit database 'orclstby' set state='apply-­‐on'; Succeeded. DGMGRL> edit database 'orclrep' set state='apply-­‐on'; Succeeded.
  21. 21. Oracle Data Guard : Instancias en cascada 21 DGMGRL> show configuration; Configuration -­‐ DGCONFIG Protection Mode: MaxPerformance Databases: orcl -­‐ Primary database farsync -­‐ Far Sync orclstby -­‐ Physical standby database orclrep -­‐ Physical standby database (receiving current redo) farsync2 -­‐ Far Sync (inactive) Fast-­‐Start Failover: DISABLED Configuration Status: SUCCESS
  22. 22. ¿Que es RMAN? • Herramienta 22 de Oracle para realizar copias de seguridad y recuperación, disponible desde la versión 8 RMAN Utility Channel Server Session DISK MML Ejecutable se encuentra en $ORACLE_HOME/bin recover.bsq (library file) Target Database
  23. 23. Recuperación de Tablas y particiones con respaldos de RMAN 23 DB en mode lectura-­‐escritura ARCHIVELOG MODE Respaldo de RMAN al punto de recuperación 1 Gigabyte extra en memoria para la base de datos auxiliar 12.1, nececitas usar un SERVICE_NAME
  24. 24. Recuperación de Tablas: Como Funciona Primaria Auxiliar RMAN Data Pump Import 1 2 3 4 12.1 12.1 1. Respaldos de RMAN regulares se realizan usando DISK y / o canales SBT. 2. Cuando se invoca RECOVER TABLE, se inicia una instancia auxiliar utilizando el archivo de control primario, SYSTEM, SYSAUX, UNDO y tablespaces de usuario que contienen la tabla (s). 3. Instancia auxiliar se recupera hacia el tiempo deseado / SCN. 4. Las tablas se importan a la BD Primaria vía SQL * Net.
  25. 25. Recuperación de Tablas: Como Funciona oracle@oracleenespanol2.localdomain [cdb1] /u01/app/oracle/exports oracle $ rman target sys/oracle@cdb1 connected to target database: CDB1 (DBID=808250731) RMAN> RECOVER TABLE 'TEST'.'RENE' OF PLUGGABLE DATABASE PDB1 2> UNTIL TIME "to_date('26-JAN-2014 17:08:20','dd-MON-yyyy hh24:mi:ss')” 3> AUXILIARY DESTINATION '/u01/app/oracle/exports’ 4> REMAP TABLE 'TEST'.'RENE':'RENE_RCV'; … Creating automatic instance, with SID='obtp’ … database opened … sql statement: alter pluggable database PDB1 open contents of Memory Script: { # create directory for datapump import sql 'PDB1' "create or replace directory TSPITR_DIROBJ_DPDIR as ’’ /u01/app/oracle/exports''";
  26. 26. In-Memory Column Store (12.1.0.2) • Componente estatico del SGA • SGA_TARGET debe ser grande lo suficientemente grande para dar cabida a esta área • El tamaño mínimo debe ser de 100 MB • Tu decides qué objetos son subidas en memoria • Alter table RENE INMEMORY 26 Memory Memory SALES SALES Row Column System Global Area (SGA) Shared Pool Library Cache Shared SQL Area SELECT * FROM employees Private SQL Area (Shared Server Only) Data Dictionary Cache Server Result Cache Other Reserved Pool Large Pool Response Queue Request Queue Database Buffer Cache Redo log Buffer Server Process SQL Work Areas PGA Session Memory Private SQL Area In -Memory Area
  27. 27. In-Memory Column Store (12.1.0.2) 27 IMCU SMU • Contiene dos sub áreas: • IMCU pool: Stores In Memory Compression Units (IMCUs) IMCUs contienen datos de columna El tamaño real depende del tamaño de filas, factor de compresión, etc • SMU pool: Stores Snapshot Metadata Units(SMUs) PME contiene metadatos e información transaccional In -­‐Memory Area
  28. 28. In-Memory Column Store (12.1.0.2) • Parametros que controlan el IMC • inmemory_size .-­‐ Controla el tamaño de componente estatico del pool del SGA para la opción "In-­‐Memory" • inmemory_clause_default .-­‐ Te permite poner ciertos parámetros (Compresión,Prioridad,Distribución en RAC) como default cuando una nueva tabla se marca como "In-­‐Memory", por default esta vacía. Es altamente recomendable que no se ponga el valor "INMEMORY" sin analizarlo anteriormente, ya que esto pondra todas las nuevas tablas "In-­‐Memory". • inmemory_force .-­‐ Permite forzar las tablas y vistas materializadas marcadas como "INMEMORY" residir en la tienda columnar "In-­‐Memory" o no. • inmemory_query .-­‐ Permite habilitar o deshabilitar queries para que usen la tienda columnar "In-­‐Memory" o no, esto te va a servir cuando hagas tus pruebas. 28 • Vistas que te ayudan a manejar IMC • v$im_segments • v$im_user_segments • _tables • INMEMORY_DISTRIBUTE • INMEMORY_COMPRESSION • INMEMORY_PRIORITY
  29. 29. In-Memory Column Store (12.1.0.2) Cuando hace sentido: Primeros • Data Warehouse • Acceso más frecuente de columnas y particiones • Analytics en tiempo Real • Reportes de OLTP • Reducir el número de índices que se mantenga • Acelerar informes operacionales • Sistemas Híbridos (DW + OLTP + Reporting) 29 Candidatos pueden ser: • Tablas con al menos 1 millón de filas • Tablas que se han analizado en los últimos 30 días • Al menos 2 usuarios tienen cursores abiertos en esta tabla • Al menos 5 ejecuciones desde que el objeto se subió al library cache • Tener al menos 1% de las filas procesadas por las consultas en el Shared pool • Objetos calientes en el buffer_cache y el block touch count > 10
  30. 30. rene-ace.com 30
  31. 31. Thank you – Q&A To contact us 31 sales@pythian.com 1-877-PYTHIAN To follow us http://www.pythian.com/blog http://www.facebook.com/pages/The-Pythian-Group/163902527671 @pythian http://www.linkedin.com/company/pythian

×