Alter

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Commande SQL DDL
Rôle Modifier un paramètre d'instance ou de session
Voir aussi Oracle · Essentiel oracle · Indexes

ALTER permet de modifier à chaud (ou au prochain redémarrage) un grand nombre de paramètres de configuration de l'instance et de la base.

Paramètres d'initialisation de l'instance

ALTER SESSION SET parametre = valeur [...];
ALTER SYSTEM SET parametre = valeur [...] [COMMENT = 'texte'] [DEFERRED] [SCOPE = MEMORY | SPFILE | BOTH];
  • L'option DEFERRED n'applique la modification qu'aux futures sessions (pas aux sessions déjà connectées).
  • L'option SCOPE détermine si la modification porte sur la configuration courante, sur celle rechargée au redémarrage, ou les deux.
> ALTER SYSTEM SET processes = 200 COMMENT = 'modif du 10/12/2013' SCOPE = SPFILE;

Pour supprimer une valeur du fichier de paramètres :

> ALTER SYSTEM RESET parametre [SCOPE = SPFILE];

Vues associées

V$SYSTEM_PARAMETER     -- valeur appliquée à l'instance actuelle
V$SYSTEM_PARAMETER2    -- idem, une ligne par valeur (paramètres à valeurs multiples)
V$SYSTEM_SPPARAMETER   -- contenu du fichier spfile

Comparaison valeur active / valeur spfile :

SELECT
 p.name,
 p.display_value      actuel,
 sp.display_value     spfile
FROM
 v$parameter          p,
 v$spparameter        sp
WHERE
   p.name = sp.name
AND
   p.name = 'processes'
/
> SHOW PARAMETERS [chaine]
> SHOW SPPARAMETERS [chaine]

Exporter un fichier de paramètres

> CREATE PFILE [='pname'] FROM SPFILE [='spname'];
> CREATE PFILE [='pname'] FROM MEMORY;

Gestion dynamique de la mémoire

Depuis Oracle 11g, plusieurs composants mémoire peuvent être redimensionnés dynamiquement :

MEMORY_TARGET
SGA_TARGET
DB_CACHE_SIZE
SHARED_POOL_SIZE
JAVA_POOL_SIZE
LARGE_POOL_SIZE
STREAMS_POOL_SIZE
RESULT_CACHE_MAX_SIZE
PGA_AGGREGATE_TARGET
> SHOW SGA
V$SGA
SELECT
 name, value, display_value
FROM v$parameter
WHERE name in ('sga_target','sga_max_size','memory_target','memory_max_target');

SELECT name,value FROM v$sga
UNION ALL
SELECT '*** TOTAL ***', SUM(value) FROM v$sga;

SELECT name, ROUND(bytes/(1024*1024),1) size_mb, resizeable
FROM v$sgainfo;
V$SGA_DYNAMIC_FREE_MEMORY
V$MEMORY_DYNAMIC_COMPONENTS
SELECT component, current_size/(1024*1024) current_mb
FROM v$memory_dynamic_components;
COL component FOR A30
SELECT component,
       current_size/1024/1024 current_size,
       user_specified_size/1024/1024 user_specified_size
FROM v$memory_dynamic_components
WHERE current_size > 0
UNION ALL
SELECT '*** LIBRE SGA ***', current_size/1024/1024, null
FROM v$sga_dynamic_free_memory
/

(clause WHERE current_size > 0 corrigée — le filtre était incomplet dans la version d'origine.)

Utilisateurs

  • Verrouiller un utilisateur :
ALTER USER USERNAME ACCOUNT LOCK;
  • Changer un mot de passe :
ALTER USER user_name IDENTIFIED BY new_password;

Voir aussi