La taille de l'espace disque logique SYSTEM et SYSAUX de ma base de données est désormais dans l'état suivant:
SYSTEM - PCT_USED= 99
SYSAUX - PCT_USED= 95
Je crois que la base de données est dans une situation critique maintenant. Que puis-je faire pour le ramener à son état normal et quelles sont les méthodes standard à suivre pour protéger les fichiers d'espace de table SYSTEM et SYSAUX.
Toute aide serait appréciée.
Les espaces de table SYSTEM et SYSAUX sont requis par le SGBDR pour fonctionner correctement.
Une liste d'objets qui résident dans l'espace de table SYSAUX peut être récupérée à l'aide de la vue V $ SYSAUX_OCCUPANTS. Cette vue affiche les informations suivantes:
OCCUPANT_NAME VARCHAR(64) Occupant name
OCCUPANT_DESC VARCHAR(64) Occupant description
SCHEMA_NAME VARCHAR2(64) Schema name for the occupant
MOVE_PROCEDURE VARCHAR2(64) Name of the move procedure; null if not applicable
MOVE_PROCEDURE_DESC VARCHAR2(64) Description of the move procedure
SPACE_USAGE_KBYTES NUMBER Current space usage of the occupant (in KB)
Référence: V $ SYSAUX_OCCUPANTS
La table SYSAUX contient les composants suivants:
SYSAUX Table Previous Location
------------------------------------ --------------------------
Analytical Workspace Object Table SYSTEM
Enterprise Manager Repository OEM_REPOSITORY
LogMiner SYSTEM
Logical Standby SYSTEM
OLAP API History Tables CWMLITE
Oracle Data Mining ODM
Oracle Spatial SYSTEM
Oracle Streams SYSTEM
Oracle Text DRSYS
Oracle Ultra Search DRSYS
Ora interMedia ORDPLUGINS Comp. SYSTEM
Ora interMedia ORDSYS Components SYSTEM
Ora interMedia SI_INFORMTN_SCHEMA C. SYSTEM
Server Manageability Components -
Statspack Repository User-defined
Oracle Scheduler -
Workspace Manager SYSTEM
Référence: Composants de la base de données et espace disque logique SYSAUX
Si vous pouvez réduire la taille des données stockées par les composants, vous pouvez réduire la taille de l'espace de table SYSAUX requis.
La plus grande partie de l'espace de table SYSAUX est occupée par le référentiel de charge de travail automatique (AWR). Les recommandations de taille suivantes sont fournies par Oracle pour déterminer la taille AWR et, dans une large mesure, la taille de l'espace de table SYSAUX:
Number of CPUs 2 | 8 | 32
Number of concurrently active sessions 10 | 20 | 100
Number of user objects: tables and indexes 500 | 5,000 |50,000
Estimated SYSAUX size with default config 500 MB | 2 GB | 5 GB
Référence: Contrôle de la taille du tablespace SYSAUX
Si votre base de données n'a cessé de croître, ou si vous surveillez de nombreux objets avec l'Enterprise Management Console, votre espace de table SYSAUX se remplira lentement.
L'espace de table SYSTEM contient toujours les tables de dictionnaire de données pour la base de données entière. Donc, si votre base de données grandit en raison de nouveaux objets, votre espace de table SYSTEM aura également besoin de plus d'espace.
Que contient le dictionnaire de données:
Référence: Le dictionnaire de données
ALTER DATABASE DATAFILE '/path/systemSID.dbf' RESIZE 1000M;
ALTER DATABASE DATAFILE '/path/sysauxSID.dbf' RESIZE 1000M;
Selon ToadWorld blog
Ici Le Tablespace SYSAUX doit avoir une taille minimale de 250M . L'espace de table SYSAUX doit être PERMANENT avec la gestion des extensions locale et ASSM (Automatic Segment Space Management). L'espace disque logique SYSAUX ne peut pas être rendu en lecture seule. Par conséquent, des précautions appropriées doivent être prises lors de la création de l'espace de table SYSAUX car les attributs de l'espace de table ne sont pas modifiables une fois qu'ils sont définis.
L'espace disque logique SYSAUX a été installé en tant qu'espace disque logique auxiliaire lorsque vous avez créé votre base de données.
L'espace de table SYSAUX est occupé par un certain nombre de composants de base de données. L'espace de table SYSAUX est occupé par un certain nombre de composants de base de données.
La plus grande partie de l'espace de table SYSAUX est occupée par le référentiel de charge de travail automatique (AWR)
. L'espace consommé par le AWR
est déterminé par plusieurs facteurs, notamment le nombre de sessions actives dans le système à un moment donné, l'intervalle de capture instantanée et la période de conservation des données historiques. Un système typique avec une moyenne de 10 sessions actives simultanées peut nécessiter environ 200
à 300 MB
d'espace pour ses données AWR
.
Selon le blog Oracle ici Le tableau suivant fournit des instructions sur le dimensionnement de l'espace de table [~ # ~] sysaux [~ # ~] en fonction de la configuration du système et de la charge attendue.
Parameter/Recommendation Small Medium Large
Number of CPUs 2 8 32
Number of concurrently active sessions 10 20 100
Number of user objects: tables and indexes 500 5,000 50,000
Estimated SYSAUX size at steady state with default configuration
500 MB 2 GB 5 GB
Je joins également la capture d'écran d'OEM 11g, pour vérifier les détails de l'espace occupé de SYSTEM et SYSAUX. pour vous ref ici
Gestion de la taille des occupants de l'espace disque logique SYSAUX
Le V$SYSAUX_OCCUPANTS
view gère les occupants dans l'espace de table SYSAUX
. Cette vue vous permet de surveiller l'utilisation de l'espace des objets d'application occupant dans l'espace de table SYSAUX
.
SELECT occupant_name, space_usage_kbytes FROM v$sysaux_occupants;
SYSAUX et SYSTEM ne sont pas différents de tout autre espace de table dans la mesure où ils doivent être correctement dimensionnés. D'après mon expérience, la pression spatiale dans SYSAUX est à peu près toujours due aux données AWR. Essayez d'exécuter awrinfo.sql pour trouver le coupable.
Ayez également une fouille sur support.Oracle.com. Il y a des problèmes connus avec les paramètres de rétention/purge AWR qui ne jouent pas à Nice (par exemple doc 1912201.1)
Tout d'abord, vérifiez quelle table occupe le plus d'espace dans cet espace de table. Il existe certaines tables dans les espaces de table SYSTEM et SYSAUX qui stockent les données de requête historiques, les instantanés AWR et les informations d'audit, qui peuvent être supprimées/tronquées.
Si vous n'êtes pas sûr ou préoccupé si la suppression d'enregistrements dans une table affecterait autre chose, alors ajoutez simplement de l'espace supplémentaire dans ces espaces de table.
Une option consiste à utiliser la fonction autoextensible des fichiers de données de vos espaces de table.
alter database datafile '[name]' autoextend on;
mais faites attention à ne pas utiliser cette fonctionnalité, car un logiciel de buggy peut rapidement utiliser votre espace alloué. Si vous disposez d'une surveillance de l'espace du système d'exploitation, l'extension automatique peut fonctionner pour vous.
Vous pouvez également utiliser les fonctionnalités de surveillance d'espace d'OEM pour vous envoyer une notification lorsque vos espaces de table atteignent un certain pourcentage, par exemple 80%. N'attendez pas 95% ou plus pour agir sur l'ajout d'espace.
Vous pouvez également définir le paramètre resumable_timeout afin que les sessions en attente d'espace vous attendent pour ajouter de l'espace et ne se terminent pas anormalement.
Vous pouvez tronquer sys.aud $ périodiquement. Si vous devez conserver des enregistrements d'audit, sauvegardez-les avant de les tronquer.
Votre base de données n'est jamais "critique" lorsque vous êtes sur le point de manquer d'espace. Vous avez toujours la possibilité de sqlplus/ou sqlplus/nolog si sysaux manque d'espace.
Cette requête vous aidera à suivre ce qui se trouve dans sysaux.
COLUMN space_mb FORMAT A12
COLUMN occupant_desc FORMAT A55
COLUMN schema FORMAT A30
SELECT occupant_desc, TO_CHAR(space_usage_kbytes/1024, '999,999.00') space_mb,
substr(schema_name,1,30) Schema
FROM v$sysaux_occupants
ORDER BY 2 desc;
Vous pouvez également interroger le filtrage dba_segments par nom d'espace table, à la recherche du plus grand objet. Vous devriez regarder spécifiquement la table sys.aud $.