IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

Ligne dans sys.aud$ qui ne veut pas se supprimer


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut Ligne dans sys.aud$ qui ne veut pas se supprimer
    Bonjour

    J'ai des millions de lignes dans sys.aud$ et je veux en supprimer un paquet.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT COUNT(*)
    FROM sys.aud$;
    => 9078391

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT MIN(ntimestamp#)
    FROM sys.aud$;
    => 03/01/13 09:41:12,077791000

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM sys.aud$
    WHERE ntimestamp# < TO_DATE('31/12/2013 12:59:59', 'DD/MM/YYYY HH:MI:SS');
    => 1*113*347 lignes supprimé.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT COUNT(*)
    FROM sys.aud$;
    => 7965044 => Il y en a bien un gros paquet de supprimées

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT MIN(ntimestamp#)
    FROM sys.aud$;
    => 04/06/13 08:14:39,703444000 => Alors que j'ai demandé de supprimer tout ce qui est antérieur au 31/12/2013 !

    Pour quelle raison une ligne refuserait d'être supprimée ? Pas de message d'erreur pour me l'indiquer en tout cas !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    La doc d'Oracle 73408.1 conseille de n'utiliser que le package dbms_audit_mgmt
    SYS.AUD$ table should never be modified manually.The supported method to manage the audit records is by using DBMS_AUDIT_MGMT package.
    Et voir la doc 1362997.1 pour les purges.


    Voici ma procédure suite migration 11g et des Millions de lignes dans AUD$ et des tablespaces SYSTEM à plusieurs Go

    On déplace la table SYS.AUD$ dans un autre tbs que SYSTEM (on le met dans TMESDATAS)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    BEGIN
     Sys.dbms_audit_mgmt.set_audit_trail_location(
      audit_trail_type            => sys.dbms_audit_mgmt.audit_trail_db_std,
      audit_trail_location_value  => 'TMESDATAS');
    END;
    /
    exec sys.dbms_audit_mgmt.init_cleanup(
        	audit_trail_type            => sys.dbms_audit_mgmt.audit_trail_db_std,
       		default_cleanup_interval    => 168 );

    Créer la procédure de purge et le job (sur l'utilisateur principal)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    CREATE OR REPLACE PROCEDURE PURGE_AUD (p_nbj IN NUMBER DEFAULT 90)
    IS
    	-- Purge de la table SYS.AUD$
      -- p_nbj : Nombre de jour d'historique à garder.
     
    BEGIN
     
      -- GRANT EXECUTE ON DBMS_AUDIT_MGMT TO xxxx
     
    	/* En cas d'ereur ORA-46258: Cleanup NOT INITIALIZED FOR THE AUDIT trail
     	 sys.dbms_audit_mgmt.init_cleanup(
        	audit_trail_type            => sys.dbms_audit_mgmt.audit_trail_db_std,
       		default_cleanup_interval    => 168 ); */
     
    	SYS.DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
         audit_trail_type  => sys.dbms_audit_mgmt.audit_trail_aud_std,
         last_archive_time => TO_TIMESTAMP(TRUNC(SYSDATE) - p_nbj),
         rac_instance_number  => NULL);
     
    	SYS.DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
         audit_trail_type        => sys.dbms_audit_mgmt.audit_trail_aud_std,
         use_last_arch_timestamp => TRUE);
     
     
    END;
    /
    Job : PURGE_AUD(120);
    Next : trunc(sysdate) + 7

Discussions similaires

  1. [WD17] champ de saisie qui ne veut pas s'activer dans la fenetre
    Par plasto590807 dans le forum WinDev
    Réponses: 6
    Dernier message: 20/08/2012, 13h22
  2. afficher les lignes d'un fichier qui ne sont pas dans lun autre fichier
    Par israellita dans le forum Shell et commandes GNU
    Réponses: 16
    Dernier message: 11/03/2011, 12h39
  3. scrollbar qui ne veut pas disparaitre dans une form
    Par splinternabs dans le forum Windows Forms
    Réponses: 1
    Dernier message: 07/02/2007, 01h50
  4. Réponses: 2
    Dernier message: 06/02/2007, 10h17
  5. un fichier qui ne veut pas être supprimé!!!!
    Par en_stage dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 22/10/2005, 02h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo