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 automatisée des rollback segments

Dynamic SGA granules & Multiple Block sizes Contrôle 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

ü Indiquer à Oracle le tablespace undo souhaité

ü Disposer d'un espace disque suffisamment important pour obéïr aux exigences de rétention

ü Créer un tablespace undo sur cet

espace disque

ü soit au moment de la création de la base

ü soit, indépendamment de la céation de la base

ü Indiquer à Oracle le tablespace undo créé

ü Indiquer à Oracle l'exigence de rétention snapshot en secondes

Maintenance

:

undo_management=AUTO undo_tablespace=' undts '

create database db dbnam undo tablespace undts datafile 'filnam ' size nM autoextend on next nM maxsize nM create undo tablespace undts

datafile 'filnam' size nM autoextend on next nM maxsize nM undo_tablespace =undts

undo_retention

=n

Opérations classiques applicables sur un tablespace :

/

Monitoring : nouvelle vue

alter tablespace undts add datafile / rename / begin backup

end backup / alter database datafile offline | online drop tablespace undts V$UNDOSTAT

Précautions :

ü Le tablespace SYSTEM abrite toujours ses propres rolback, indépendamment du mode d'undo adopté.

ü par défaut, undo_management=manual ü undo_tablespace est dynamique (alter system set undo_tablespace=

)

Oracle upg adm 9i

Claude DA COSTA AUTOMATIC UNDO MANAGEMENT FEATURE : PRESENTATION

Chap 13 Tablespaces Managt Page 3/33

: 1er ts

seulement

comme

undo_tablespace

ADMIS

adopté

AUTO

undo_management=

MANUAL

undo_tablespace= 'undts '

rollback_segments=(rbs1,rbs2,

,rbsn)

create

un do

tablespa ce

und ts

 

datafi le

'filename '

size n k/m

autoexten

d on

maxsiz e n k/m

' size n k/m autoexten d on maxsiz e n k/m OBJECTIF : ü Simplifier et
' size n k/m autoexten d on maxsiz e n k/m OBJECTIF : ü Simplifier et

OBJECTIF :

ü Simplifier et automatiser la gestion des rollback segments.

ü Le DBA est affranchi complètement de la création, de la maintenance et du suivi des segments rollback.

ü Il se focalise sur un espace disque et une exigence de rétention des informations, tout le reste étant laissé à la discrétion 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 défaut.

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 présent, 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

database

dbname

OU

create

create
create
CREATION DU TABLESPACE UNDO create database dbname OU create undo tablespace undts datafile autoextend on

undo

tablespace

undo tablespace
undo tablespace

undts

datafile

datafile

autoextend

on

maxsize n k/m

'filename'

size n k/m

undo_manageme nt=

AUTO

undo_tablespace='undts'

undo_manageme nt= AUTO undo_tablespace=' undts ' BIEN VOIR : ü Il ne s'agit pas d'un create

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 résultat est seulement la création d'un tablespace prêt à être géré en mode UNDO. ==> présence 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 probabilités 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 autorisées :

ü ADD DATAFILE

ü RENAME

ü DATAFILE ONLINE/OFFLINE

ü BEGIN / END BACKUP

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 6/33

RETENTION DES IMAGES AVANT ET SUPPRESSION DES ERREURS DUES A ALTER RBS ONLINE

SAVOIR :

ü Désormais, les rollback segments et leurs extents ne sont plus accessibles. Ils sont décidés par Oracle seul.

ü L'exigence de rétention d'images avant que l'on estimait en fonction du nobre d'extents des rollback et de l'activité générale est désormais préçisée DIRECTEMENT EN SECONDES à Oracle, avec le paramètre undo_retention=nbsec.

ü Par ailleurs, on admet que certaines commandes alter rollback segment online peuvent subsister dans des scripts ou bien être lancées par réflexe. En mode Auto, cela provoquera des messages d'erreur que l'on peut demander à ne pas voir apparaître, grace au paramètre undo_suppress_errors=true.

ü Les paramètres suivants peuvent être modifiés par la commande ALTER SYSTEM SET :

ü undo_tablespace

ü undo_suppress_errors

ü undo_retention

(opération de switch par exemple) (true ou false en ligne) (exigence de rétentiondes images avant)

ü Les paramètres suivants ne peuvent pas être modifiés par la commande ALTER SYSTEM SET :

ü undo_management

