0

8.3 postgresql DB のデータが 9.0 DB のデータと同じであることを確認するにはどうすればよいですか?

サンプル テーブルで sql ダンプを実行したところ、多くの違いが示されましたが、これは 9.0 で日付フィールドの最後と最初の 0 が切り捨てられたためであり、ダンプの順序も固定されていませんでした。ソート(しゃれは意図されていません)。ソートされたSQLダンプは、余分なダンプ設定がスローされたSQLコマンドの無意味なスプラットになるため、それがどのテーブルの一部であったかが失われるため、検証は許可されません。

count(*) も十分ではありません。

バージョンの違いや、少なくとも日付が 9.0 で保持される方法にもかかわらず、一方のデータが他方のデータと等しいことを 100% 確信したいと思います。

数百のテーブルと数百 GB のデータがあることを付け加えておきます。したがって、diff DUMPa.sql DUMP2.sql のような自動化されたプロセスが必要です。データの SHA (形式ではない) が考えられますが、よく知られている理由で PostgreSQL のバイナリ ダンプを比較することはできません。mysql にはチェックサム機能があることは承知していますが、私は postgresql を使用しています。

4

1 に答える 1

0

まず悪いニュース。すべてのデータを中間プログラムにロードして直接比較せずに、対処したいすべての懸念事項を提供する方法は実際にはありません。これには時間がかかり、システムの負荷が低下するため、何らかのレプリケーションをセットアップしてレプリカを比較することをお勧めします。

できることの 1 つは、Slony や Bucardo などを使用してレプリケートし、トリガーを使用してデータをセカンダリ子パーティションに移動し、それらを統合サーバーにレプリケートして比較することです。その後、PostgreSQL 内で比較できます。これにより負荷が軽減され、他のアプローチに比べてレポート データの管理が比較的容易になります。しかし、すべてのデータをロードして行ごとに比較する必要があります。

于 2013-04-09T02:53:41.560 に答える