2つのOracle 10gスキーマを比較するにはどうすればよいですか?


14

私は、同一のはずの2つの大きな複雑なOracleスキーマの間に何らかの違いがあると感じているため、調査のためにそれらをダンプおよび差分することにしました。テーブルとインデックスの定義をダンプするための次のコマンドを提供する記事(http://www.dba-oracle.com/art_builder_get_schema_syntax.htm)を見つけました。

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;

しかし、スキーマの出力のスプールをダンプして比較すると、ほとんどすべての行で些細な違いがあり、その違いは価値がありませんでした。たとえば、スキーマ名は各テーブル定義に含まれています。

差分ツールを使用して簡単に比較できる形式で最も重要なスキーマデータを提供するこれを行うより良い方法はありますか。テーブル、インデックス、トリガーに興味があります。

Oracle Database 10g Enterprise Editionリリース10.2.0.3.0を使用しています

回答:


14

私が書いた無料でオープンソースのSchemaCrawlerツールは、あなたが必要とすることをします。SchemaCrawlerは、スキーマの詳細(テーブル、ビュー、プロシージャなど)を、差分可能なプレーンテキスト形式(テキスト、CSV、またはXHTML)で出力します。SchemaCrawlerは、同じプレーンテキスト形式でデータ(CLOBおよびBLOBを含む)を出力することもできます。標準のdiffプログラムを使用して、現在の出力を参照バージョンの出力と比較できます。

https://www.SchemaCrawler.com

データベースにJDBCドライバーを提供する必要があります。


2
FAQには、オープンソースプロジェクトへの所属を明らかにする必要があると書かれていることがわかりました。それを今から始めました。しかし、私は自分の答えを待っており、それは探索する価値のあるソリューションだと思います。私は過去の2つの会社でSchemaCrawlerを使用しましたが、両方の開発チームは、この目的に役立つツールであることに同意しました。(いいえ、私は上司ではありませんでした。)
スアレファテヒ11年

6

このようなものは必要ありません。

otn.oracle.com

Oracleには、SQL Developerと呼ばれる無料のツールがあります。スキーマの差分があります。


4

あなたは使うことができヒキガエルは、 Oracleの開発のための優れた汎用的なツールです。テスト用の試用版があります。機能リストから:

  • データ比較および同期ウィザード
  • データベースプラットフォーム間でデータを同期する

テストできる別の製品はOraPowerToolsです。

OraPowerToolsは、ネイティブOracleデータベースユーティリティのコレクションです。このコレクションには、完全なOracle開発環境であるOraEdit PRO、Oracle用のDBDiff、任意の2つのOracleデータベースの比較とアップグレード、およびOracle用のDBScripterが含まれ、OracleデータベースのオブジェクトやデータからSQLスクリプトを作成します。

無料の代替として、このCodeProjectの記事:Schema Compare Tool for Oracleを確認できます。

この小さなVB.NETアプリケーションを使用すると、Oracleデータベーススキーマを相互に比較できます。これは、開発インスタンスが本番インスタンスと同じであることを確認するときに非常に役立ちます。特に、フロントエンドの変更を実装する場合。

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


2

DKGAS 'DBDiff for Oracle'を使用して、スキーマ全体またはその一部(テーブル、シーケンス、インデックス、制約、特権、パッケージ、オブジェクト、およびデータ)を比較レポートまたはアップグレードスクリプトとして比較できます。

データベースアップグレードスクリプトの基礎として後者として使用します。


1

Perlを実行できる場合は、SQLFairyを見ると、スキーマのダンプをSQLとして生成できるはずです。そうすれば、標準のテキスト比較ツールを使用できます。また 2つのスキーマを取得し、ALTERコマンドを生成してそれらを同一にするツールもあります。


1

お金が必要な場合は、PowerDIFF for Oracleの使用を検討してくださいhttp ://www.orbit-db.com 。このツールは、テーブル、インデックス、トリガーを非常によく比較し、「diff」操作をカスタマイズするための多数の比較オプションを備えています。合計差分スクリプト(DDLおよびDMLコマンド)がオプションで生成されます。データベースに接続するには、ODBCドライバーが必要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.