(une fois choisi, le mode de management des rollback ne peut être modifié dans l'instance)

12 11 1 10 2 undo_retention= nsecs 9 3 entraî ne 8 4 7 5
12
11
1
10
2
undo_retention= nsecs
9
3
entraî ne
8
4
7
5
6
TRUE
SI ON VEUT
alter
rollback segment rbs
ERROR
online
undo_suppress_errors=
FALSE
SI ON NE VEUT PAS

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 7/33

: 1er ts

seulement

comme

pace

ADMIS

adopté

undo_tables

AUTO

undo_management=

MANUAL

RECAP PARAMETRES D'INITIALISATION

undo_tablespace='undts'

rollback_segments=(rbs1,rbs2 ,

,rbsn

)

create

UNDO

TBLESPACE

UNDO TBLESPACE

undt s

datafile

autoexten

'filename '

d on

maxsize n k /m

size n k /m

12 11 1 10 2 undo_retention=nsecs 9 3 entraîne 8 4 7 5 6 TRUE
12
11
1
10
2
undo_retention=nsecs
9
3
entraîne
8
4
7
5
6
TRUE
SI ON VEUT
alter
rollback segment rbs
ERROR
online
undo_suppress_errors=
FALSE
SI ON NE VEUT PAS

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 8/33

SUPPRESSION DE TABLESPACE UNDO

DROP

DROP

TABLESPACE

TABLESPACE

undotsname

SAVOIR :

Lorsque la commande DROP

TABLESPACE

undotsname est utilisée, un INCLUDE CONTENTS implicite est effectué.

ü En conséquence, 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 même si en conséquence, des extents maintenus pour rétention sont supprimés.

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 9/33

MONITORING

DES

ROLLBACK

SAVOIR :

ü V$UNDOSTAT applicable aussi bien pour rollback auto et manual

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.

1

ligne pour 10 mns, 1008 lignes, 7 jours

V$UNDOSTAT V$UNDOSTAT V$UNDOSTAT V$UNDOSTAT V$UNDOSTAT V$UNDOSTAT begin_time début de l'intervalle de temps
V$UNDOSTAT
V$UNDOSTAT
V$UNDOSTAT
V$UNDOSTAT
V$UNDOSTAT
V$UNDOSTAT
begin_time
début de l'intervalle de temps
V$UNDOSTAT
V$UNDOSTAT
ü begin_time
début de l'intervalle de temps
ü
ü begin_time
début de l'intervalle de temps
V$UNDOSTAT
V$UNDOSTAT
V$UNDOSTAT
ü
begin_time
début de l'intervalle de temps
ü
begin_time
ü
end_time
début de l'intervalle de temps
fin de l'intervalle de temps
ü
begin_time
ü
end_time
fin de l'intervalle de temps
ü
begin_time
ü
end_time
début de l'intervalle de temps
ü
end_time
début de l'intervalle de temps
fin de l'intervalle de temps
ü
begin_time
ü
undoblks
début de l'intervalle de temps
fin de l'intervalle de temps
Nb blocks undo total consommés
ü
begin_time
ü
end_time
ü
undoblks
fin de l'intervalle de temps
ü
end_time
début de l'intervalle de temps
Nb blocks undo total consommés
ü
begin_time
ü
undoblks
début de l'intervalle de temps
fin de l'intervalle de temps
Nb blocks undo total consommés
ü
begin_time
ü
end_time
ü
end_time
ü
undoblks
ü
début de l'intervalle de temps
fin de l'intervalle de temps
maxconcurre ncy
fin de l'intervalle de temps
Nb blocks undo total consommés
ü
grand
nombre
de
transactions
concuramment durant la
période
ü
end_time
undoblks
Le
plus
exécuté
ü
undoblks
ü
maxconcurre ncy
fin de l'intervalle de temps
Nb blocks undo total consommés
ü
end_time
ü
maxconcurre ncy
fin de l'intervalle de temps
Nb blocks undo total consommés
Le
plus
grand
nombre
de
transactions
période
ü
undoblks
Le
plus
grand
nombre
de
transactions
exécuté exécuté
concuramment concuramment durant durant la la
période
ü
end_time
ü
undoblks
ü
maxconcurre ncy
fin de l'intervalle de temps
Nb blocks undo total consommés
Le
plus
grand
nombre
de
transactions
exécuté
concuramment durant la
période
ü
maxconcurre ncy
ü
txncount
Nb blocks undo total consommés
Le
Nombre total de transactions exécutées dans la période
plus
grand
nombre
de
transactions
exécuté
concuramment durant la
période
ü
undoblks
ü
maxconcurre ncy
ü
txncount
Nb blocks undo total consommés
Le
Nombre total de transactions exécutées dans la période
plus
grand
nombre
de
transactions
exécuté
concuramment durant la
période
ü
undoblks
ü
maxconcurre ncy
ü
txncount
Nb blocks undo total consommés
Nombre total de transactions exécutées dans la période
ü
txncount
Le
Nombre total de transactions exécutées dans la période
plus
grand
nombre
de
transactions
exécuté
concuramment durant la
période
ü
undoblks
ü
maxconcurre ncy
Nb blocks undo total consommés
ü
maxconcurre ncy
ü
txncount
ü
maxquerylen
Le
plus
nombre
transactions
concuramment durant la
ü
Nombre total de transactions exécutées dans la période
Longueur en secondes de la plus longue requête
grand
de
exécuté
période
maxquerylen
Longueur en secondes de la plus longue requête
ü
txncount
Nombre total de transactions exécutées dans la période
plus
grand
nombre
de
transactions
exécuté
concuramment durant la
période
ü
maxconcurre ncy
ü
maxquerylen
Le Le
plus
Longueur en secondes de la plus longue requête
ü
txncount
Nombre total de transactions exécutées dans la période
grand
nombre
de
transactions
exécuté
concuramment durant la
période
ü
maxconcurre
ü
maxquerylen
ü
txncount
ü
maxquerylen
ü
expstealcnt
ncy
Le
Longueur en secondes de la plus longue requête
Nombre total de transactions exécutées dans la période
plus
Nombre de tentatives de transfert d'un extent expiré, d'un undo segment vers un autre
grand
nombre
de
transactions
exécuté
concuramment durant la
période
ü
txncount
Longueur en secondes de la plus longue requête
ü
txncount
ü
maxquerylen
ü
expstealcnt
Nombre total de transactions exécutées dans la période
Longueur en secondes de la plus longue requête
Nombre de tentatives de transfert d'un extent expiré, d'un undo segment vers un autre
ü
txncount
ü
maxquerylen
ü
expstealcnt
Nombre total de transactions exécutées dans la période
ü
expstealcnt
Nombre total de transactions exécutées dans la période
Longueur en secondes de la plus longue requête
Nombre de tentatives de transfert d'un extent expiré, d'un undo segment vers un autre
ü
maxquerylen
ü
sso lderrcnt
Longueur en secondes de la plus longue requête
Nombre de tentatives de transfert d'un extent expiré, d'un undo segment vers un autre
Nombre
d'erreurs
"snapshot too
old
intervenus
durant la
période
ü
maxquerylen
ü
expstealcnt
ü
sso lderrcnt
Longueur en secondes de la plus longue requête
Nombre de tentatives de transfert d'un extent expiré, d'un undo segment vers un autre
ü
expstealcnt
Nombre de tentatives de transfert d'un extent expiré, d'un undo segment vers un autre
Nombre
d'erreurs
"snapshot too
old
intervenus
durant la
période
ü
maxquerylen
ü
expstealcnt
ü
sso lderrcnt
Longueur en secondes de la plus longue requête
Nombre de tentatives de transfert d'un extent expiré, d'un undo segment vers un autre
Nombre
d'erreurs
"snapshot too
old
intervenus
durant la
période
ü
maxquerylen
ü
expstealcnt
ü
sso lderrcnt
Longueur en secondes de la plus longue requête
ü
sso lderrcnt
Nombre de tentatives de transfert d'un extent expiré, d'un undo segment vers un autre
Nombre
d'erreurs
"snapshot too
old
intervenus
durant la
période
ü
expstealcnt
Nombre de tentatives de transfert d'un extent expiré, d'un undo segment vers un autre
Nombre
d'erreurs
"snapshot too
old
intervenus
durant la
période
ü
expstealcnt
ü
sso lderrcnt
Nombre de tentatives de transfert d'un extent expiré, d'un undo segment vers un autre
Nombre
d'erreurs
"snapshot too
old
intervenus
durant la
période
ü
expstealcnt
ü
sso lderrcnt
Nombre de tentatives de transfert d'un extent expiré, d'un undo segment vers un autre
Nombre
d'erreurs
"snapshot too
old
intervenus
durant la
période
ü
sso lderrcnt
Nombre
d'erreurs
"snapshot too
old
intervenus
durant la
période
ü
"snapshot too
période
ü
"snapshot too
période
ü
sso sso sso lderrcnt lderrcnt lderrcnt
Nombre Nombre Nombre
d'erreurs d'erreurs d'erreurs
"snapshot too
old old old
intervenus intervenus intervenus
durant durant durant la la la
période

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

Permettre de disposer de plusieurs tailles de bloc, au niveau des tablespaces A L'EXCEPTION DES TABLESPACES

system) de la taille de chaque zone de la SGA.

