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 :

Quelle stratégie d'archivage?


Sujet :

Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut Quelle stratégie d'archivage?
    Bonjour à tous,

    Je travaille sur un CRM dont les données sont stockées dans une base Oracle 10g.

    Je dois mettre en place un programme d'archivage des anciens clients et de toutes leurs données rattachées (donc à partir d'une table mère et x tables filles).

    Je dois aussi pouvoir restaurer les informations concernant un ancien client dont les données seraient archivées sur demande.

    J'hésite sur la solution à appliquer.

    Quelqu'un a déjà rencontré une situation similaire?

    D'avance merci.

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    et tu hésites entre quelles solutions ???

    ce qui justifie la technique d'archivage , ce sont tes requirements : est-ce que les données doivent être accédées par l'appli ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    J'ai envisagé 2 solutions:

    • un traitement avec export Oracle

      Le principal inconvénient, c'est que je devrais faire un dump par table puisque j'ai des critères de sélection donc beaucoup de fichiers au total.

      Evidemment, la restauration des données d'une personne serait un peu compliquée mais elle sera (en théorie) extrêmement rare.
    • un traitement avec déplacement des données dans des tables bis

      Cette solution me paraît plus propre mais elle nécessite de recréer beaucoup de tables bis.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Et pour répondre à ta question:

    OUI, les données restaurées devront être accessibles par l'appli

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    si les données archivées doivent être accessibles via l'appli, je ne vois pas très bien comment la solution "export" ferait l'affaire

    il me semble que tu n'as pas d'autres choix que de stocker les données archivées dans des tables

    soit tu crées de nouvelles tables , soit tu ajoutes un flag aux tables existantes pour dire si la données est archivée ou pas et tu utilises des views pour accéder aux données "live" ou aux données archivées

    une façon à envosager est également le partitionning

    une autre façon est également de te demander si tu as vraiment besoin d'archiver ... d'ailleurs pourquoi te faut-il archiver ??? étant donné que ces données doivent toujours être accessibles via l'appli ...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Désolé, je n'ai pas été très clair.

    Quand elles sont archivées, les données ne doivent pas être accessibles par l'appli.
    Par contre, si je les restaure, elles doivent l'être.

    A mon avis, les solutions "flags + vues" ou "tables partitionnées" ne sont pas possibles car l'apppli CRM est un progiciel et il n'est pas envisageable de modifier tous les accès aux tables.

    Je me demande si je ne vais pas m'orienter tout simplement vers la conservation d'une archive complète de ma base vue que la fréquence de purge sera faible (sans doute annuelle).

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Moi je verrais bien des tables d'archivage rempli par un trigger ON_DELETE sur les tables d'origines

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Oui, ça correspondrait à la solution que j'avais appelé "déplacement des données dans des tables bis".

    Mais je lui trouve 2 inconvénients:
    • beaucoup de tables d'archivage à créer
    • la taille de la base ne diminue pas

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    - quel est le problème ? Une boucle FOR avec EXECUTE IMMEDIATE et tu crées tes tables en une seule commande
    - certes, mais tu peux les mettre dans un tablespace compressé... et un export consomme aussi du disque. Inconvénient de l'export, tu ne peux pas ajouter de lignes dans un fichier qui existe déjà

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Je ne connais pas la boucle FOR avec EXECUTE IMMEDIATE mais ça a l'air très pratique, tu peux me donner un exemple?

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    une recherche sur le forum et dans la FAQ devra suffire

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 60
    Points : 52
    Points
    52
    Par défaut
    Salut,

    pour éviter que la base n'augmente, tu peux toujours mettre les données archivées dans une autre instance et ceci directement par des commandes SQL.

    1- création de l'instance d'archive
    2- sur l'instance de production création d'un database link vers la base d'archive
    3- transfert des données à archiver de la base de prod vers la base d'archive en utilisant le database link.

    ainsi la base de prod ne contiendra que les données courantes et sa taille ne devrait pas augmenter énormément à cause des données archivées.
    autre avantage : pouvoir sauvegarder/restaurer que les données de production ou celle d'archive.
    possibilité de mettre les instances sur des serveurs distincts pour optimiser les performances et l'espace disque du serveur de production.

    et pour la restauration des données archivées dans la base de prod, il suffit de faire un transfert en sens inverse des données via le database link.


    enfin c'est juste une idée.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par Zugg Voir le message
    et pour la restauration des données archivées dans la base de prod, il suffit de faire un transfert en sens inverse des données via le database link.
    Il suffit même de faire un vue qui fait un UNION ALL de la table locale et de la table distante

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 60
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par orafrance Voir le message
    Il suffit même de faire un vue qui fait un UNION ALL de la table locale et de la table distante

    oui en effet, mais si la table contient des LOB, je pense pas que la vue fonctionne et permette de les récupérer via un DBLink...

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Cette solution me plait bien, elle répond à toutes mes contraintes.

    Merci à tous pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Partage d'une zone d'affichage, quelle stratégie ?
    Par Julien Bodin dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 21/07/2009, 17h37
  2. [BitmapEffect] Quelle stratégie à long terme ?
    Par Marcolinho dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 15/09/2008, 09h43
  3. Quelle stratégie pour l'authentification ?
    Par Invité dans le forum Struts 1
    Réponses: 8
    Dernier message: 19/02/2008, 15h29
  4. Quelle stratégie pour coupler Hibernate et Swing ?
    Par sethys dans le forum Hibernate
    Réponses: 5
    Dernier message: 09/10/2007, 19h38
  5. Réponses: 4
    Dernier message: 04/04/2006, 19h19

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