12
votes

Quelle est la meilleure façon d'effectuer l'archivage de données sur une base de données Oracle?

J'aimerais comprendre le meilleur moyen d'archiver les données dont aucun besoin n'est plus nécessaire, afin d'améliorer les performances de l'application et de sauvegarder l'espace disque. Dans votre expérience Quelle est la meilleure façon de mettre en œuvre cela, quel type d'outils puis-je utiliser? Il est préférable de développer une application spécifique dans la maison à cet effet?


5 commentaires

Il y a beaucoup de façons d'archiver de Oracle. Vous n'avez pas besoin de développer des outils. Quel est le type de matériel / budget avez-vous? Ont des SANs installés. Avez-vous besoin d'avoir vos données d'archives, presque disponibles, ou peut-il être emballé dans une armoire hors site pendant des années?


Pourquoi pensez-vous que l'archivage améliorera la performance des applications? Si vous allez archiver des données, vous devez penser comment vous y accéder plus tard (si vous en avez besoin). Gardez à l'esprit les futurs changements de schéma et les mises à niveau de la base de données affecteront la capacité de «juste» la recharger.


Je pense que nous avons vraiment besoin d'entendre plus sur vos besoins ici ... le volume de données, la complexité du schéma et le nombre de tables que vous devez archiver de, si vous avez besoin de cette information à nouveau et si oui, quel serait le SLA pour y accéder ...


@ David - Eh bien, c'est que je ne réussirai plus les données, je veux l'avoir comme sauvegarde, je parle d'environ 60 Go ou quelque chose.


@ Gary- Peut-être que vous avez raison de savoir qu'il n'y a pas beaucoup de différence dans la performance des applications, les principaux objectifs de cet archivage sont des choses telles que 1. Réduction du temps requis pour les activités de maintenance de la base de données: réorganisation, exportation / importation, création d'index / ré- Création, ajout d'espace disque. 2. Réduction du temps requis pour la récupération en cas de catastrophe. 3. Réduction du temps requis pour les sauvegardes quotidiennes (moins d'utilisation de l'infrastructure de sauvegarde sur bande). 4. Réduction du coût du matériel (châssis de disque et de disque) requis pour stocker les données.


3 Réponses :


-2
votes

J'exporterais les données vers un fichier délimité par des virgules afin qu'il puisse être exporté dans presque toutes les bases de données. Donc, si vous changez de versions d'Oracle ou si vous allez à quelque chose d'autre plus tard, vous pouvez la restaurer sans grande préoccupation.

Utilisez la fonction de fichier SPOOL de SQL * Plus pour faire ceci: HTTP : //cisnet.baruch.cuny.edu/holowczak/oracle/sqlplus/#SSSavouut


3 commentaires

Il s'agit d'une opération légitime documentée dans Oracle SQL. Il y a une preuve dans le lien.


Pour autre chose que de petites quantités de données, c'est une mauvaise option. Il a de la difficulté avec des types de données complexes et même avec de simples colonnes Varchar2 pouvant contenir le délimiteur.


Il y a aussi des problèmes potiniques avec les clobs.



2
votes

Le meilleur moyen d'archiver les anciennes données dans la base de données Oracle est la suivante:

  1. Définissez une stratégie d'archivage et de rétention basée sur la date ou la taille.
  2. Exportez des données archivables sur une table externe (impespace de table) basée sur une stratégie définie.
  3. Compressez la table externe et rangez-la dans un support de stockage moins cher.
  4. Supprimez les données archivées de votre base de données active à l'aide de SQL Supprimer.
  5. puis pour nettoyer l'espace exécuter les commandes ci-dessous: Alter Tableau T_XYZ Activer le mouvement de la ligne; Alter table T_XYZ Espace rétractable;
  6. Si vous voulez toujours vous libérer de l'espace disque vers le système d'exploitation (comme Oracle aurait maintenant réservé l'espace total qu'il utilisait précédemment), vous devrez peut-être redimensionner le Datafile lui-même: SQL> alter base de données Datafile '/Home/oracle/database/../xyz.dbf' redimensionner 1m;

    Pour plus de détails, veuillez vous reporter: http://stage10.oaug.org/file/sroaug080229081203621527.pdf


1 commentaires

Re Étape 4. Si la suppression est une préoccupation de performance, je pourrais envisager de tirer les données actuelles dans une nouvelle table, laissant tomber l'ancienne table et renommer le nouveau à l'ancien nom.



5
votes

Un moyen de gérer l'archivage:

  1. partition de vos tables à la plage de date, par exemple Partitions mensuelles
  2. Comme les cloisons deviennent obsolètes, par exemple Après 36 mois, ces partitions peuvent maintenant être déplacées vers votre entrepôt de données, ce qui pourrait être une autre base de données de fichiers texte seulement en fonction de vos besoins d'accès.
  3. Après avoir déménagé, les partitions obsolètes peuvent être supprimées de votre base de données principale, donc toujours en maintenant (par exemple) 36 mois de données actuelles.
  4. Tout cela peut être automatisé à l'aide d'un mélange de scripts SQL / Shell.

0 commentaires