SalmorejoTech 2024 - Spring Boot <3 Testcontainers
Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12c
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
• 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. #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. 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
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. 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. 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. 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. 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. 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
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. 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. 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. 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. 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
19. Oracle Data Guard : Instancias en cascada
Primaria
19
Standby
Far
Sync
Instance
ASYNC
Far
Sync
Instance
SYNC
SYNC
Standby ASYNC
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. 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
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. 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. 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. 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. 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. 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. 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. 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
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