web-dev-qa-db-fra.com

Comment puis-je diffuser deux schémas oracle 10g?

J'ai le sentiment qu'il y a une différence entre deux grands schémas d'oracle compliqués, qui devraient être identiques, alors décidé de les jeter et de les diffuser à enquêter. J'ai trouvé un article ( http://www.dba-oracle.com/art_builder_get_schema_syntax.htm ) qui donne les commandes suivantes pour vider les définitions de table et d'index.

SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u;
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;

Cependant, lorsque j'ai largué et différé une bobine de la sortie, les schémas ont eu des différences triviales sur presque toutes les lignes, ce qui rend la différence sans valeur. Par exemple, le nom du schéma est inclus dans chaque définition de table.

Y a-t-il un meilleur moyen de le faire qui donnera aux données de schéma les plus importantes dans un format pouvant être comparé facilement à l'aide d'un outil diff. Je suis intéressé par les tables, les index et les déclencheurs.

J'utilise la base de données Oracle 10G Enterprise Edition version 10.2.0.3.0

14
Stuart Woodward

Le SCHEMACRAWler SCHEMACRAWLER SCHEMACRAWL (- === -) que j'ai écrit fera de quoi vous avez besoin. SCHEMACRAWLER SORTIE DES DÉTAILS DE VOTRE SCHEMA (Tableaux, Vues, ​​procédures, et plus) Dans un format de texte simple difforme (texte, CSV ou XHTML). SCHEMACRAWLER peut également produire des données (y compris les clobs et les blobs) dans les mêmes formats de texte brut. Vous pouvez utiliser un programme DIFF standard pour differez la sortie actuelle avec une version de référence de la sortie.

https://www.schemacrawler.com

Vous devrez fournir un pilote JDBC pour votre base de données.

14
Sualeh Fatehi

vous n'avez pas besoin de ces choses.

otn.oracle.com

Oracle a un outil gratuit appelé développeur SQL. Il a un schéma diff.

6
Bob

Vous pouvez utiliser [~ # ~ # ~] TOAD [~ # ~ ~] est un excellent outil générique pour Oracle Development. Il y a une version d'essai pour les tests. Dans la liste des fonctionnalités:

  • Data Comparez et synchronisation Wizard
  • Synchroniser les données sur toutes les plateformes de base de données

Un autre produit que vous pourriez tester est ORAPOWERTOOLS :

ORAPOWERTOOLSS est une collection d'utilitaires de base de données Oracle natifs. Cette collection comprend Oraditit Pro, un environnement de développement Oracle complet, DBDiff pour Oracle, comparer et mettre à niveau les 2 bases de données Oracle, et DBScripter pour Oracle, créez des scripts SQL hors de vos objets et/ou de données de votre base de données Oracle.

Comme alternative gratuite, vous pouvez consulter cet article de codeProject: SCHEMA Comparez l'outil pour Oracle ) ==) ==) ==) ==) ==) ==)

Cette petite application VB.NET vous permet de comparer les schémas de base de données Oracle les uns contre les autres. Ceci est très utile lorsque vous veillez à ce que votre instance de développement soit la même que celle de votre instance de production; surtout lors de la mise en œuvre des changements frontaux.

1 : 1 : http://www.toadsoft.com/toad_oracle.htm

4
splattne

Si vous avez de l'argent à dépenser, envisagez d'utiliser PowerDiff pour Oracle: http://www.orbit-db.com . Ces outils compare parfaitement les tableaux, les index et les déclencheurs avec un certain nombre d'options de comparaison pour personnaliser l'opération 'DIFF'. Un script de différence total (commandes DDL et DML) est généré éventuellement. Vous avez besoin d'un ODBC pilote pour vous connecter à la base de données.

1
Stefan Pflanz