web-dev-qa-db-fra.com

Système Espaspace se remplit

Mon SYSTEM tableespace est rempli énormément dans quelques jours. J'ai ajouté un autre fichier DBF quand il a été rempli complètement plus tôt. Maintenant, le deuxième .dbf est également sur le point de remplir. Le seul processus qui se passe quotidiennement est une base de données d'exportation pour la sauvegarde logique. En outre, l'étendue automatique de l'espace de table est sur. Quelle pourrait être la raison de ce remplissage de tablespace? Comment puis-je m'attaquer à cette situation? J'utilise Oracle 11G R2 en mode archivalog.

Fixation de résultat pour une requête ci-dessous:

SELECT owner, segment_name, segment_type, extents, blocks, bytes 
FROM dba_segments
WHERE tablespace_name='SYSTEM'
ORDER BY bytes;

enter image description here

2
akr

Tout d'abord, assurez-vous que SYSTEM tablespace n'est pas affecté comme défaut ou espace de table temporaire pour les utilisateurs de la base de données normaux.

Deuxièmement, une table consommatrice de l'espace en SYSTEM tablespace est AUD$. Ensuite, comme vous l'avez dit, vous venez d'effectuer des exportations/importations, DataPump crée des tables de maître dans l'espace de table par défaut de l'utilisateur effectuant un travail d'exportation.

La table principale est retenue ou déposée, selon les circonstances, comme indiqué ici . Vous avez peut-être fait l'exportation à l'aide de SYS utilisateur. Si le travail est en panne, la table Master ne sera pas supprimée.

Maintenant, vous pouvez utiliser la requête suivante pour voir quel objet prend la majeure partie de l'espace de cette épisette.

SELECT owner, segment_name, segment_type, extents, blocks, bytes 
FROM dba_segments
WHERE tablespace_name='SYSTEM'
ORDER BY bytes;

Mise à jour:

Si vous avez besoin du sentier d'audit, copiez ses enregistrements vers une autre table, un autre espace de table si nécessaire, et/ou exporter la table d'audit, sinon vous pouvez le tronquer.

Se connecter en tant que sqlplus sys as sysdba

SQL> CREATE TABLE backup_aud$ AS SELECT * from sys.aud$;
SQL> truncate table aud$;

[~ # ~] ou [~ # ~ ~]

Vous pouvez la table de piste mobile, SYS.AUD$, à un autre espace de table en utilisant DBMS_AUDIT_MGMT

  • Créer de nouvelles espaces de table [.____]
    • Déplacez les tables de piste d'audit à l'aide de la procédure DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION.
      SQL> BEGIN
      DBMS_AUDIT_MGMT.set_audit_trail_location(
      audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
      audit_trail_location_value => 'NEW TABLESPACE');
      END;
      /
      
  • 2
    JSapkota