INTRODUZIONE AL TUNING
Tipi di tuning:
•tuning dell’architettura fisica
•tuning dell’istanza
•tuning dell’architettura logica
•tuning applicativo
Metodi di tuning:
il tuning prevede sempre una configurazione di base,
successivamente il tuning viene iterato sulla base di risultati
ottenuti attraverso monitoraggio sistematico delle performance,
dei conflitti e delle contese sulle risorse.
SGA
Buffer Chache
PROCESSES
SQLArea
PMON
SMON
DBWR
LGWR
LCKn
SNPn
RECO
Log Buffer
Snnn
Dnn
DATABASE
ARCH
Redo Log Files
Archived Redo Log
Data Files
CKPT
Control Files
SGA
Buffer Chache
PROCESSES
PMON
SMON
DBWR
LGWR
LCKn
SNPn
SQLArea
RECO
Log Buffer
Snnn
Dnn
DATABASE
ARCH
Redo Log Files
Data Files
CKPT
Control Files
SGA
Buffer Chache
PROCESSES
PMON
SMON
DBWR
LGWR
LCKn
SQLArea
SNPn
RECO
Log Buffer
Snnn
Dnn
DATABASE
ARCH
Redo Log Files
Data Files
CKPT
Control Files
SGA
Buffer Chache
PROCESSES
PMON
SMON
DBWR
LGWR
LCKn
SNPn
SQLArea
RECO
Log Buffer
Snnn
Dnn
DATABASE
ARCH
Redo Log Files
Data Files
CKPT
Control Files
SGA
Buffer Chache
PROCESSES
PMON
SMON
DBWR
LGWR
LCKn
SQLArea
SNPn
RECO
Log Buffer
Snnn
Dnn
DATABASE
ARCH
Redo Log Files
Archived Redo Log
Data Files
CKPT
Control Files
SGA
Buffer Chache
PROCESSES
PMON
SMON
DBWR
LGWR
LCKn
SQLArea
SNPn
RECO
Log Buffer
Snnn
Dnn
DATABASE
ARCH
Redo Log Files
Archived Redo Log
Data Files
CKPT
Control Files
Blocco oracle
HEADER
Pctfree
Data space
Pctused
PARAMETRI DI SISTEMA
OnLineTransactionProcessing DataWareHouse
SQLArea
Alta
Piccola
Buffer chache
Grande
Grande
Log buffer
Piccolo
Grande
Blocco
Piccolo (4-8Kb)
Pctfree 20, pctused 50
Grande(16-64Kb)
Pctfree 0 pctused 90
Processi
Molti (tanti quante sono le connessioni
contemporanee)
Pochi (5-20)
Redo log
Dipendenti da carico
Grandi (50-100Mb)
Rollback
segments
Molti e piccoli (16Kb)
Pochi e grandi
(10-100Mb)
Esempi di configurazione(HardWare)
DA-392GG-AB
AS8400 4GB Unix - 9 CPU ev.67 da 700MHz
KZPBA-CA
sigle channe PCI to UltraSCSI
BN38C-02
cable
6xRZ1ED-VW
18.2GB HD 10000RP
TLZ10-VA
4mm DAT
DWLPB-BA
second 12-slot PCI exp
KZPSA-BB
storgae PCI bus adapt
BN21K-05
cable
TL891-NT
350/700GB TZ89 drive
TL892-UA
add-on TZ89 drive
BN21W-0B
cable
H879-AA
SCSI-3 term
BN38C-10
cable
SWXRA-HA
RA7000 subsystem
QB-5SBAB-SA
HSZ70 SW
BA35X-HH
power supply
BA35X-He
power distr
Dischi:
Symmetrix fibre channel
16 Gb cache
performance:
da 5-6M I/O/sec a 10-11M I/O/sec
con bloccaggio da16Kb o 32Kb
da 5-6M I/O a 9/10M I/O
con bloccaggio > di 16K
Esempi di configurazione (caratteristiche db)
OLTP:
dimensione db:
350Gb circa
numero utenti:
circa 3000
accesso: tramite applicazione client/server
DWH:
dimensione db:
1 thera circa
tabelle da qualche centinaio di Gb
caricamento tramite pro*c e manipolazione
dati tramite pl/sql
Esempi di configurazione (init.ora di un OLTP)
db_name = oltp
db_files = 250
control_files =(/u01/oradata/oltp/control01.ctl,
/u02/oradata/oltp/control02.ctl,
/u03/oradata/oltp/control03.ctl)
user_dump_dest = /u1/app/oracle/admin/oltp/udump
background_dump_dest = /u1/app/oracle/admin/oltp/bdump
core_dump_dest = /u1/app/oracle/admin/oltp/cdump
log_archive_dest = (/u03/orarch/oltp)
# log_archive_format = arc%T_%S.arc
log_archive_start = TRUE
shared_pool_size = 524288000
# 500 Mb
sort_area_size = 524288
sort_area_retained_size = 524288
db_block_buffers = 80000
db_block_size = 8192
# 80000*8192=655360000 -> 650Mb
# QUESTO SETTAGGIO HA IL 45% DI REDO WASTAGE: LO ABBASSO DEL 30% log_buffer = 524288
log_buffer = 368640
log_checkpoint_interval = 1000000
transactions_per_rollback_segment = 26
processes = 1030
optimizer_mode = RULE
timed_statistics = TRUE
Esempi di configurazione (init.ora di un DWH)
db_name = dwh
db_files = 800
control_files = (/u3/oradata/dwh/controlraw01.ctl,
/u3/oradata/dwh/controlraw02.ctl,
/u3/oradata/dwh/controlraw03.ctl)
user_dump_dest = /u1/app/oracle/admin/dwh/udump
background_dump_dest = /u1/app/oracle/admin/dwh/bdump
core_dump_dest = /u1/app/oracle/admin/dwh/cdump
# log_archive_dest = (/u2/oraarch/dwh)
# log_archive_format = arc%T_%S.arc
log_archive_start = FALSE
shared_pool_size = 150000000
sort_area_size = 2000000
sort_area_retained_size = 2000000
# 150Mb
# 20M
db_block_buffers = 120000
db_block_size = 32768
# 120000*32768=3932160000 -> 4Gb
db_file_multiblock_read_count = 8
# controllare
log_buffer = 819200
log_checkpoint_interval = 1000000
parallel_max_servers = 20
parallel_min_servers = 0
processes = 50
rollback_segments = (batch01,batch02,rbs04,rbs05,batch03,batch04)
# optimizer_mode = CHOOSE
timed_statistics = TRUE
# controllare
LAYOUT FISICO DI UN DATABASE
Control Files
?
?
Redo Log Files
SYSTEM
TEMP
?
?
?
RBS
?
DATA
IDX
LAYOUT FISICO DI UN DATABASE
Control Files
Redo Log Files
SYSTEM
TEMP
RBS
DATA
IDX
LAYOUT FISICO DI UN DATABASE
Control Files
Redo Log Files
SYSTEM
TEMP
RBS
DATA
IDX
INTRODUZIONE AL BACKUP & RECOVERY
Tipi di backup:
•backup logico complete
•backup logico cumulative
•backup logico incremental
•backup fisico a freddo, offline (cold backup)
•backup fisico a caldo, online (hot backup)
Analogie tra:
complete vs. cold backup
e
triade complete,cumulative,incremental vs. hot backup
SYSTEM CHANGE NUMBER & CKPT
DATABASE
SCN
Data Files
Gr.1
SCN
SCN
SCN
SYSTEM
SCN
Gr.3
SCN
TEMP
SCN
RBS
SCN
DATA
SCN
IDX
…….
SCN
SCN
Gr.n
SCN
Redo Log Files
SCN
SCN
SCN
Control Files
Analogie backup logico e fisico
Complete
Cumulative
Incremental
t
logico
1 complete + 3 cumulative + 2 incemental = quasi ok
t
fisico
1 restore + applicazione archived redo log = ok
Backup fisico online (hot backup):
Control Files
ARCH
/u02/oraarch/orcl
Redo Log Files
SYSTEM
TEMP
RBS
Cp rbs01.dbf /backupfs/orcl/rbs01.bck
DATA
IDX
Tablespace is frozen
Backup fisico online (hot backup):
#!/bin/ksh
ORACLE_SID=orcl; export ORACLE_SID
$ORACLE_HOME/bin/svrmgrl << EOF!
Connect internal
ALTER TABLESPACE RBS BEGIN BACKUP;
exit
EOF!
cp /u02/oradata/orcl/rbs01.dbf /backupfs/orcl/rbs01.bck
…..
cp /u02/oradata/orcl/rbs0n.dbf /backupfs/orcl/rbs0n.bck
$ORACLE_HOME/bin/svrmgrl << EOF!
Connect internal
ALTER TABLESPACE RBS END BACKUP;
ALTER TABLESPACE SYSTEM BEGIN BACKUP;
exit
EOF!
…..
$ORACLE_HOME/bin/svrmgrl << EOF!
Connect internal
ALTER TABLESPACE XXX END BACKUP;
exit
EOF!
cp /u02/oradata/orcl/controlfile*.ctl /backupfs/orcl/
cp /u02/oraarch/orcl/* /backupfs/orcl/
echo backup complete
Dettaglio delle modalità di startup…
Offline
Startup nomount
Lettura init.ora
Startup mount
Not mounted
Alter database mount
Lettura (apertura)
control files
Mounted
Alter database open
Lettura (apertura)
datafile
Opened
…e di shutdown
•Shutdown normal
•shutdown transactional
•shutdown immediate
•shutdown abort
Startup open
Tipi e caratteristiche di recovery:
Tipo di failure Modalità di
risoluzione
Chi interviene Operazione
Block
recovery
Corruzione di
un blocco in
memoria
Automatica
Smon
Instance
recovery
Crash del
sistema
Semiautomatica Dba
Startup
Media
recovery
Perdita di una
o più strutture
fisiche del db
Manuale
Startup mount;
Recover ….
Alter database
open;
Dba
Nessuna
Tipi di media recovery:
Recover
database
Complete
Until
time*
Until
change*
Until
sequence*
Until
cancel*
x
x
x
x
x
Recover
Recover
tablespace datafile
x
-
Interattiva?
x
-
* vengono detti metodi di recovery incompleti.
Si sta effettuando un Point in Time Recover (PTTR)
anche
anche
anche
anche
solo
Casi di studio
Riferimenti:
•Generale:
www.databtech.com
www.jlcomp.demon.co.uk
•Tuning
www.oraperf.com
www.ixora.com
•Backup&Recovery
Oracle Backup & Recovery Handbook
Rama Velpuri,Anad Adkolli; 1998, Oracle Press.
[email protected]
ROLLBACK SEGMENT
T1
b1
b2
T2
b3
b4
b5
b6