PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 16/05/2014 14:53:46

menardorama
Membre

[Resolu] Ora2pg : Probleme de migration de tables partitionnées

Bonjour,

Je suis en train d'evaluer la faisabilité d'utiliser ora2pg pour migrer nos bases Oracle vers Postgresql.

Nous avons une forte utilisation du partitionnement par range sous oracle.

Les tables sont partitionnées par mois et le nommage est le suivant : 'PYYYYMM' et ce pour toutes nos tables, il n'y a pas dans le nommage des partitions une reference explicite à la table.

Dans un premier temps je me suis trouvé confronté à l'erreur suivante :
"FATAL: ERROR:  relation "p201404" does not exist"

Normal, j'avais oublié d'exporter la definitiion des parttions (avec l'option "-t PARTITION"), mais après le lancement avec cette option je me rends compte que je ne pourrais jamais créer mes 140000 partitions sachant que le toutes mes tables auront le les mêmes noms de partitions.

Dans le cadre de notre migration vers postgres, nous voulons utiliser le contrib pg_partman qui donne une entiere satisfaction et nous permet de gerer automatiquement la purge.

Ma question est la suivante : y a t'il une option d'Ora2pg pour copier les tables partitionnées directement dans une table normale ?

Autre option donner un patern pour remplacer le nom de partition PYYYYMM en part_YYYY_MM ....

Merci d'avance de votre aide

Dernière modification par menardorama (20/05/2014 18:26:48)

Hors ligne

#2 16/05/2014 20:12:32

gilles
Membre

Re : [Resolu] Ora2pg : Probleme de migration de tables partitionnées

Bonjour,

Je ne comprend pas bien. Si vous avez une table partitionnée dans Oracle vous n'avez pas a vous préoccuper des noms des partitions. Ora2Pg va vous exporter la définition de la table mère et des 14000 partitions en créant des tables filles avec leur propre nom de partition, celui que vous avez défini ('PYYYYMM'). Cela se fait effectivement avec la commande :

    ora2pg -T PARTITION

Ensuite, lorsque vous ferez l'export des données avec l'option -t COPY Ora2Pg mettra les données directement dans leur table filles respectives pour éviter de passer par la table mère et donc le trigger qui normalement redirige les données dans les tables filles.

Tout cela est automatique, du coup je ne comprend pas bien le problème que vous rencontrez. Ora2Pg supporte le partitionnement par RANGE et par LIST, mais pas le sous-partitionnement.

Cordialement,

Hors ligne

#3 16/05/2014 22:40:25

menardorama
Membre

Re : [Resolu] Ora2pg : Probleme de migration de tables partitionnées

Le problème est que nous avons la meme structure de tables pour tous nos clients. Et comme le nom des partitions est le même pour toutes ces tables, ora2pg genere les ddl de créations des tables hérités mais avec les mêmes noms (mails avec un héritage différent).

Donc pour résumer ora2pg -t PARTITION genere bien les DLL mais c'est le même pour chaque table (partition) avec un héritage différent.

J'espère que c'est plus clair merci pour ton aide.

Si besoin je peux poster le ddl de quelques tables pour l'exemple

Hors ligne

#4 20/05/2014 18:27:41

menardorama
Membre

Re : [Resolu] Ora2pg : Probleme de migration de tables partitionnées

Le probleme est corrigé dans les derniers commit sur github.

Merci pour la réactivité de Gilles

Hors ligne

Pied de page des forums