2009-11-10 5 views
3

J'ai une base de données master qui est utilisée pour les applications de type OLTP. À l'heure actuelle, nous avons une réplication de table individuelle pour de nombreuses tables vers une autre base de données utilisée comme instance de génération de rapports. Bientôt, nous passons à une base de données Data Guard Standby Standby. Qu'est-ce que je ne peux pas sembler traquer de google est de savoir si je peux changer la structure physique des tables sur la veille logique. Je souhaite partitionner de nombreuses grandes tables sur le serveur de secours logique pour faciliter le reporting - la manière idéale de procéder est de partitionner les tables sur le serveur de secours logique, puis le processus d'application SQL peut simplement mettre à jour les tables comme d'habitude, mais je ne peux pas comprendre si cela est pris en charge.Oracle 10g Standby logique - Pouvez-vous partitionner les tables différemment de la DB principale?

Est-ce que quelqu'un sait s'il est possible de modifier la structure de la table en veille pour implémenter le partitionnement?

+0

Je ne suis pas sûr de votre titre: les tables sont-elles partitionnées avec une clé différente sur la base de données principale ou non partitionnée? – dpbradley

+0

Non partitionné sur la base de données principale. –

Répondre

1

Cela devrait être possible. J'activerais le mouvement de ligne sur les tables partitionnées logiques de secours au cas où votre application OLTP mettrait à jour les valeurs de la clé de partitionnement. Puisque vous utilisez le serveur de secours logique comme base de données de rapports, pourquoi ne pas laisser les "copies" des tables OLTP telles quelles et créer des vues matérialisées autour d'elles? - vous pourriez obtenir des améliorations de performances supplémentaires à partir de la dénormalisation et de l'agrégation. Ce n'est pas nécessairement le cas que vous verrez des améliorations de performances résultant du partitionnement des tables.

+0

Beaucoup de tables ont 100M plus de lignes et je veux utiliser des jointures par partition sur elles - cela fait une énorme différence dans mes tests. Je suis d'accord je pourrais créer MViews sur les tables d'OLTP, mais cela exigera le double le stockage, ainsi j'essaye de comprendre si nous pouvons partitionner directement. Savez-vous comment vous allez modifier la structure de la table sur un standby logique? Créez simplement la partition tab_new par hash (col) ... en sélectionnant * from old_tab, puis faites un drop, recréer des index et renommer comme sur une base de données master? –

+0

Je comprends re: partitions de hachage - Je travaille tellement avec des partitions de gamme que je ne considère pas toujours les autres types. L'approche CTAS/renommer est une façon de faire la conversion - vous devriez également regarder une opération de partitionnement d'échange. – dpbradley