Vous êtes sur la page 1sur 33

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 1/33

TABLESPACE MANAGEMENT Undo management Gestion automatise des rollback segments

Dynamic SGA granules & Multiple Block sizes Contrle dynamique des buffers et blksizes multiples

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 2/33

UNDO MANAGEMENT
Dispositif : Automatic Undo Management Feature Objectif : Simplifier et automatiser la gestion des Rollback Segments Mise en oeuvre : Indiquer Oracle que l'on souhaite travailler en mode UNDO automatique undo_management=AUTO Indiquer Oracle le tablespace undo souhait undo_tablespace=' undts ' Disposer d'un espace disque suffisamment important pour obr aux exigences de rtention Crer un tablespace undo sur cet espace disque soit au moment de la cration de la base create database db dbnam undo tablespace undts datafile 'filnam ' size nM autoextend on next nM maxsize nM soit, indpendamment de la cation de la base create undo tablespace undts datafile 'filnam' size nM autoextend on next nM maxsize nM Indiquer Oracle le tablespace undo cr undo_tablespace =undts Indiquer Oracle l'exigence de rtention snapshot en secondes undo_retention =n Maintenance : Oprations classiques applicables sur un tablespace : / end backup / alter database datafile offline | online drop tablespace undts V$UNDOSTAT alter tablespace undts add datafile / rename / begin backup

Monitoring : nouvelle vue Prcautions : Le tablespace SYSTEM abrite toujours ses propres rolback, indpendamment du mode d'undo adopt. par dfaut, undo_management=manual undo_tablespace est dynamique ( alter system set undo_tablespace=... )

Oracle upg adm 9i

Claude DA COSTA AUTOMATIC UNDO MANAGEMENT FEATURE : PRESENTATION


create

Chap 13 Tablespaces Managt Page 3/33

undo

tablespa ce datafile

undts

undo_tablespace = ' undts ' AUTO

'filename '
on

size

n k/m

.....
r ts : 1e t n e em me eul com ace s S sp pt MI AD ado _table o d un

autoexten d maxsiz e
n k/m

undo_management=

rollback_segments=(rbs1,rbs2,...,rbsn)

.....
MANUAL

OBJECTIF : Simplifier et automatiser la gestion des rollback segments. Le DBA est affranchi compltement de la cration, de la maintenance et du suivi des segments rollback. Il se focalise sur un espace disque et une exigence de rtention des informations, tout le reste tant laiss la discrtion d'Oracle. Le mode classique est maintenu pour raisons de compatibilit et le DBA doit choisir l'un des deux modes. Ce nouveau dispositif s'appelle AUTOMATIC UNDO MANAGEMENT FEATURE : Il est comparable, dans l'esprit, celui de la nouvelle gestion des segments temporaires par dfaut. BIEN VOIR : Si undo_management=manual et undo_tablespace=tsname, erreur : undo_tablespace exige undo_management auto Si undo_management=auto et undo_tablespace omis (pas d'undo-tablespace), Oracle cherchera encore un rbs ts : S'il existe au moins 1 tablespace undo prsent, il est adopt par Oracle comme undo_tablespace : la combinaison undo_management=auto et rollback_segments=(rbsx) est permise

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 4/33

CREATION DU TABLESPACE UNDO

create

database

dbname undo_manageme nt= AUTO

OU

....................................................................... undo_tablespace='undts'

create

undo tablespace

undts

.....
size n k/m

datafile

' filename '


on

autoextend maxsize n k/m

BIEN VOIR : Il ne s'agit pas d'un create tablespace banal mais d'un CREATE UNDO TABLESPACE Que ce soit un ordre create individuel ou une clause du create database, le rsultat est seulement la cration d'un tablespace prt tre gr en mode UNDO. ==> prsence de undo_management=AUTO et undo_tablespace=undts

Oracle upg adm 9i

Claude DA COSTA MANIPULATION DU TABLESPACE UNDO

Chap 13 Tablespaces Managt Page 5/33

Cas retenir :
DROP TABLESPACE undts fait l'quivalent de DROP TABLESPACE undts INCLUDE CONTENTS et ne peut tre lanc que si aucune instance n'utilise le tablespace. Suite quoi, fortes probabilits de ORA-1555 snapshot too old puisque les images avant le drop ne sont plus disponibles.

SAVOIR : Il est toujours possible d'augmenter l'espace TSUNDO par la commande classique : ALTER TABLESPACE undts ADD DATAFILE '...' SIZE nM AUTOEXTEND ON La plupart des commandes standard de manipulation de TS sont autorises : ADD DATAFILE RENAME DATAFILE ONLINE/OFFLINE BEGIN / END BACKUP

Oracle upg adm 9i SAVOIR :

Claude DA COSTA Chap 13 Tablespaces Managt Page 6/33 RETENTION DES IMAGES AVANT ET SUPPRESSION DES ERREURS DUES A ALTER RBS ONLINE

Dsormais, les rollback segments et leurs extents ne sont plus accessibles. Ils sont dcids par Oracle seul. L'exigence de rtention d'images avant que l'on estimait en fonction du nobre d'extents des rollback et de l'activit gnrale est dsormais prise DIRECTEMENT EN SECONDES Oracle, avec le paramtre undo_retention=nbsec. Par ailleurs, on admet que certaines commandes alter rollback segment online peuvent subsister dans des scripts ou bien tre lances par rflexe. En mode Auto, cela provoquera des messages d'erreur que l'on peut demander ne pas voir apparatre, grace au paramtre undo_suppress_errors=true. Les paramtres suivants peuvent tre modifis par la commande ALTER SYSTEM SET : undo_tablespace (opration de switch par exemple) undo_suppress_errors (true ou false en ligne) undo_retention (exigence de rtentiondes images avant) Les paramtres suivants ne peuvent pas tre modifis par la commande ALTER SYSTEM SET : undo_management (une fois choisi, le mode de management des rollback ne peut tre modifi dans l'instance)

