Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12c
-
Upload
gustavo-rene-antunez -
Category
Technology
-
view
1.182 -
download
1
description
Transcript of 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
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
• 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
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
¿Cómo llegaste a ser un DBA?
5
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
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
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
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
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
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
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
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
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)
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
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/
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
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
Oracle Data Guard : Instancias en cascada
19
PrimariaStandby
Far Sync Instance
ASYNC
Far Sync Instance
SYNC
SYNC
ASYNCStandby
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.
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
¿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
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
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.
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''";
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
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
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
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:
31
To contact us
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