ü TEMPORAIRES db_block_size ü SYSTEM uniquement ü UNDO TABLESPACE USER
ü TEMPORAIRES
db_block_size
ü SYSTEM
uniquement
ü UNDO TABLESPACE
USER

REMARQUE : UNDO TABLESPACE et TEMPORARY TABLESPACES sont associés à la database et

actuellement, on peut voir les TS system, temporary et undo comme des TS système. Les trois

peuvent être considéré comme des TS SYSTEM.

sont gérés en db_block_size uniquement.

Concerne :

ü Buffer cache

ü Shared pool ü Large pool si taille si taille SGA < 128 Mb SGA
ü Shared
pool
ü Large pool
si
taille
si
taille
SGA < 128 Mb
SGA > 128 Mb
granule size = 4Mb
granule size = 16 Mb
COMPONENT
V$SGA_DYNAMIC_COMPONENTS
nb min granules
nb max granules
3
sga_max_s ize
------------------------- le
composant
---------------------------------------
ü current_siz e
taille
actuelle
du
composant
Suivi :
ü min_si
ze
taille
min
du
composant
depuis
le
start
de
l'instance
ü max_s
ize
taille
max
du
composant
depuis
le
démarrage
de
l'instance
SUIVI DES CACHES
ü oper_cou nt
nombre
d'opérations
exercées
depuis
le
démarrage
de
l'instance
V$SGA_DYNAMIC_COMPONENTS
-------------------------
les
opérations
sur
le
composant-------------------
ü last_oper_type
ü grow
ü shrink
ü last_oper_mode
ü manua l
Calculs automatiques :
ü auto
ü last_oper_time
-------------------------
la taille de granule
---------------------------------------
nb LRU latches
nb DBWRs
nbCPU / 2
nbCPU / 8
(ou 1) PAR POOL
(ou 1)
ü granule_siz e
taille
de
granule

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 11/33

DYNAMIC

SGA

GRANULES

SAVOIR :