undo_retention= nsecs

1112 1 2 10 9 3 8 4 7 6 5

entra ne

TRU E undo_suppress_errors= FAL S E

SI ON VEUT

alter
SI ON NE VEUT PAS

rollback segment

ERROR

rbs

online

Oracle upg adm 9i

Claude DA COSTA
RECAP PARAMETRES D'INITIALISATION
crea t e UNDO

Chap 13 Tablespaces Managt Page 7/33


TBLESPACE datafile autoexten d maxsize n k/m undt s

undo_tablespace='undts' AUTO

'filename '
on

size n k/m

.....
r ts : 1e nt e e m lem seu com pace IS t s p M e AD ado _tabl o und

undo_management=

rollback_segments=(rbs1,rbs2 ,...,rbsn )

.....
MANUAL

undo_retention=nsecs

11 12 1 2 10 9 3 8 4 7 6 5

entrane

TRUE undo_suppress_errors= FALSE

SI ON VEUT

alter
SI ON NE VEUT PAS

rollback segment

ERROR

rbs

online

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 8/33

SUPPRESSION DE TABLESPACE UNDO

DROP

TABLESPACE

undotsname

SAVOIR : Lorsque la commande DROP TABLESPACE undotsname est utilise, un INCLUDE CONTENTS implicite est effectu.

En consquence, le tablespace est supprim, ainsi que tous ses segments undo. Si l'instance est en cours d'utilisation du tablespace undo, celui-ci ne POURRA PAS tre supprim. La suppression est effective mme si en consquence, des extents maintenus pour rtention sont supprims.

Oracle upg adm 9i

Claude DA COSTA MONITORING DES ROLLBACK

Chap 13 Tablespaces Managt Page 9/33

SAVOIR : V$UNDOSTAT applicable REFERENCE : V$UNDOSTAT displays a histogram of statistical data to show how well the system is working. The available statistics include undo space consumption, transaction concurrency, and length of queries executed in the instance. You can use this view to estimate the amount of undo space required for the current workload. Oracle uses this view to tune undo usage in the system. The view returns null values if the system is in manual undo management mode. Each row in the view keeps statistics collected in the instance for a 10-minute interval. The rows are in descending order by the BEGIN_TIME column value. Each row belongs to the time interval marked by (BEGIN_TIME, END_TIME). Each column represents the data collected for the particular statistic in that time interval. The first row of the view contains statistics for the (partial) current time period. The view contains a total of 1008 rows, spanning a 7 day cycle.

aussi bien pour rollback auto

et manual

1 ligne pour 10 mns, 1008 lignes, 7 jours

begin_time begin_time begin_time begin_time end_time begin_time begin_time end_time end_time begin_time begin_time end_time end_time undoblks undoblks begin_time begin_time end_time end_time undoblks undoblks begin_time end_time end_time maxconcurrency maxconcurrency undoblks undoblks end_time maxconcurrency maxconcurrency undoblks undoblks end_time txncount maxconcurrency txncount undoblks undoblks maxconcurrency maxconcurrency txncount txncount undoblks maxconcurrency maxconcurrency maxquerylen maxquerylen txncount txncount maxquerylen maxconcurrency txncount maxquerylen maxquerylen maxconcurrency expstealcnt expstealcnt txncount txncount maxquerylen maxquerylen txncount expstealcnt txncount expstealcnt s olderrcnt maxquerylen expstealcnt expstealcnt s ss olderrcnt maxquerylen s s olderrcnt expstealcnt expstealcnt ss s olderrcnt maxquerylen maxquerylen s olderrcnt expstealcnt ss olderrcnt expstealcnt ss olderrcnt expstealcnt ss olderrcnt s s olderrcnt olderrcnt ss ss olderrcnt

