1

Seule une partie des données de la base de données est en cours de traitement par l'application, le reste est nécessaire à des fins de génération de rapports, mais les performances de l'application sont médiocres. Je voudrais archiver des données historiques sans modifier le schéma de base de données.Base de données répliquée pour le stockage des données historiques

Existe-t-il une possibilité de répliquer la base de données, de supprimer les anciennes données de l'instance principale et de synchroniser régulièrement les nouvelles modifications dans la base de données répliquée? De cette façon, la base de données primaire "transactionnelle" sera légère et la base de données répliquée contiendra l'ensemble complet des données actuelles et historiques à des fins de rapport.

Pourriez-vous recommander quelques outils ou donner quelques conseils pour y parvenir?

modifier: Je me demande si je pouvais utiliser les flux et en quelque sorte faire gestionnaire DML d'ignorer les opérations de suppression sur les lignes (docs.oracle.com/cd/B28359_01/server.111/b28321/...) de sorte que pendant les données Les lignes historiques de réplication seront conservées malgré leur suppression de la base de données transactionnelle.

+1

Vous voulez dire [un entrepôt de données] (https://docs.oracle.com/cd/E11882_01/server.112/e25554/concept.htm#DWHSG8063)? –

+0

voulez-vous archiver les données? vous avez 100million row dans une table et vous voulez déplacer la moitié d'entre eux (dépend des conditions) à une autre table et les supprimer de la base de données primaire? Si oui, je ne pense pas avec la réplication, vous pouvez le faire. J'ai useally une procédure qui fait le travail pour archiver des données, qui incerase la performance beaucoup. – Moudiz

+0

Malheureusement, je n'ai pas le luxe de modifier le schéma ni pour les données actuelles ou historiques. Les fonctionnalités de reporting et de transaction sont implémentées en fonction du schéma existant. Je vise une solution improvisée ne pas interférer avec la mise en œuvre actuelle. – kar8o

Répondre

0

Vous n'avez pas besoin de créer deux bases de données distinctes. Créez simplement une base de données transactionnelle dans laquelle vous sauvegarderez toutes vos transactions, puis créerez des vues basées sur ces tables pour afficher les données requises. De cette façon, vous n'avez plus qu'à gérer une seule base de données.