Avec 9i, Il est possible de modifier la taille de la SGA dynamiquement (sans arrêter l'instance). Cela concerne :

Library

Dico

cache

cache

Shared poool

Shared poool
Buffer cache des données
Buffer
cache
des
données

ü Le Buffer Cache de Données

ü La Shared Pool

ü Le Redo Log Buffer

Large Pool
Large Pool

Pour assurer ce service, Oracle introduit un mécanisme d'allocation de morceaux de mémoire appelés GRANULES.

Les GRANULES sont des UNITES DE MEMOIRE CONTIGUS.

Les Granules ont deux tailles possibles seulement, qui dépendent de la taille de la SGA, conditionnée par le paramètre 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 frontières de granules, en partant d'1

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

granule

seulement pour chaque entité mémoire

DESORMAIS, LE DBA A LA CAPACITE DE MODIFIER SES ZONES MEMOIRE DE LA SGA PAR UNE COMMANDE ALTER

Les valeurs introduites sont des CIBLES DE TAILLE et non pas des préallocations. Toute valeur introduite par le DBA est automatiquement arrondie à un multiple de taille de granule.

SYSTEM.

SGA_MAX_SIZE=

4MB

< 128MB

GRANULES
GRANULES

16MB

> 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

Chap 13 Tablespaces Managt Page 13/33

DYNAMIC

SGA

GRANULES

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 component’s 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

Chap 13 Tablespaces Managt Page 14/33

SUIVI

COMPONENT COMPONENT COMPONENT V$SGA_DYNAMIC_COMPONENTS V$SGA_DYNAMIC_COMPONENTS V$SGA_DYNAMIC_COMPONENTS
COMPONENT
COMPONENT COMPONENT
V$SGA_DYNAMIC_COMPONENTS
V$SGA_DYNAMIC_COMPONENTS V$SGA_DYNAMIC_COMPONENTS
-------------------------
-------------------------
-------------------------
le composant ---------------------------------------
le composant ---------------------------------------
le composant ---------------------------------------
Library
cache
ü
current_size
taille actuelle du composant
ü
current_size
taille actuelle du composant
ü
min_size
ü
current_size
taille min du composant depuis le start de l'instance
taille
actuelle
du
composant
ü
min_size
Dico cache
ü
4MB
ü
min_size max_size
taille taille taille min min max du du composant du composant composant depuis depuis depuis le le start le start démarrage de de l'instance l'instance de l'instance
ü
Shared poool
ü
max_size max_size oper_count
taille taille nombre max max du d'opérations du composant composant exercées depuis depuis le depuis le démarrage démarrage le démarrage de de l'instance l'instance de l'instance
ü
ü
oper_count
nombre d'opérations exercées depuis le démarrage de l'instance
ü
oper_count
nombre d'opérations exercées depuis le démarrage de l'instance
-------------------------
16MB
-------------------------
-------------------------
les opérations sur le composant-------------------
les les opérations opérations sur sur le le composant------------------- composant-------------------
ü
last_oper_type
ü
last_oper_type
ü
grow
Buffer cache des données
ü
last_oper_type
ü
grow
ü
shrink
ü
ü
grow shrink
ü
last_oper_mode
ü
shrink
ü
last_oper_mode
ü
manu al
ü
last_oper_mode
ü
manu al
ü
auto
ü
manu al
ü
auto
ü
last_oper_time
ü
auto
ü
last_oper_time
ü
last_oper_time
Large Pool
-------------------------
---------------------------------------
-------------------------
---------------------------------------
-------------------------
la taille de granule
la la taille taille de de granule granule
---------------------------------------
ü
granule_size
taille de granule
ü
granule_size
taille de granule
ü
granule_size
taille de granule

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 15/33

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

BIEN VOIR :

Une ligne de V$BUFFER_POOL décrit

ü un buffer_pool : default/keep/recycle

ü un blocksize :

std ou 2k ou 4k ou 8K ou16k ou 32k

MNEMO :

db_

keep_

cache_size

recycle_

rien

2k

4K

8K

16K

32K

id id id du buffer pool : 1-8 id du buffer pool : 1-8 id
id
id
id
du buffer pool : 1-8
id
du buffer pool : 1-8
id
du buffer pool : 1-8
id
V$BUFFER_POOL
du buffer pool : 1-8
id
V$BUFFER_POOL
du buffer pool : 1-8
id
V$BUFFER_POOL
du buffer pool : 1-8
V$BUFFER_POOL
du buffer pool : 1-8
V$BUFFER_POOL
du buffer pool : 1-8
ü
name
ü
name
V$BUFFER_POOL
ü
name
V$BUFFER_POOL
ÿ
default
V$BUFFER_POOL
ü
name
ÿ
default
ü
name
ÿ
ÿ
default
keep
ÿ
keep
ü
name
ÿ
default
ÿ
recycle
ÿ
ÿ
default
keep
ü
ÿ
ÿ
keep
recycle
ü
name name
ÿ
default
ÿ
ÿ
ÿ
default
keep
recycle
ÿ
recycle
ÿ
ÿ
default
keep
ü
ÿ
ÿ
keep
recycle
block_size
ÿ
ü
recycle
block_size
ÿ
keep
ÿ
ü
recycle
block_size
ÿ
2048
ÿ
ü
recycle ÿ
block_size
2048
ü
block_size
ÿ
4096
ÿ
2048
ü
block_size
ÿ
ÿ
2048
4096
ÿ
ÿ
4096
8192
ü
block_size
ÿ
2048
ÿ
8192
ü
block_size
ÿ
ÿ
2048
4096
ÿ
8192 16384
ÿ
ÿ
4096
ÿ
2048
ÿ
8192 16384
ÿ
ÿ
ÿ
2048
4096
ÿ
32768
ÿ
ÿ
4096
8192
ÿ
16384
ÿ
ÿ
16384
32768
ÿ
ÿ
4096
8192
ÿ
ÿ
8192
ÿ
16384
32768
ÿ
ÿ
16384
32768
ÿ
8192
ÿ
ÿ
16384
ü
32768
current_ size
taille actuelle en MB
ÿ
ÿ
16384
ü
32768
current_ size
taille actuelle en MB
ÿ
ü
32768
ü
current_ size
buffe rs
taille nombre actuelle de en buffers MB
ÿ
ü
32768
ü
current_ size
buffe rs
taille actuelle en MB
nombre de buffers
ü
ü
current_ size
ü
buffe rs
target_ size
taille actuelle en MB
nombre de buffers
taille cible si resize en cours :
ü
ü
current_ size
ü
buffe rs
target_ size
taille actuelle en MB
nombre de buffers
taille cible si resize en cours :
ü
ü
current_ size
ü
buffe rs
target_ size
taille actuelle en MB
(alter
system
nombre de buffers
taille cible si resize en cours :
set
db_xx_cache_size=)
ü
ü
current_ size
ü
buffe rs
target_ size
(alter
taille actuelle en MB
system
nombre de buffers
taille cible si resize en cours :
set
db_xx_cache_size=)
ü
ü
buffe rs
target_ size
(alter
system
nombre de buffers
taille cible si resize en cours :
set
db_xx_cache_size=)
ü
ü
buffe rs
target_ size
(alter
system
nombre de buffers
taille cible si resize en cours :
set
db_xx_cache_size=)
ü
target_ size
(alter
system
taille cible si resize en cours :
set
db_xx_cache_size=)
ü
target_ size
(alter
system
taille cible si resize en cours :
set
db_xx_cache_size=)
(alter
system
set
db_xx_cache_size=)
(alter
system
set
db_xx_cache_size=)

db_recycle_cache_size=nM

db_block_size=
db_block_size=

db_cache_size=nM

db_16k_cache_size=nM

db_32k_cache_size=nM

=nM db_block_size= db_cache_size =nM db_16k_cache_size =nM db_32k_cache_size =nM db_keep_cache_size =nM
=nM db_block_size= db_cache_size =nM db_16k_cache_size =nM db_32k_cache_size =nM db_keep_cache_size =nM
=nM db_block_size= db_cache_size =nM db_16k_cache_size =nM db_32k_cache_size =nM db_keep_cache_size =nM

db_keep_cache_size=nM

=nM db_block_size= db_cache_size =nM db_16k_cache_size =nM db_32k_cache_size =nM db_keep_cache_size =nM

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 16/33

MODIFICATION DYNAMIQUE DES TAILLES DE COMPOSANTS

db_block_size

db_block_size

db_block_size db_block_size Appelé "primarily block size" db_block_buffers =nb buffer_pool_keep= ( buffers:nb

Appelé "primarily block size"

db_block_buffers =nb buffer_pool_keep= ( buffers:nb lru_latches:nb ) buffer_pool_recycle= ( buffers:nb
db_block_buffers =nb
buffer_pool_keep=
(
buffers:nb
lru_latches:nb
)
buffer_pool_recycle=
(
buffers:nb
lru_latches:nb
)

db_cache_size

db_cache_size
db_cache_size
db_cache_size

db_keep_cache_size

db_keep_cache_size
db_keep_cache_size
db_keep_cache_size

db_recycle_cache_size

db_recycle_cache_size
db_recycle_cache_size
db_recycle_cache_size

default pool identifié en taille

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

keep pool identifié en taille directementidentifié en taille directement et taille totale abandonné recycle pool identifié en taille directement

recycle pool identifié en taille abandonné keep pool identifié en taille directement directement shared_pool_size log_buffer shared_pool_size

directement

shared_pool_size

log_buffer

shared_pool_size

log_buffer

conservérecycle pool identifié en taille directement shared_pool_size log_buffer shared_pool_size log_buffer conservé 8i 9i

conservérecycle pool identifié en taille directement shared_pool_size log_buffer shared_pool_size log_buffer conservé 8i 9i

8i

9i

log_buffer conservé conservé 8i 9i REMARQUER : Le nombre de lru_latches et de buffers

REMARQUER :

Le nombre de lru_latches et de buffers pour keep et recycle

DESORMAIS, ILS SONT ETABLIS

ne sont plus indiqués :

DYNAMIQUEMENT (détail sur la suite)

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 17/33

NOUVELLE STRUCTURE SHARED_POOL_SIZE = Library cache Buffer cache des données "raw" cache Dico cache
NOUVELLE
STRUCTURE
SHARED_POOL_SIZE =
Library
cache
Buffer
cache
des
données
"raw" cache
Dico
cache
Shared poool
4MB 16MB
4MB 16MB

SGA

LARGE_POOL_SIZE Large Pool
LARGE_POOL_SIZE
Large Pool

4MB 16MB

db_recycle_cache_size = n M db_cache_size = n M db_keep_cache_size= n M

db_recycle_cache_size=nM

db_recycle_cache_size = n M db_cache_size = n M db_keep_cache_size= n M

db_cache_size=nM

db_recycle_cache_size = n M db_cache_size = n M db_keep_cache_size= n M

db_keep_cache_size=nM

db_recycle_cache_size = n M db_cache_size = n M db_keep_cache_size= n M
= n M db_cache_size = n M db_keep_cache_size= n M db_block_size= db_2k_cache_size=nM db_4k_cache_size=nM

db_block_size=

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_2k_cache_size=nM
db_4k_cache_size=nM
db_8k_cache_size=nM
db_16k_cache_size=nM
db_32k_cache_size=nM

4MB 16MB

4MB 16MB

4MB 16MB

4MB 16MB

4MB 16MB

4MB 16MB 4MB 16MB 4MB 16MB 4MB 16MB 4MB 16MB SAVOIR : Désormais, db_block_lru_latches et
4MB 16MB 4MB 16MB 4MB 16MB 4MB 16MB 4MB 16MB SAVOIR : Désormais, db_block_lru_latches et
4MB 16MB 4MB 16MB 4MB 16MB 4MB 16MB 4MB 16MB SAVOIR : Désormais, db_block_lru_latches et

SAVOIR :

Désormais, db_block_lru_latches et db_writer_processe s sont calculés automatiqueme nt

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 18/33

MODALITES DE CALCUL AUTOMATIQUE DES NOMBRES DE LATCHES

latch

1 par LRU BLKSIZE les pool

2 et CPUs

toutes

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

BIEN VOIR :

Le nombre de LRU LATCHES TOTAL e st égal à

(nbCpus / 2 ) * nbPools * nbblksizes

SAVOIR :

Désormais, db_block_lru_latches et db_writer_processes sont calculés automatiquement

Désormais, db_block_lru_latches et db_writer_processes sont calculés automatiquement
db_block_lru_latches
db_block_lru_latches

/2 (ou 1) par buffer pool et blksize

/2 (ou 1) par buffer pool et blksize C A L C U L E AUTOMATIQUEMENT

CALCULE

AUTOMATIQUEMENT

buffer pool et blksize C A L C U L E AUTOMATIQUEMENT LRU latch LRU latch
buffer pool et blksize C A L C U L E AUTOMATIQUEMENT LRU latch LRU latch
buffer pool et blksize C A L C U L E AUTOMATIQUEMENT LRU latch LRU latch
LRU latch LRU latch LRU latch
LRU
latch
LRU
latch
LRU
latch
U L E AUTOMATIQUEMENT LRU latch LRU latch LRU latch LRU latch LRU latch LRU latch
U L E AUTOMATIQUEMENT LRU latch LRU latch LRU latch LRU latch LRU latch LRU latch

LRU

latch

LRU latch
LRU
latch
LRU latch
LRU
latch
LRU latch LRU latch LRU latch LRU latch LRU latch latch LRU latch LRU latch LRU
latch LRU latch
latch
LRU
latch
LRU latch
LRU
latch

LRU

latch LRU latch LRU latch LRU latch latch LRU latch LRU latch LRU LRU latch LRU
latch LRU latch LRU latch LRU latch latch LRU latch LRU latch LRU LRU latch LRU
latch LRU latch LRU latch LRU latch latch LRU latch LRU latch LRU LRU latch LRU
latch LRU latch LRU latch LRU latch latch LRU latch LRU latch LRU LRU latch LRU
latch LRU latch LRU latch LRU latch latch LRU latch LRU latch LRU LRU latch LRU
LRU latch LRU latch LRU latch
LRU
latch
LRU
latch
LRU
latch

db_block_size=

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 19/33

MODALITES DE CALCUL AUTOMATIQUE DES NOMBRES DE DBWRs

toutes 1 les DBWn 8 CPUs

SAVOIR : CPU BIEN VOIR : CPU CPU CPU Le nombre de DBWRs est égal
SAVOIR :
CPU
BIEN VOIR :
CPU
CPU
CPU
Le nombre de DBWRs est égal à
CPU
CPU
CPU
CPU
(nbCpus / 8 )
CPU
CPU
CPU
CPU
Désormais,
db_block_lru_latches
et
db_writer_processes
sont calculés automatiquement
CPU
CPU
CPU
CPU
CPU
CPU
CPU
CPU
CPU
CALCULE
CPU
db_writer_processes
CPU
CPU
AUTOMATIQUEMENT
CPU
CPU
CPU
CPU
CPU
CPU
CPU
CPU
/8
(ou 1)
DECmmp 12000
DBW0
DBW1
DBW2
DBW4
Buffer cache des données datafile
Buffer
cache
des
données
datafile

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 20/33

DB CACHE ADVICE

Objectifs:

Permettre de prévoir le comportement du BCD avec différentes tailles de cache ET tailles de block : ce dispositif produit des lignes dans une vue, qui servent à générer des rapports.

on off ready name
on
off
ready
name
block_size buffers_for_estimate base d'estimation size_for_estimate estd_physical_read_factor Résultat
block_size
buffers_for_estimate
base
d'estimation
size_for_estimate
estd_physical_read_factor
Résultat
d'estimation
estd_physical_reads

Mise en oeuvre :

Activation :

alter system set db_cache_advice =

actif inactif prêt (non opérationnel et mémoire allouée)

Contrôle :

V$DB_CACHE_ADVICE (status)

Exploitation des résultats :

V$DB_CACHE_ADVICE : identique à V$BUFFER_POOL (n lots de 8 lignes)

nom du buffer pool block size nb buffers utilisée dans la prédiction taille de cache utilisée dans la prédiction nb phy reads / nb cache reads nb phy reads estimé

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 cache advisory feature ENABLED cache advisory feature DISABLED et memoire db_cache_advice = ready off
on
cache advisory feature ENABLED
cache advisory feature DISABLED et memoire
db_cache_advice =
ready
off
ALLOUEE
cache advisory feature DISABLED
OFF
alter
system
se t
alter
system
se t
db_cache_advice=
off
db_cache_advice=
on
ON
alter
system
se t
READY
db_cache_advice=
ready

SAVOIR :

Le "Cache Size Advisory Feature " permet de prévoir le comportement avec différentes tailles de cache. On met en oeuvre ou l'on inhibe la collecte de statistiques destinées à effectuer ces prévisions grace à la commande

alter system set db_cache_advice = on | off | ready.

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 22/33

LE CACHE ADVISORY : CONSULTATION DES RESULTATS

BIEN VOIR : A rapprocher de la vue V$BUFFER_POOL pour la similarité de structure :
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.
id
id
id
id
id
du buffer pool : 1-8
du buffer pool : 1-8
id
id
id
id
id
du buffer pool :
id
1-8
du buffer pool : 1-8
id
du buffer pool : 1-8
id
du buffer pool :
1-8
du buffer pool : 1-8
id
du buffer pool : 1-8
du buffer pool : 1-8
du buffer pool : 1-8
id
id
id
du buffer pool :
id
1-8
du buffer pool : 1-8
id
id
id
du buffer pool : 1-8
du buffer pool :
buffers_for_estimate
1-8
id
du buffer pool : 1-8
id
du buffer pool : 1-8
du buffer pool :
id
id
du buffer pool : 1-8
1-8
id
du buffer pool :
1-8
id
du buffer pool :
1-8
id
id
du buffer pool : 1-8
d'estimation)
du buffer pool :
buffers_for_estimate
(nb
buffers
1-8
du buffer pool :
id
id
id
id
du buffer pool :
du buffer pool : 1-8
1-8
1-8
du buffer pool : 1-8
du buffer pool : 1-8
id
id
du
buffer pool :
1-8
du
buffer pool : 1-8
(nb
id
id
du
buffers_for_estimate
buffers
d'estimation)
buffer pool : 1-8
id
du
buffer pool :
1-8
V$DB_CACHE_ADVICE
du buffer
id
du
pool buffer pool : 1-8
:
1-8
du buffer pool
id
id
id
:
1-8
du
du buffer pool
buffer pool
:
:
1-8
1-8
ü
id
id
du
buffer pool
:
1-8
ü
(nb
buffers
d'estimation)
id
du
buffer pool
buffers_for_estimate
:
1-8
ü
buffer pool
:
1-8
ü
V$DB_CACHE_ADVICE
du buffer
id
id
du
du
pool buffer pool
:
1-8
:
1-8
ü
du buffer pool
id
:
1-8
ü
du buffer pool
:
1-8
ü
ü
ü
name
du
du
buffer pool
buffer pool
:
:
1-8
1-8
buffers_for_estimate
ü
(nb
buffers
d'estimation)
du
buffer pool
:
1-8
ü
du
buffer pool
:
1-8
ü
V$DB_CACHE_ADVICE
du
buffer pool
:
1-8
ü
ü
ü
ÿ
default
ü
ü
(nb
ü
buffers
name
d'estimation)
size_for_estimate
ü
V$DB_CACHE_ADVICE
ü
ü
ü
ÿ
keep
ü
ÿ
default
ü
ü
ü
(taille de cache utilisée,
ü
name
ü
V$DB_CACHE_ADVICE
en MB)
ü
ÿ
recycle
ü
ÿ
keep
ü
ÿ
default
ü
ü
name
ü
id
id
ü
ü
V$DB_CACHE_ADVICE
ü
ÿ
recycle
id
ü
ÿ
keep
id
id
ü
ÿ
default
id
ü
ü
name
ü
ü
block_size
du buffer pool : 1-8
id
id
ü
du buffer pool :
1-8
ü
ü
ÿ
recycle
du buffer pool :
du buffer pool : 1-8
1-8
ü
ÿ keep
du buffer pool :
1-8
ü
ÿ default
ÿ 2048
du buffer pool : 1-8
ü
status
du buffer pool :
1-8
ü
block_size
du buffer pool : 1-8
ÿ recycle
ÿ keep
V$BUFFER_POOL
V$BUFFER_POOL
ÿ ON
currently
ÿ running
ÿ 4096
2048
V$BUFFER_POOL
V$BUFFER_POOL
V$BUFFER_POOL
ü
block_size
V$BUFFER_POOL
V$BUFFER_POOL
ÿ OFF
ÿ recycle
disabled
V$BUFFER_POOL
ÿ 8192
ÿ 4096
ÿ 2048
ü
block_size
ü
na me
ÿ 16384
ü
na me
na me
ÿ 8
192
ü
ü
na me
ÿ 4096
ü
na me
ÿ 2048
ü
na me
na me
ÿ
defau lt
ü
na me
ü
block_size
ü
ÿ
defau lt
ÿ 32768
ü
na me
ÿ
ÿ 16384
ÿ
ÿ
defau defau defau lt lt lt
ÿ 8
192
ÿ
ÿ
defau lt
ÿ default
ÿ 4096
ÿ
keep
ÿ
ÿ
ÿ
defau lt
defau lt
keep
ÿ 2048
keep
ÿ
keep
ÿ 32768
ÿ
ÿ
ÿ
ke
keep
ep
recyc le
ÿ 16384
ÿ
ÿ
keep
recyc le
ÿ 8
192
ÿ
ÿ
ÿ
keep
recyc le
ÿ ke
ep
ÿ 4096
recyc le
ü
status
ÿ
recyc le
ÿ
recyc le
ÿ 32768
ÿ
ÿ
recyc le
recyc le
ÿ 16384
ÿ recycle ÿ
8192
ü
ON
currently
running
ü
status
ü
ü
block_size
block_size
ÿ 32768
ü
block_size
ü
block_size
ÿ
1
6384
ü
OFF
running disabled
ü
block_size
ü ON
currently
ü
ü
block_size
block_size
ÿ
2048
ÿ
2048
ü
status
ü
block_size
ÿ
2048
ÿ
2048
ü
block_size ÿ
32768
ÿ
ÿ
2048
running disabled
ÿ
ÿ
2048
2048
4096
ü OFF
ÿ
4096
ü ON
currently
ÿ
ÿ
2048
4096
ÿ
4096
ü
status
ÿ
4096
ÿ 2048
ü
size_for_estimate
taille de
cache prédite en MB
ÿ
ÿ
ÿ
ÿ
4096
8192
ÿ
4096
8192
ÿ
8192
ü OFF
running disabled
ÿ
4096
8192
ü ON
currently
ÿ
ÿ
8192
16384
ÿ 4096 status
ü
ÿ
ÿ
ÿ
8192
8192
16384
ü
size_for_estimate
taille de
cache prédite
en MB
ÿ
ÿ
ÿ
8192
16384
16384
ÿ
16384
ü OFF
disabled
ÿ
ÿ
ÿ
ÿ
16384
32768
ÿ 8192
estd_physical_read_factor
16384
ü ON
currently
ü
running
ratio nb
phy reads /
phy read
nb
cach reads. null si
ÿ
ÿ
16384
32768
32768
ÿ
32768
ü
size_for_estimate
taille de cache prédite
en MB
ÿ
ÿ
32768
32768
ÿ
ÿ 16384
ü OFF
disabled
ÿ
32768 32768
ü
estd_physical_read_factor
ratio nb
phy reads aucun /
nb
cach reads.
null
si
ü
size_for_estimate
ü
estd_physical_reads
taille de cache prédite
en MB
ü
current_size
estimé de phy
reads pour la
ü
taille
ÿ 32768
current_size
taille taille actuelle actuelle en en MB MB
phy read nombre
ü
ü
current_size
current_size
ü
estd_physical_read_factor
ü
current_size
cach reads.
ü
current_size
taille taille taille actuelle actuelle actuelle en en en MB MB MB
de
cache
ratio nb phy reads aucun /
nb
null
si
ü
buffers
taille actuelle en MB
ü
size_for_estimate
ü
estd_physical_reads
taille de cache prédite en MB
ü
ü
ü
current_size
current_size
buffers
nombre de buffers
taille actuelle en MB
taille actuelle en MB
nombre de buffers
read nombre
estimé de phy
reads pour
la taille
ü
ü
buffers
buffers
nombre nombre de de buffers buffers
aucun
phy
ü
buffers
ü
estd_physical_read_factor
ü
buffers
nombre de buffers
ratio nb phy reads /
nb cach reads.
null
si
ü
ü
buffers
target_size
nombre de buffers
nombre de buffers
taille cible si resize en cours :
ü
buffers_for_esti
mate
nb buffers selon size_for_estimate
de
cache
ü
ü
buffers
target_size
ü
target_size
nombre de buffers
taille cible si resize en cours :
ü
estd_physical_reads
ü
target_size
taille cible si resize en cours :
estimé de phy
reads pour
la taille
ü
target_size
aucun phy read nombre
ü
target_size
taille taille cible cible si si resize resize en en cours cours : :
ü
target_size
(alter
system set db_xx_cache_size=)
taille cible si resize en cours :
ü
estd_physical_read_factor
taille cible si resize en cours :
ratio nb phy reads / nb cach reads. null si
ü
target_size
(alter
system set db_xx_cache_size=)
(alter system set db_xx_cache_size=)
taille cible si resize en cours :
de
cache
ü
estd_physical_reads
nombre estimé de phy
reads pour
la taille
(alter
(alter
system set db_xx_cache_size=)
system set db_xx_cache_size=)
(alter system set db_xx_cache_size=)
(alter
system set db_xx_cache_size=)
ü
estd_physical_read_factor
ratio nb phy reads aucun / nb phy cach read reads. null si
(alter
system set db_xx_cache_size=)
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

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 23/33

LE CACHE ADVISORY : CONSULTATION DES RESULTATS

column size_for_estimate format 999,999,999,999 heading ’Cache Size (MB)’ column buffers_for_estimate format 999,999,999 heading ’Buffers’ column estd_physical_read_factor format 999.90 heading ’Estd Phys|Read Factor’ column 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
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
Cache Size (MB)
Estd Phys
Buffers Read Factor
Reads
------------- -------------- ---------- ----------------
30
3,802
18.70
192,317,943
10% of Current Size
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
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
Current Size
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
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

db_recycle_cache_size

 

keep

db_keep_cache_size

default BCD

db_cache_size

taille de block non standard

altern BCD

db_2-32 K_cache_size

Au niveau TABLESPACE :

Contrôle :

CREATE TABLESPACE BLOCKSIZE nK DBA_TABLESPACES ( block_size )
CREATE TABLESPACE
BLOCKSIZE nK
DBA_TABLESPACES (
block_size
)

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 25/33

LE MULTIPLE BLOCK SIZE SUPPORT AU NIVEAU DE LA DATA BASE

SAVOIR :

Le "Multiple Block Size support" permet la création 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 (défini par db_block_size) Le default pool a le blocksize défini par db_block_size (pour une taille définie par db_cache_size) puis des blocksizes et tailles définis en une fois par le paramètre db_nK_cache_size.

db_recycle_cache_size = n M db_cache_size = n M db_keep_cache_size= n M

db_recycle_cache_size=nM

db_recycle_cache_size = n M db_cache_size = n M db_keep_cache_size= n M

db_cache_size=nM

db_recycle_cache_size = n M db_cache_size = n M db_keep_cache_size= n M

db_keep_cache_size=nM

db_recycle_cache_size = n M db_cache_size = n M db_keep_cache_size= n M
db_block_size
db_block_size
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_2k_cache_size=nM
db_4k_cache_size=nM
db_8k_cache_size=nM
db_16k_cache_size=nM
db_32k_cache_size=nM
nM > 4Mb 16Mb > SGA size==> < 128MB 128MB
nM
>
4Mb
16Mb
>
SGA size==> < 128MB
128MB
db_16k_cache_size=nM db_32k_cache_size=nM nM > 4Mb 16Mb > SGA size==> < 128MB 128MB
db_16k_cache_size=nM db_32k_cache_size=nM nM > 4Mb 16Mb > SGA size==> < 128MB 128MB

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 26/33

LE MULTIPLE BLOCK SIZE SUPPORT AU NIVEAU DU TABLESPACE

CAS D'USAGE :

Transport de tablespaces entre bases de différent blocksize. Par exemple, OLTP vers un DATAWAREHOUSE.

SAVOIR :

Le block size souhaité peut être affecté à un tablespace.

Nouvelle clause BLOCKSIZE

Nouvelle colonne BLOCK_SIZE à la vue DBA_TABLESPACES

à l'ordre

CREATE

TABLESPACE

cre ate tablespace tsname tablespace_name datafile 'filename' size n k /m DBA_TABLESPACES extent
cre ate
tablespace
tsname
tablespace_name
datafile
'filename'
size n k /m
DBA_TABLESPACES
extent management local
ü status
ÿ online
ÿ offline
ÿ read only
autoallocate
ü segment_space_management
ü
auto
ü
manual
segment space management auto
ü extent_management
ü local
ü dictionary
ü allocation_type
blocksize
n k
ü
block_size
ü
min_extents
ü max_extents
ü initial_extent
ü next_extent
ü pct_increase

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 :

égal au

ü Indiquer un block size alternatif incompatible avec la plateforme :

n

n

n

de

de

de

db_nK_cache_size

db_block_size=n

db_nK_cache_size

non conforme pour plateforme

ORA-380
ORA-380
ORA-382
ORA-382

ü indiquer des tablespaces de blocksize différents pour des partitions d'un même segment

ü indiquer blocksize alternatif pour un tablespace utilisé comme Wide Temporary Tablespace

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 28/33

LES ERREURS POSSIBLES ET LEUR CODE

ORA-00380 cannot specify db_numberk_cache_size since numberK is the standard block size

db_block_size=nK
db_block_size=nK
db_ n k_cache_size=nM
db_
n k_cache_size=nM
db_block_size=nK db_ n k_cache_size=nM DIFFERENTS ? NON ORA-380

DIFFERENTS ?

NON ORA-380
NON
ORA-380

Cause : User specified the parameter DB_ nK_CACHE_SIZE to n Kbyte s. This is illegal.

(where n is one of 2,4 ,8 ,16,32 ), while the standard block size for this database is equal

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

Chap 13 Tablespaces Managt Page 29/33

LES ERREURS POSSIBLES ET LEUR CODE

ORA-00382string not a valid block size, valid range [string string]

db_nk_cache_size=nM IBM AS/400 NON
db_nk_cache_size=nM
IBM AS/400
NON

VALID FOR THIS PLATFORM ?

ORA-382
ORA-382
Cause : User specified a value for DB_nK_CACHE_SIZE where n is one of {2, 4,
Cause : User specified a value for DB_nK_CACHE_SIZE where n is one of {2, 4, 8, 16, 32}, but
nk 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

Chap 13 Tablespaces Managt Page 30/33

LES REGLES

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
col col col col
col
col
col
col
col col col col
col
col
col
col
create
create

tablespace

tablespace
create tablespace create tablespace blocksize n k
create
tablespace
create
tablespace
blocksize
n k

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 31/33

LES REGLES

REGLE 2 :

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

TEMPORAIRES

"uniform- default temporary tablespace tsname managed" tempfile 'filename' size n k /m extent
"uniform-
default
temporary
tablespace
tsname
managed"
tempfile
'filename'
size n k /m
extent management local
uniform
Def
:
EXTENT
EXTENT
1M
size
size
K|M
blocksize
n k

create

create

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 32/33

LES REGLES

(,

ent ete

portion index

long PK

val PK

longcol

val col

porti on nt débordeme

longcol

val col

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

create

tablespace

ts

table tab

table tab

col

organization

index

including

col

datatype

overflow tablespace

ts

pctthreshold

n

SEGMENT DE DEBORDEMENT
SEGMENT
DE
DEBORDEMENT

constraint ctr

create

tablespace

tablespace

TABLESPACE

blocksize

primary key

)

create

tablespace

tablespace

TABLESPACE

d'overflow

blocksize

X k

Y k

Oracle upg adm 9i

Claude DA COSTA

Chap 13 Tablespaces Managt Page 33/33

LES REGLES

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

D'ADOPTER UN BLOCKSIZE POUR UN LOB SEGMENT OU UN OVERFLOW D'IOT, DIFFERENT DE CELUI DE LA
LOBINT
LOBINT
D'ADOPTER UN BLOCKSIZE POUR UN LOB SEGMENT OU UN OVERFLOW D'IOT, DIFFERENT DE CELUI DE LA