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

Oracle Discussion :

[8i]Supprimer archive log issu d'une SDB


Sujet :

Oracle

  1. #1
    Membre habitué Avatar de ariesnojf
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 195
    Points : 188
    Points
    188
    Par défaut [8i]Supprimer archive log issu d'une SDB
    Bonjour à tous

    Aprés avoir implémenter une standby database , aprés avoir résolu mes problèmes de trigger sur cette dernière , je cherche à supprimer les fichiers archives qui ont été intégrés par la standby database.

    Déroulé manuellement, cela ne me pose pas trop de problème (en utilisant v$archived_log et v$log_history). Ceci fait, j'ai essayé de faire un petit script pour automatiser mais sans succés, notamment lors de la jointure des deux tables (erreur 01220: la base doit être ouverte ), récup des variables issus des requêtes ...

    Ayant trés peu de connaissance dans PL/SQL, existe-il un script permettant d'effacer ces fichiers du disque ??? (un tout fait serait royal , dans un post précédent, j'ai vu qu'Aline faisait référence à ce genre de script (Aline : help))

    J'en ai trouvé un mais qui correspond pas, il efface selon une date de création du fichier et non pas par intégration par la SDB. Dans les scripts du site, j'en ai pas vu non plus

    J'aurais moyen de m'en sortir avec excel ou VB mais préfére utiliser les outils d'Oracle.

    De plus, la table v$log_history peut elle être "nettoyée" de manière, lorsque le fichier n'existe plus, d'effacer la ligne correspondante de cette table ???

    Merci, JF

    Oracle 8i sous W2K serveur

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Points : 455
    Points
    455
    Par défaut
    Bonjour,

    Je suis désolée, mais sur une standby physique, je ne connais aucune table te permettant de savoir ce qui a pu être appliqué sur une standby. Je ne vois pas ou pourrai être cette information et surtout comment elle pourrait être renseigné.

    Mais heureusement, il existe les fichiers d'alerte!
    Personnellement, je les utilise pour nettoyer mes logs


    Quand tu vois cette ligne dans ton fichier d'alerte,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Media Recovery Log ...../19235.arc
    c'est que la standby est en train d'appliquer cette archive.
    Par sureté, tu en retire 1 ou deux et le tour est joué.
    Il suffit après de supprimer (ou d'archiver sur un autre support!) tes archives de ta base primaire + standby.


    sinon, pour le script tout fait, il ne faux pas trop rêver. Il va être completement dépendant de ton architecture. dans ce cas, je peux te donner l'idée, mais mes scripts ne te seraient strictement d'aucun secour

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    v$log_history ne répond-elle pas à ce problème ? Ou plutôt V$STANDBY_LOG ?

    V$MANAGED_STANDBY contient une colonne SEQUENCE# qui parait bien intéressante aussi

  4. #4
    Membre habitué Avatar de ariesnojf
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 195
    Points : 188
    Points
    188
    Par défaut
    Merci de ton aide,


    Citation Envoyé par aline
    mais sur une standby physique, je ne connais aucune table te permettant de savoir ce qui a pu être appliqué sur une standby. Je ne vois pas ou pourrai être cette information et surtout comment elle pourrait être renseigné.
    ==> on ne peut utiliser la vue v$log_history ???? Je croyais que cette vue recensait les logs appliquées à la SDB.
    http://download-west.oracle.com/docs...dbym.htm#27676

    Merci également pour le fichier d'alerte, il ne m'était pas venu à l'idée que le fichier tracait ce genre d'infos.

    Quant au script, si je ne peux identifier par table/vue quels fichiers je dois supprimer, autant le faire à la main.... sauf de rentrer le 1ier et dernier fichier...
    Si quelqu'un à d'autres idées ...


    Merci, JF

  5. #5
    Membre habitué Avatar de ariesnojf
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 195
    Points : 188
    Points
    188
    Par défaut
    Citation Envoyé par Fred_D
    V$MANAGED_STANDBY contient une colonne SEQUENCE# qui parait bien intéressante aussi
    Lorsque je fait la description de la vue, j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ORA-06550: LIGNE 1, Colonne 7 : 
    PLS-00201 : L'identificateur 'SYS.SUBPTXT' doit etre declare
    ORA-06550: LIGNE 1,COlonne 7 : 
    PL/SQL: Statement ignored
    Idem pour v$standby_log.

    Ce sont des vues inexistantes dans mon système, peut-on les créer ?

    V$log_history est bien reconnue par contre.


    De plus en relisant la doc, il apparaît que v$log_history n'est pas actualisée durant le recouvrement. Etes vous d'acoord avec cela (au cas où j'ai mal compris !)

    Sinon pour mon script, j'avais imaginé un truc du genre (euh Aline et les autres, votre aide sera trés bien venue .... )

    1) Arrêt du recouvrement (si besoin)
    2) Interrogation de la vue v$log_history pour selectionner le max sequence# puis toutes les sequences inferieure
    3) Interrogation de la vue v$archived_log pour selectionner les nom du fichiers selon sequence#, delete physique sur disque, puis delete sur vue v$log_history
    4) Remise en route du recouvrement (si besoin)

    Faisable par PL/SQL ????

    Merci, JF

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    tu t'es bien connecté SYS ?

  7. #7
    Membre habitué Avatar de ariesnojf
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 195
    Points : 188
    Points
    188
    Par défaut
    J'étais en system as sysdba,
    me suis mis en sys as sysdba dans un 1ier temps puis as sysoper,

    toujours le même souci, reconnaît pas les vues

    Merci, JF

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    c'est bien une 9i ?

  9. #9
    Membre habitué Avatar de ariesnojf
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 195
    Points : 188
    Points
    188
    Par défaut
    Non 8i , comme je l'ai écrit sur le 1ier message du sujet (bon je l'ai mis à la fin pardon )

    Donc, avant que tu ne répondes, je suppose que ces vues sont inexistante en 8i ???

    Merci, JF

  10. #10
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075

  11. #11
    Membre habitué Avatar de ariesnojf
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 195
    Points : 188
    Points
    188
    Par défaut
    Oui, ce sont les deux vues que j'avais remarqué, cependant deux petits soucis, le 1ier étant de savoir si la vue est bien rempli pendant le recouvrement, d'aprés la doc, il apparaît que non (ayons confiance !!!)

    Citation Envoyé par jflaman

    De plus en relisant la doc, il apparaît que v$log_history n'est pas actualisée durant le recouvrement. Etes vous d'acoord avec cela (au cas où j'ai mal compris !)
    2d problème (pas le moindre) écrire un script sous PL/SQL me faisant le travail d'épuration des fichier archives intégrés. J'aurai esperé qu'un script de ce genre existait mais à priori il va falloir que je le crée (N'ayant pratiquement aucune base en PL/SQL, vive la doc de SheikYerbouti !!! )

    Citation Envoyé par jflaman
    Sinon pour mon script, j'avais imaginé un truc du genre (euh Aline et les autres, votre aide sera trés bien venue .... )

    1) Arrêt du recouvrement (si besoin)
    2) Interrogation de la vue v$log_history pour selectionner le max sequence# puis toutes les sequences inferieure
    3) Interrogation de la vue v$archived_log pour selectionner les nom du fichiers selon sequence#, delete physique sur disque, puis delete sur vue v$log_history
    4) Remise en route du recouvrement (si besoin)
    Faisable par PL/SQL ????

    Euh, si quelqu'un n'a rien à faire, il peut s'en occuper, ça ira plus vite que moi .....


    Merci, JF

  12. #12
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    ceci étant, c'est surement plus simple en shell, tu rediriges un grep cutté () dans un fichier que tu parcours pour faire tes deletes...

    Sinon, j'ai pas vu dans la doc que V$ARCHIVED_LOG est désynchronisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    An archive log record is inserted after the online redo log is successfully archived or cleared
    PS : sinon, RMAN doit pouvoir faire tout ça tout seul non ?

  13. #13
    Membre habitué Avatar de ariesnojf
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 195
    Points : 188
    Points
    188
    Par défaut
    Citation Envoyé par Fred_D
    Sinon, j'ai pas vu dans la doc que V$ARCHIVED_LOG est désynchronisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    An archive log record is inserted after the online redo log is successfully archived or cleared
    On doit pas être sur la même longueur d'onde
    V$ARCHIVED_LOG : je pensais que c'était une vue qui relatait les fichiers qui arrivaient bien physiquement sur serveur de secours (la SDB)
    http://download-west.oracle.com/docs...dbym.htm#30381

    V$LOG_HISTORY : Je pensais que c'était une vue qui relatait les fichiers qui étaient bien intégré dans la SDB niveau oracle http://download-west.oracle.com/docs...dbym.htm#27676 et c'est sur cette vue qu'on ne pouvait l'interroger durant le recouvrement du moins les derniers arrivés
    V$LOG is not updated during recovery.
    Je me trompe concernant la vue v$archived_log ????

    Euh sinon,
    Citation Envoyé par Fred_D
    tu rediriges un grep cutté () dans un fichier que tu parcours pour faire tes deletes...
    En français ça donne quoi .....

    Merci JF

  14. #14
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    grep et cut sont des commandes Unix

    Pour le reste, on est d'accord, donc le contenu de V$ARCHIVED_LOG permet de savoir quelles archives sont bien intégrées et que tu peux donc supprimées

  15. #15
    Membre habitué Avatar de ariesnojf
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 195
    Points : 188
    Points
    188
    Par défaut
    Une petite mise au point fait du bien

    Je ne suis pas en environnement unix, je ne peux donc pas utiliser ta méthode de grep et de cut ???

  16. #16
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Points : 455
    Points
    455
    Par défaut
    Hello,
    Une petite mise au point sur mon post.
    Pour moi, il y a deux niveaux d'application des archives logs.
    1) ils sont bien envoyés et enregistrés sur la standby. Vous opurrez trouver pleins de vues vous confirmant cela.
    2) Ils ont étés joués sur la standby. et la, sur une standby physique, je ne connais pas de vue nous le disant.

    D'un point de vue sécurité, je préfère être sûre que les archives ont étés appliqués sur la standby (étape 2) avant de faire du ménage. Mais ce n'est que mon avis perso.
    pour être sur que les archives ont bien étés joué, je ne vois que le fichier d'alerte (celui de la standby evidement!). Ce sera un script unix ou windows donc.

    Mais évidement, ce n'ai que mon avis, l'étape un devrait suffir la plupart du temps.

  17. #17
    Membre habitué Avatar de ariesnojf
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 195
    Points : 188
    Points
    188
    Par défaut
    Hi,

    Cette petite mise au point, Aline, est trés importante....
    Si il existe 1 cas sur x puissance infini qu'il y ai une non intégration du fichier et que la vue le considère, ça ne le fait pas
    Merci pour m'éclairer sur ce point (qui a toute son importance !!!). Aline, je vais te suivre pour le cas n°2.

    Dans ce cas et pour mon cas (c'est une histoire de cas ) ce sera un script sous Windows, et cela va bien se passer .... Normalement !!!

    Par contre, à quoi sert la vue v$log_history ??? (Si elle ne relate pas la réalité ....).

    Enfin, j'utilise la technique de la SDB depuis peu de temps, (je la pratique depuis moins d'un an) qu'est ce que vous entendez par standby physique (cas 2) et d'une standby .... (cas 1).

    Merci, JF

  18. #18
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Points : 455
    Points
    455
    Par défaut
    Citation Envoyé par jflaman
    Hi,

    Cette petite mise au point, Aline, est trés importante....
    Qui en doutait?


    Citation Envoyé par jflaman
    Si il existe 1 cas sur x puissance infini qu'il y ai une non intégration du fichier et que la vue le considère, ça ne le fait pas
    Merci pour m'éclairer sur ce point (qui a toute son importance !!!). Aline, je vais te suivre pour le cas n°2.
    je suis désolé, mais malgré tes flateries, je vais quand même te contredire. Je pense que tu as mal compris ce que veux dire la vue. Elle ne dis jamais que les logs ont étés bien appliqués sur la standby, juste qu'ils ont bien étés reçu et enregistrés. Et il faut bien comprendre ces deux notions si tu met en oeuvreune standby. Par exemple, tu peux décider que tes logs ne seront appliqués que 12 heures après avoir été reçu. Ce qui te permetterra de revenir en arrière instantanément en cas de problème du à une erreur humaine (il existe évidement d'autres moyens pour cela). Dans ce cas, si tu te fie à ta vue et que tu nettoie pendant cet intervale...
    Tu peux voir aussi uniquement cela comme une destination d'archivage. Cette destination (je ne l'ai jamais testé) pourrai servir à plusieurs standby.

    donc conclusion.
    Ne pas faire la confusion entre destination d'archivage et application des archives




    Citation Envoyé par jflaman
    Enfin, j'utilise la technique de la SDB depuis peu de temps, (je la pratique depuis moins d'un an) qu'est ce que vous entendez par standby physique (cas 2) et d'une standby .... (cas 1).

    Merci, JFc
    Il y a les stanfby logique aussi

  19. #19
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    mais v$archived_log montre bien les archives appliquées non ?

  20. #20
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Points : 455
    Points
    455
    Par défaut
    Citation Envoyé par Fred_D
    mais v$archived_log montre bien les archives appliquées non ?
    Salut Fred,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    An archive log record is inserted after the online redo log is successfully archived

    Désolé de te contredire, mais la vue nous dit que le redos log a bien été archivé.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/12/2009, 17h40
  2. Réponses: 8
    Dernier message: 20/03/2009, 15h54
  3. supprimer un enregistrement vide dans une table oracle
    Par shurized dans le forum Bases de données
    Réponses: 11
    Dernier message: 07/09/2004, 17h55
  4. [Jsp] Supprimer les caractère spéciaux d'une chaine
    Par PeteMitchell dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 13/05/2004, 12h11
  5. Réponses: 2
    Dernier message: 12/01/2004, 14h56

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