fin deblocks l'intervalle de temps dbut fin de l'intervalle de temps Nb undo total consomms dbut fin de l'intervalle de temps Nb blocks undo total consomms dbut de l'intervalle de temps fin de l'intervalle de temps Nb blocks undo total consomms dbut fin de l'intervalle de temps Nb blocks undo total consomms dbut de l'intervalle de temps fin de Le l'intervalle plus grand de temps nombre de transactions transactions excut excut concuramment concuramment durant durant la la priode priode Nb blocks undo total consomms fin de Le l'intervalle plus grand de temps nombre de Nb blocks undo total consomms finNb de Le l'intervalle plusundo grand detotal temps nombre de transactions excut concuramment durant la la priode priode blocks consomms fin de Le l'intervalle plus grand de temps nombre de transactions excut concuramment durant Nombre total de transactions excutes dans la priode Nb blocks undo total consomms Le plus grand nombre de transactions excut concuramment durant la priode Nombre total de transactions excutes dans la priode Nb blocks undo total consomms Le plusundo grand nombre de transactions transactions excut concuramment durant la la priode priode Nombre total de transactions excutes dans lapriode priode durant Nb blocks total consomms Le plus grand nombre de excut concuramment Nombre total de transactions excutes dans la Nb blocks undo total consomms Le plus Longueur grand en nombre secondes de transactions de la la plus excut excut longue requte concuramment durant la la priode priode Nombre total de transactions excutes dans la priode Longueur en secondes de plus longue requte Le plus grand nombre de transactions concuramment durant Nombre total de transactions excutes dans la priode Longueur en secondes de la plus longue requte Le plus grand nombre de transactions excut concuramment durant la priode Nombre total de transactions excutes dans la priode Longueur en secondes de la plus longue requte Le plus grand nombre de de transactions excut concuramment durant priode Nombre de tentatives deexcutes transfert d' u n extent extent expir, d' d' u n undo la segment vers un un autre autre Nombre total de transactions excutes dans lapriode priode Longueur en secondes la plus longue longue requte Nombre Nombre total de transactions tentatives de transfert d' u dans n la expir, u n undo segment vers Longueur en secondes de la plus requte Nombre Nombre total de de transactions tentatives de excutes transfert d' u dans n extent la priode expir, d' u n undo segment vers un autre autre Longueur en secondes de la plus longue requte Nombre Nombre total de transactions tentatives de excutes transfert d' u dans n extent la priode expir, d' u n undo segment vers un Nombre d' e rreurs "snapshot "snapshot too old intervenus durant la priode Longueur en secondes de la plus longue requte Nombre de tentatives de transfert d' u n extent expir, d' u n undo segment vers un autre Nombre d' e rreurs too old intervenus durant la priode Longueur en secondes de la plus longue requte Nombre de tentatives de transfert d' u n extent expir, d' u n undo segment vers un autre Nombre d' e rreurs "snapshot "snapshot too old intervenus durant la priode Longueur en secondes de la plus longue requte Nombre de tentatives dela transfert d' u n extent extent expir, d' u n la undo segment vers vers un un autre autre Nombre d' e rreurs too old intervenus durant priode Longueur en secondes de plus longue requte Nombre de tentatives de transfert d' u n expir, d' u n undo segment Nombre d' e rreurs "snapshot too old intervenus durant la priode Nombre de tentatives de transfert d' u n extent expir, d' u n undo segment vers un un autre autre Nombre d' e rreurs "snapshot too old intervenus durant la priode Nombre de tentatives de transfert d' u n extent expir, d' u n undo segment vers Nombre d' e rreurs "snapshot too old intervenus durant la priode Nombre de tentatives de transfert d' u n extent expir, d' u n undo segment vers un autre Nombre d' e rreurs "snapshot too old intervenus durant la priode Nombre d' d' e rreurs "snapshot "snapshot too too old old intervenus intervenus durant durant la la priode priode Nombre e rreurs Nombre d'e rreurs "snapshot too old intervenus durant la priode

V$UNDOSTAT V$UNDOSTAT V$UNDOSTAT V$UNDOSTAT V$UNDOSTAT V$UNDOSTAT V$UNDOSTAT dbutde del'intervalle l'intervallede detemps temps V$UNDOSTAT dbut V$UNDOSTAT dbut de l'intervalle de temps V$UNDOSTAT dbut de l'intervalle de temps fin de l'intervalle de temps V$UNDOSTAT dbut fin de dbut de l'intervalle l'intervalle de de temps temps

tri descendant sur begin_time Participe au calcul du taux de consommation et permet d'estimer la taille du TS Undo

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 10/33

DYNAMIC SGA GRANULES ET MULTI BLOCK-SIZES


Objectifs: Permettre la modification dynamique (alter system) de la taille de chaque zone de la SGA. Permettre de disposer de plusieurs tailles de bloc, au niveau des tablespaces A L'EXCEPTION DES TABLESPACES ..... db_block_siz e uniquement TEMPORAIRES SYSTEM UNDO TABLESPACE USER

REMARQUE : UNDO TABLESPACE et TEMPORARY TABLESPACES sont associs la database et peuvent tre considr comme des TS SYSTEM. actuellement, on peut voir les TS system, temporary et undo comme des TS systme. Les trois sont grs en db_block_size uniquement. Concerne : Buffer cache Shared pool Large pool si taille SGA < 128 Mb si taille SGA > 128 Mb nb min granules nb max granules Suivi : SUIVI DES CACHES V$SGA_DYNAMIC_COMPONENTS granule size = 4Mb granule size = 16 Mb 3 sga_max_size
COMPONENT

V$SGA_DYNAMIC_COMPONENTS
------------------------ current_size min_size max_size oper_count

le composant

---------------------------------------

taille actuelle du composant taille min du composant depuis le start de l'instance taille max du composant depuis le dmarrage de l'instance nombre d'oprations exerces depuis le dmarrage de l'instance

------------------------

les oprations sur le composant-------------------

Calculs automatiques : nb LRU latches nb DBWRs nbCPU / 2 nbCPU / 8 (ou 1) PAR POOL (ou 1)

last_oper_typ e grow shrink last_oper_mod e manua l au t o last_oper_time

------------------------ granule_size

la taille de granule
taille de granule

---------------------------------------

Oracle upg adm 9i

Claude DA COSTA
DYNAMIC SGA GRANULES

Chap 13 Tablespaces Managt Page 11/33

SAVOIR : Avec 9i, Il est possible de modifier la taille de la SGA dynamiquement (sans arrter l'instance). Cela concerne : Le Buffer Cache de Donnes La Shared Pool Le Redo Log Buffer
Library cache
Buffer cache des donnes

Large Pool

Dico cache

Shared poool

Pour assurer ce service, Oracle introduit un mcanisme d'allocation de morceaux de mmoire appels GRANULES. Les GRANULES sont des UNITES DE MEMOIRE CONTIGUS. Les Granules ont deux tailles possibles seulement, qui dpendent de la taille de la SGA, conditionne par le paramtre SGA_MAX_SIZE .

Si SGA < 128MB si SGA > 128MB

Taille des granules = 4MB Taille des granules=16MB

Au STARTUP, l'allocation des BCD, LC et BRL se fait par frontires de granules, en partant d'1 granule seulement pour chaque entit mmoire 1 granule pour fixed SGA et BRL 1 granule pour BCD 1 granule pour SP et en augmentant le nombre de granules durant la suite du startup. maximum : SGA_MAX_SIZE minimum : 3 granules donc pour la SGA. DESORMAIS, LE DBA A LA CAPACITE DE MODIFIER SES ZONES MEMOIRE DE LA SGA PAR UNE COMMANDE ALTER SYSTEM. Les valeurs introduites sont des CIBLES DE TAILLE et non pas des prallocations. Toute valeur introduite par le DBA est automatiquement arrondie un multiple de taille de granule.

SGA_MAX_SIZE=

GRANULES
4MB 16MB

< 128MB

> 128MB

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 12/33

NOMBRE MIN DE GRANULES


1 granule PAR CACHE : SOIT 3 granules (BCD, BRL, SP) si le BCD HEBERGE DES BLOCKSIZES DIFFERENTS : 1 granule supplementaire par blocksize different du db_block_size (block size alternatif) DONC, nombre de granules minimum BCD : 1 + nbaltblksize et nombre de granules minimum SGA: 3 + nbaltblksize

Oracle upg adm 9i

Claude DA COSTA
DYNAMIC SGA GRANULES

Chap 13 Tablespaces Managt Page 13/33

Dynamic SGA Granules


With dynamic SGA, the unit of allocation is called a granule. Components, such as the buffer cache, the shared pool, the java pool, and the large pool, allocate and free SGA space in units of granules. Oracle tracks SGA memory use in integral numbers of granules, by SGA component. All information about a granule is stored in a corresponding granule entry.Oracle maintains the state of each granule in the granule entry and the granule type. Granule size is determined by total SGA size. On most platforms, the size of a granule is 4 MB if the total SGA size is less than 128 MB, and it is 16 MB for larger SGAs . There may besome platform dependency, for example, on 32-bit Windows NT, the granule size is 8 MB for SGAs larger than 128 MB. The granule size that is currently being used for SGA can be viewed in the view V$SGA_DYNAMIC_COMPONENTS . The same granule size is used for all dynamic components in the SGA. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Note: If you specify a size for a component that is not a multiple of granule size, then Oracle rounds the specified size up to the nearest multiple. For example, if the granule size is 4 MB and you specify DB_CACHE_SIZE as 10 MB, you will actually be allocated 12 MB. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Oracle keeps information about the components and their granules in a scoreboard. For each component that owns granules, the scoreboard contains the number of granules allocated to the component, any pending operations against this component, the target size in granules, and the progress made toward the target size. The start time of the operation is also logged. Oracle maintains the initial number of granules and the maximum number of granules for each component. For operations that modify the number of granules, Oracle logs the operation, the target size, and the start time to the appropriate SGA component in the scoreboard. Oracle updates the progress field until the operation is complete. When the operation is complete, Oracle replaces the current size with the target size and clears the target size field and the progress field. At the end of the operation, a database administrator can see how the number of granules was changed. Oracle updates the initialization parameter values to reflect the updated amount of SGA in use. Oracle maintains a circular buffer of the last 100 operations made to the scoreboard. Fixed views show the state of the scoreboard and the current contents of last 100 operations to the scoreboard.

Allocating Granules at Startup


At startup, Oracle reads the values in the initialization parameter file, queries the operating system memory limits, and allocates virtual address space for the SGA. The initialization parameter SGA_MAX_SIZE specifies the maximum size of the SGA for the life of the instance in bytes. Its value is rounded up to the next granule size.

Adding Granules to Components


A database administrator grows a components SGA use with ALTER SYSTEM statements to modify the initialization parameter values. Oracle takes the new size, rounds it up to the nearest multiple of 16MB, and adds or takes away granules to meet the target size. Oracle must have enough free granules to satisfy the request. If the current amount of SGA memory is less than SGA_MAX_SIZE, then Oracle can allocate more granules until the SGA size reaches SGA_MAX_SIZE .

Oracle upg adm 9i

Claude DA COSTA
SUIVI

Chap 13 Tablespaces Managt Page 14/33

COMPONENT COMPONENT COMPONENT

V$SGA_DYNAMIC_COMPONENTS V$SGA_DYNAMIC_COMPONENTS V$SGA_DYNAMIC_COMPONENTS


Library cache

4MB

Dico cache

Shared poool

16MB

Buffer cache des donnes

------------------------- le composant --------------------------------------------------------------- le composant --------------------------------------------------------------- le composant -------------------------------------- current_size taille actuelle du composant current_size taille actuelle du composant min_siz e min du current_size taille taille actuelle du composant composant depuis le start de l'instance min_siz e taille min du composant depuis le start de l'instance max_size du composant depuis le dmarrage de l'instance min_siz e taille taille min max du composant depuis le start de l'instance max_size taille max d'oprations du composant depuis depuis le dmarrage de l'instance oper_count nombre exerces le dmarrage de l'instance max_size taille max du composant depuis le dmarrage de l'instance oper_count nombre d'oprations exerces depuis le dmarrage de l'instance oper_count nombre d'oprations exerces depuis le dmarrage de l'instance ------------------------- les oprations sur le composant------------------------------------------- les oprations sur le composant ------------------------------------------- les oprations sur le composant------------------ last_oper_type last_oper_type grow last_oper_type grow
shrink last_oper_mode shrink last_oper_mode manual last_oper_mode manual

shrink grow

Large Pool

last_oper_time last_oper_time ------------------------- la taille de granule --------------------------------------------------------------- la taille de granule --------------------------------------------------------------- la taille de granule -------------------------------------- granule_size taille de granule granule_size taille de granule granule_size taille de granule

manual auto auto last_oper_time auto

Oracle upg adm 9i


BIEN VOIR : Une ligne de V$BUFFER_POOL dcrit un buffer_pool : default/keep/recycle un blocksize : std ou 2k ou 4k ou 8K ou16k ou 32k

Claude DA COSTA
TUNING DU BUFFER CACHE : LA VUE ACTUELLE EN 9i SI PARAMETRES DE GESTION DYNAMIQUE DB_xxCACHE SIZE

Chap 13 Tablespaces Managt Page 15/33

MNEMO :

db_

keep_ cache_size recycle_ rien 2k 4K 8K 16K 32K

V$BUFFER_POOL name V$BUFFER_POOL name V$BUFFER_POOL defaul t name V$BUFFER_POOL name defaul t V$BUFFER_POOL keep defaul t name keep defaul t name e keep defaul t recycl name recycl e keep defaul t name recycl e keep defaul t recycl e defaul t keep recycl block_size e recycl e keep block_size keep recycl block_size e 2048 recycl e 2048 block_size 4096 block_size 2048 4096 2048 block_size 8192 4096 2048 block_size 8192 4096 2048 block_size 16384 8192 4096 2048

du buffer pool : 1-8 du buffer pool : 1-8 du buffer pool : 1-8 du buffer pool : 1-8 du buffer pool : 1-8 du buffer pool : 1-8 du buffer pool : 1-8 du buffer pool : 1-8

V$BUFFER_POOL

id id id id id id V$BUFFER_POOL id V$BUFFER_POOL id

16384 8192 4096 2048 16384 32768 8192 4096 16384 32768 8192 4096 16384 32768 8192 16384 32768 8192 16384 32768 32768 current_size taille actuelle en MB 16384 current_size taille actuelle en MB 32768 current_size taillenombre actuellede en MB buffers buffers 32768 current_size buffers taille nombre actuelle de en buffers MB current_size taille actuelle en MB buffers target_size nombre taille de cible buffers si resize en cours : current_size current_size taille nombre actuelle de en buffers MB buffers target_sizetaille taille cible si resize en cours : actuelle en MB buffers buffers target_size nombre taillede cible buffers si db_xx_cache_size= resize en cours : ) (alter nombre system set current_size actuelle en buffers MB target_size (alter taille system taillede cible set si db_xx_cache_size= resize en cours : ) buffers nombre de buffers target_size (alter system taille cible set si db_xx_cache_size= resize en cours : ) buffers target_size nombre taille de cible buffers si db_xx_cache_size= resize en cours : ) (alter system set target_size (alter system taille cible set si db_xx_cache_size= resize en cours : ) target_size taille cible resize en cours : ) (alter system set si db_xx_cache_size= (alter system set db_xx_cache_size=) (alter system set db_xx_cache_size=)

db_recycle_cache_size=nM

db_cache_size=nM db_16k_cache_size=nM db_32k_cache_size=nM

db_keep_cache_size=nM

db_block_size=

Oracle upg adm 9i

Claude DA COSTA
MODIFICATION DYNAMIQUE DES TAILLES DE COMPOSANTS

Chap 13 Tablespaces Managt Page 16/33

db_block_size

db_block_size

Appel "primarily block size"

db_block_buffers buffer_pool_keep=

=nb
( buffers:nb lru_latches:nb )

db_cache_size db_keep_cache_size db_recycle_cache_size

default pool identifi en taille directement et taille totale abandonn keep pool identifi en taille directement recycle pool identifi en taille directement

buffer_pool_recycle=

buffers:nb

lru_latches:nb

shared_pool_size log_buffer

shared_pool_size log_buffer

conserv

conserv

8i

9i

REMARQUER : Le nombre de lru_latches et de buffers pour keep et recycle ne sont plus indiqus : DESORMAIS, ILS SONT ETABLIS DYNAMIQUEMENT (dtail sur la suite)

Oracle upg adm 9i

Claude DA COSTA
NOUVELLE STRUCTURE SGA
SHARED_POOL_SIZE =

Chap 13 Tablespaces Managt Page 17/33

LARGE_POOL_SIZE

Library

cache
Buffer cache des donnes

Dico cache

"raw" cache

Large Pool

Shared poool

16MB 4MB

16MB 4MB

16MB 4MB

db_recycle_cache_size= nM

db_cache_size= nM db_2k_cache_size=n M db_4k_cache_size=n M db_8k_cache_size=n M db_16k_cache_size=n M db_32k_cache_size=n M


16MB 4MB 16MB 4MB 16MB 4MB 16MB 4MB 16MB 4MB

db_keep_cache_size= nM

db_block_size=

SAVOIR : Dsormais, db_block_lru_latc h e s et db_writer_processe s sont calculs automatiqueme nt

Oracle upg adm 9i

Claude DA COSTA
MODALITES DE CALCUL AUTOMATIQUE DES NOMBRES DE LATCHES

Chap 13 Tablespaces Managt Page 18/33

BIEN VOIR : Le nombre de LRU LATCHES TOTAL est gal (nbCpus / 2 ) * nbPools * nbblksizes

CPU CPU CPU CPU CPU CPU

SAVOIR : Dsormais, db_block_lru_latches et db_writer_processes sont calculs automatiquement

db_block_lru_latches

CALCULE AUTOMATIQUEMENT

/2 (ou 1) par buffer pool et blksize

LRU latch

LRU latch

LRU latch

LRU latch

LRU latch

LRU latch

LRU latch

LRU latch

LRU latch

db_block_size=

tch a l U 1 LR ool et p par SIZE Us P C BLK s 2 e l es tout

LRU latch

LRU latch

LRU latch

Oracle upg adm 9i

Claude DA COSTA
MODALITES DE CALCUL AUTOMATIQUE DES NOMBRES DE DBWRs

Chap 13 Tablespaces Managt Page 19/33

CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU

BIEN VOIR : Le nombre de DBWRs est gal (nbCpus / 8 )

SAVOIR : Dsormais, db_block_lru_latches et db_writer_processes sont calculs automatiquement

db_writer_processes

CALCULE AUTOMATIQUEMENT

/8

(ou 1)

DECmmp 12000

Wn B D 1 CPUs 8 les s e tout

Buffer cache des donnes

DBW0

DBW1

DBW2

DBW4

datafile

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 20/33

DB CACHE ADVICE
Objectifs: Permettre de prvoir le comportement du BCD avec diffrentes tailles de cache ET tailles de block : ce dispositif produit des lignes dans une vue, qui servent gnrer des rapports. Mise en oeuvre : Activation : alter system set db_cache_advice = actif inactif prt (non oprationnel et mmoire alloue) Contrle : on off ready

V$DB_CACHE_ADVICE
Exploitation des rsultats :

(status)

V$DB_CACHE_ADVICE : identique V$BUFFER_POOL (n lots de 8 lignes) nom du buffer pool block size nb buffers utilise dans la prdiction taille de cache utilise dans la prdiction nb phy reads / nb cache reads nb phy reads estim name block_size base d'estimation buffers_for_estimate size_for_estimate estd_physical_read_factor Rsultat d'estimation estd_physical_reads

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 21/33

LE CACHE ADVISORY : PREVOIR LE COMPORTEMENT DU BCD AVEC DIVERSES TAILLES DE CACHE on db_cache_advice = ready off cache advisory feature ENABLED cache advisory feature DISABLED et memoire ALLOUEE cache advisory feature DISABLED

OFF
alter system se t

alter

system

se t

db_cache_advic e = db_cache_advic e =

off

on

ON
alter system se t

READY
db_cache_advic e =

ready

SAVOIR : Le "Cache Size Advisory Feature " permet de prvoir le comportement avec diffrentes tailles de cache. On met en oeuvre ou l'on inhibe la collecte de statistiques destines effectuer ces prvisions grace la commande alter system set db_cache_advice = on | off | ready.

Oracle upg adm 9i

Claude DA COSTA
LE CACHE ADVISORY : CONSULTATION DES RESULTATS

Chap 13 Tablespaces Managt Page 22/33

BIEN VOIR : A rapprocher de la vue V$BUFFER_POOL pour la similarit de structure : V$BUFFER_POOL contient les valeurs actuelles relatives chacune des partitions de buffers (id ). V$DB_CACHE_ADVICE contiendra, pour chaque partition de buffer (id ), l'ensemble des valeurs ESTIMEES d'critures physiques et de taux d'critures physiques, pour une certaine taille.

cache name (taille de utilise, en MB) default V$DB_CACHE_ADVICE keep recycle default name id id recycle V$DB_CACHE_ADVICE id id id default keep id name block_s i z e du buffer id pool :: 1-8 1-8 du buffer id pool dubuffer bufferpool pool 1-8 recycle du buffer pool :: 1-8 1-8 du du buffer pool pool ::: 1-8 1-8 default keep 2048 du buffer status block_s i z e du buffer pool : 1-8 V$BUFFER_POOL keep recycle currently running V$BUFFER_POOL ON V$BUFFER_POOL 2048 4096 V$BUFFER_POOL block_s i z e V$BUFFER_POOL V$BUFFER_POOL V$BUFFER_POOL OFF recycle disabled V$BUFFER_POOL 4096 8192 block_s i z e 2048 name name name name name 8192 16384 name name default default name name block_s i z e 2048 4096 default 32768 default 16384 default default keep keep default default keep default 2048 4096 8192 keep keep keep 32768 recycle keep recycle 16384 keep recycle recycle keep 4096 8192 recycle status recycle recycle recycle 32768 recycle ON currently running 8192 16384 status block_s block_s iz z e block_s iz e iz e block_s iz e OFF disabled 16384 32768 block_s iz e block_s 2048 2048 iz e ON currently running block_s i e 2048 block_s i z e status 2048 2048 block_s i z e 32768 4096 2048 OFF disabled 2048 2048 4096 4096 ON currently running 4096 4096 status 4096 8192 2048 size_for_estim a t e taille de cache prdite en MB 8192 4096 8192 4096 8192 OFF disabled 8192 ON currently running 16384 8192 8192 16384 4096 status 8192 16384 size_for_estim a t e taille de cache prdite en MB 16384 16384 16384 OFF disabled 32768 16384 32768 8192 ON currently estd_physical_read_factor running ratio nb phy reads / nb cach reads. null si 16384 32768 32768 32768 32768 size_for_estim a t e taille de cache prdite en MB 32768 aucun phy read OFF disabled 32768 16384 estd_physical_read_factor ratio nb phy reads / nb cach reads. null si size_for_estim a t e taille de cache prdite MB taille current_s iz z e taille actuelle actuelle en en MB MB estd_physical_ re a d s en aucun nombre estim de phy reads pour la current_s iz e taille 32768 phy read current_s iz e taille actuelleen enMB MB current_s iz e taille actuelle en MB current_s iz e taille actuelle estd_physical_read_factor ratio nb phy reads / nb cach reads. null si current_s i e taille actuelle en MB de cache buffe r s nombre de buffers current_s i z e taille actuelle en MB current_s buffe r s i z e taille nombre actuelle de en buffers MB size_for_estim a t e taille de cache prdite MB estd_physical_ re a d s en aucun nombre estim de phy reads pour la taille buffe buffe r s nombre de de buffers buffers buffe r s nombre de buffers phy read r s nombre buffe s nombre de buffers buffers a testd_physical_read_factor ratio nb phy reads / nb cach reads. null si buffe target_si z e taillede cible si resize resize en en cours cours : buffe rr s nombre de buffers de cache target_si r s z e nombre taille cible si buffers_for_estim e nb buffers selon size_for_estimate target_si z e taille cible si resizeen encours cours:::: estd_physical_ r e a d s nombre estim de phy reads pour la taille target_si target_si z e taillecible ciblesi siresize resize en cours target_si z e taille cible si resize aucun phy read z e taille en cours : ( alter system set db_xx_cache_size= target_si z e taille cible si resize en cours ( alter system set db_xx_cache_size= estd_physical_read_factor ratio nb phy reads / nb cach reads. null si target_si z e system taille cible si resize en cours ::)))) ( alter system set db_xx_cache_size= de cache ( alter set db_xx_cache_size= ( alter system set db_xx_cache_size= ) estd_physical_ reads nombre estim de phy reads pour la taille ( alter system set db_xx_cache_size= ) aucun phycach readreads. null si alter system system set set db_xx_cache_size= db_xx_cache_size= (( alter )) estd_physical_read_factor ratio nb phy reads / nb de cache estd_physical_ reads nombre estim de phy reads pour la taille aucun phy read de cache estd_physical_ reads nombre estim de phy reads pour la taille
de cache

id id id id id du buffer buffer pool :: 1-8 1-8 id du pool id du buffer pool 1-8 id id du buffer buffer pool pool :::1-8 1-8 id id du id du buffer pool : 1-8 id du buffer buffer pool :: 1-8 1-8 du buffer buffer du pool 1-8 pool id du pool ::1-8 1-8 id du buffer pool id id du buffer pool ::1-8 1-8 id du buffer pool id id du buffer pool : :1-8 1-8 buffers_for_estimate id du buffer pool : du buffer id du pool buffer 1-8 pool : 1-8 du buffer pool ::1-8 1-8 id iddu du buffer pool id id du buffer pool ::1-8 1-8 (nb buffers d'estimation) id buffer pool id du buffer buffer pool : :1-8 1-8 buffers_for_estimate id du pool : du buffer id pool : 1-8 du buffer pool : 1-8 du buffer idpool pool :1-8 1-8 du buffer pool 1-8 id id du buffer pool : :1-8 id du buffer (nb buffers d'estimation) id du buffer pool: ::1-8 1-8 id buffers_for_estimate du buffer pool id V$DB_CACHE_ADVICE du buffer id du pool buffer : 1-8 pool : 1-8 du buffer id pool : 1-8 id du buffer id pool : 1-8 du buffer buffer pool pool :: 1-8 1-8 id (nb buffers d'estimation) du id du buffer pool : 1-8 id buffers_for_estimate du buffer pool : 1-8 idpool V$DB_CACHE_ADVICE du buffer buffer du pool buffer 1-8 pool : 1-8 id du id pool ::1-8 1-8 du buffer id :1-8 du buffer pool:::1-8 1-8 name (nb buffers d'estimation) du buffer pool du buffer pool buffers_for_estimate du buffer pool : 1-8 V$DB_CACHE_ADVICE du buffer pool : 1-8 name default (nb buffers d'estimation) size_for_estimate V$DB_CACHE_ADVICE keep

Oracle upg adm 9i

Claude DA COSTA
LE CACHE ADVISORY : CONSULTATION DES RESULTATS

Chap 13 Tablespaces Managt Page 23/33

column column column column

size_for_estimate format 999,999,999,999 heading Cache Size (MB) buffers_for_estimate format 999,999,999 heading Buffers estd_physical_read_factor format 999.90 heading Estd Phys|Read Factor estd_physical_reads format 999,999,999 heading Estd Phys| Reads

SELECT size_for_estimate, buffers_for_estimate , estd_physical_read_factor, estd_physical_reads FROM V$DB_CACHE_ADVICE WHERE name = DEFAULT AND block_size = (SELECT value FROM V$PARAMETER WHERE name = db_block_size) AND advice_status = ON;

The following output shows that if the cache was 212 MB, rather than the current size of 304 MB, the estimated additional number of physical reads would be over 17 million (17,850,847). Increasing the cache size beyond its current size would not provide a significant benefit.
Estd Phys Estd Phys Cache Size (MB) Buffers Read Factor Reads ------------- -------------- ---------- ---------------30 3,802 18.70 192,317,943 60 7,604 12.83 131,949,536 91 11,406 7.38 75,865,861 121 15,208 4.97 51,111,658 152 19,010 3.64 37,460,786 182 22,812 2.50 25,668,196 212 26,614 1.74 17,850,847 243 30,416 1.33 13,720,149 273 34,218 1.13 11,583,180 304 38,020 1.00 10,282,475 334 41,822 .93 9,515,878 364 45,624 .87 8,909,026 395 49,426 .83 8,495,039 424 53,228 .79 8,116,496 456 57,030 .76 7,824,764 486 60,832 .74 7,563,180 517 64,634 .71 7,311,729 547 68,436 .69 7,104,280 577 72,238 .67 6,895,122 608 76,040 .66 6,739,731

10% of Current Size

Current Size

200% of Current Size

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 24/33

INDIQUER LE BLOCK SIZE


Au niveau DATABASE : taille de block standard db_block_size recycle keep default BCD altern BCD db_recycle_cache_size db_keep_cache_size db_cache_size db_2-32 K_cache_size

taille de block non standard

Au niveau TABLESPACE : CREATE TABLESPACE ........ BLOCKSIZE nK

Contrle : DBA_TABLESPACES ( block_size )

Oracle upg adm 9i

Claude DA COSTA
LE MULTIPLE BLOCK SIZE SUPPORT AU NIVEAU DE LA DATA BASE

Chap 13 Tablespaces Managt Page 25/33

SAVOIR : Le "Multiple Block Size support" permet la cration de bases ayant plusieurs blocksizes. BIEN VOIR : un buffer_pool : default/keep/recycle un blocksize : std ou 2k ou 4k ou 8K ou 16k ou 32k les recycle et keep pools ne peuvent avoir que le block size standard (dfini par db_block_size ) Le default pool a le blocksize dfini par db_block_size (pour une taille dfinie par db_cache_size ) puis des blocksizes et tailles dfinis en une fois par le paramtre db_ nK_cache_size .

db_recycle_cache_size=nM

db_cache_size=nM db_2k_cache_size=nM db_4k_cache_size=nM db_8k_cache_size=nM db_16k_cache_size=nM db_32k_cache_size=nM

db_keep_cache_size=nM

nM

>

4Mb

16Mb

SGA size==> < 128MB

> 128MB

db_block_size

Oracle upg adm 9i

Claude DA COSTA
LE MULTIPLE BLOCK SIZE SUPPORT AU NIVEAU DU TABLESPACE

Chap 13 Tablespaces Managt Page 26/33

CAS D'USAGE : Transport de tablespaces entre bases de diffrent blocksize. Par exemple,

OLTP vers un DATAWAREHOUSE.

SAVOIR : Le block size souhait peut tre affect un tablespace. Nouvelle clause BLOCKSIZE l'ordre CREATE TABLESPACE Nouvelle colonne BLOCK_SIZE la vue DBA_TABLESPACES

create

tablespace

tsname

datafile

'filename'

size n k/m

tablespace_name

DBA_TABLESPACES
extent management local autoallocate
status
online offline read only

segment_space_management

segment space management auto

auto manua l

extent_management local dictionary allocation_type block_size min_extents max_extents initial_extent next_extent pct_increase

blocksize

nk

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 27/33

LES ERREUR POSSIBLES


Indiquer un block size alternatif gal au block size standard : n gal au n de db_block_size= n de db_ nK_cache_size

ORA-380

Indiquer un block size alternatif incompatible avec la plateforme : n de db_ nK_cache_size non conforme pour plateforme

ORA-382

indiquer des tablespaces de blocksize diffrents pour des partitions d'un mme segment

indiquer blocksize alternatif pour un tablespace utilis comme Wide Temporary Tablespace

Oracle upg adm 9i

Claude DA COSTA
LES ERREURS POSSIBLES ET LEUR CODE

Chap 13 Tablespaces Managt Page 28/33

ORA-00380

cannot specify db_numberk_cache_size since numberK is the standard block size

db_block_size=nK

db_ n k_cache_size=nM
DIFFERENTS ?

ORA-380

NON

Cause : User specified the parameter DB_ nK_CACHE_SIZE (where n is one of 2,4,8,16,32), while the standard block size for this database is equal to n Kbyte s. This is illegal. Action : Specify the standard block size cache using DB_CACHE_SIZE (DEFAULT pool) (and DB_RECYCLE_CACHE_SIZE , DB_KEEP_CACHE_SIZE if additional buffer pools are required). Do NOT use the corresponding DB_ nK_CACHE_SIZE parameter for the standard block size.

Oracle upg adm 9i

Claude DA COSTA
LES ERREURS POSSIBLES ET LEUR CODE

Chap 13 Tablespaces Managt Page 29/33

ORA-00382 string

not a valid block size, valid range [string..string]

db_nk_cache_size=nM

IBM AS/400

VALID FOR THIS PLATFORM ?

NON

ORA-382

Cause : User specified a value for DB_nK_CACHE_SIZE where n is one of { 2 , 4, 8, 16, 32}, but n k is not a valid block size for this platform. Action : Remove corresponding parameter from the initialization parameter file and restart the instance.

Oracle upg adm 9i

Claude DA COSTA
LES REGLES

Chap 13 Tablespaces Managt Page 30/33

REGLE 1 : TOUTES PARTITIONS D'UN MEME OBJET DOIVENT RESIDER SUR DES TABLESPACE DE MEME BLOCKSIZE
col col col col

col

col

col

col

col col col col col

col

col

col

create

tablespace

.............

create

tablespace

.............

create

tablespace

.............

blocksize

Oracle upg adm 9i

Claude DA COSTA
LES REGLES

Chap 13 Tablespaces Managt Page 31/33

REGLE 2 : TOUS LES TABLESPACES PERMANENTS OU TEMPORAIRES UTILISES COMME DEFAULT TEMPORARY TABLESPACE (WTST) EXIGENT LE BLOCKSIZE STANDARD

create

default

temporary

tablespace

tsname

TEMPORAIRES "uniformmanaged"

tempfile
extent management local unifor m

'filename'

size n k/m

Def :

EXTENT

EXTENT

1M size
size K|M

blocksize

Oracle upg adm 9i

Claude DA COSTA
LES REGLES

Chap 13 Tablespaces Managt Page 32/33

REGLE 3: IL EST POSSIBLE D'ADOPTER UN BLOCKSIZE POUR UN LOB SEGMENT OU UN OVERFLOW D'IOT, DIFFERENT DE CELUI DE LA TABLE DE BASE
create tablespace blocksize .............

tablespace

ts

TABLESPAC E

Xk

create

table tab

(,

col

datatype

constraint ctr

primary key

en te te

organization index including


col

lon g

PK

po rtio ni nd ex
val

PK
lon gc ol

overflow tablespace
pctthreshold
n

ts

val col lon gc ol

d bo po rde rti me on nt
val col

create

tablespace

.............

SEGMENT DE DEBORDEMENT

TABLESPAC E blocksize d'overflow

Yk

Oracle upg adm 9i

Claude DA COSTA
LES REGLES

Chap 13 Tablespaces Managt Page 33/33

REGLE 3: IL EST POSSIBLE D'ADOPTER UN BLOCKSIZE POUR UN LOB SEGMENT OU UN OVERFLOW D'IOT, DIFFERENT DE CELUI DE LA TABLE DE BASE

LOBI N T

Vous aimerez peut-être aussi