cosas que “probablemente” no sabes pero deberías de saber en oracle 12c

31
Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12c Presentado por : Gustavo René Antúnez DBA Team Lead Noviembre, 2014

Upload: gustavo-rene-antunez

Post on 04-Jul-2015

1.181 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

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

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

Presentado por : Gustavo René Antúnez DBA Team Lead Noviembre, 2014

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

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

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

• 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

#PythianLife

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

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

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

¿Cómo llegaste a ser un DBA?

5

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

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 diariasRecursos de

empleo

El campo crecerá en un 15% entre

2012 y 2022

DBA puede ser el factor clave del

éxito

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

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

Node3Node2

ASM Disks

Node1

Public Network

Storage NetworkASM Network

CSS Network

ASM ASM ASM

DBB DBBDBB

Global  Data  Services    – Service Failover / Load Balancing

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

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

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

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

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

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

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

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

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

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

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

Automatic Workload Repository• Cuenta  con  los  siguientes  componentes    

– SGA  In-­‐Memory  AWR  statistics    

– AWR  snapshots  

13

Database Instance

SGAStatistics

SYSAUX

AWR

MMON

• Periódicamente  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  

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

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  HomeASH  AnalyticsAWR  Report

Compare  Period  ADDMCompare  Period  Report

Database  2  Snapshots

Database  3  Snapshots

……

Database  n  Snapshots

11.2.0.4 o mayor …

AWR Warehouse (EM 12cR4)

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

15

AWR Warehouse (EM 12cR4)• Cada  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

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

16

AWR Warehouse (EM 12cR4)

select * from

(

SELECT /*+LEADING(x h) USE_NL(h)*/

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  I/O*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;

Top  CPU*

*AWR  Warehouse  Scripts  :  http://dbakevlar.com/scripts/

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

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

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

Oracle Data Guard

18

Standby Redo Logs

RFSNSA

Primary Online Redo Logs

Primary Database

LGWR

MRP

Comm

it ACK

Oracle Net

Commit

User Transactions Queries, Updates, DDL

Queries, Reports Testing & Backups

Active Standby Database

SGA

Redo Buffer

Redo Buffer

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

Oracle Data Guard : Instancias en cascada

19

PrimariaStandby

Far  Sync  Instance

ASYNC

Far  Sync  Instance

SYNC

SYNC

ASYNCStandby

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

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.

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

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

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

22

¿Que es RMAN?• Herramienta  de  Oracle  para  realizar  copias  de  seguridad  y  recuperación,  disponible  desde  la  versión  8

RMAN  Utility  

Channel

Server  Session

MML

DISK

Ejecutable  se  encuentra  en$ORACLE_HOME/bin  

recover.bsq  (library  file)

Target  Database

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

23

Recuperación de Tablas y particiones con respaldos de RMAN

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  

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

Recuperación de Tablas: Como Funciona

RMAN  

Primaria Auxiliar

Data  Pump Import

1 2

3

412.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.

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

Recuperación de Tablas: Como [email protected] [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''";

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

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 CacheShared SQL Area

SELECT * FROM employeesPrivate 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 AreasPrivate SQL AreaSession Memory

PGA

In -Memory Area

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

In-Memory Column Store (12.1.0.2)

27

IMCUSMU

• 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

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

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

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

In-Memory Column Store (12.1.0.2)

• 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

• 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

Cuando  hace  sentido: Primeros  Candidatos  pueden  ser:

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

30

rene-ace.com

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

31

To contact us

[email protected]

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

Thank you – Q&A