論理レプリケーションを使用してPostgresのアップグレードを検証します -- postgresql フィールド と postgresql-9.1 フィールド と postgresql-10 フィールド 関連 問題

Validating the postgres upgrade using logical replication




現在、論理レプリケーションを使用してPostgres 9.1から10をアップグレードしようとしています。 9.1がネイティブLogical_replicationをサポートしていないので、スロニーを試して、レプリカを正常にしました。



  1. レプリカにすべてのデータが正常に複製されているかどうかを検証する方法マスターをメンテナンスモードにすることをお勧めし、最後のN個の項目をすべてのテーブル上のデータベースとの比較を実行します。

  2. 私は800MBで試しました。私が行って100以上のGBを試してみると問題ありませんか?

  3. ここであなたの個人的な経験を共有してください。私は常に次の行動方針を予測しようとすることができるようなものが何であるかを文書化しようとしています。


Currently I am trying to upgrade my postgres 9.1 to 10 using logical replication. As 9.1 does not support native logical_replication, I tried slony and made a replica successfully.

P.S. The above replica I created is using a sample dump from an year ago which is only of 800mb.

Now I have few questions.

  1. How can I validate whether the replica has all the data replicated successfully. Few suggested to put the master on maintenance mode(few downtime) and do a last N items comparison with both the database on all the tables.

  2. I tried with 800mb. Will there be any problem when I go and try with 100+ GB?

Please share your personal experience here. I have been trying to document what are the things that could go wrong so I can always try to anticipate the next course of action.




古いPostgreSQLデータベースと新しいPostgreSQLデータベース間のデータを検証するために、ADB Postgres Replication Serverの試用版に同梱されているデータバリデータを使用できます。


EDB Replication Serverをダウンロードするには、次のリンクをご覧ください。サーバー

開示:私は EnterprisedB(EDB)


You may use the Data Validator that is shipped with trial version of EDB Postgres Replication server for validating the data between old and new PostgreSQL databases.

You may read the details of Data Validator at Data Validator Document

To download the EDB Replication Server please follow this link: EDB Replication Server

Disclosure: I work for EnterpriseDB (EDB)



0  PostgreSQL 10 Identity主キーを含む表に挿入できません  ( Postgresql 10 unable to insert into table with identity primary key ) 
タイムシートと呼ばれる次の表があります。 <コード> Table "public.timesheet" Column | Type | Collation | Nullable | ...

2  指定されたオペレータを使用して既存のインデックスを使用して除外制約を追加する方法  ( How to add an exclude constraint with an existing index with specified operator ) 
次のインデックスを想定して: <事前> <コード> CREATE INDEX CONCURRENTLY blocked_date_idx_on_since_until_range ON blocked_date USING gist( tstz...

2  内部参加を含むPostgreSQLSQLクエリを最適化する方法  ( How to optimize postgresqlsql query which contain inner join ) 
Ordersテーブルから疑わしい順序を含むビューを作成しようとしています。 疑わしい順序の条件は、「新しい顧客」タグを持ち、その orders__discount_codes から「新しい顧客」タグを使用し、割引コード(<コード> _sdc_sequence...

0  PostgreSQLクエリは非常に長い時間がかかります  ( Postgresql query takes very longtime ) 
私は3列の3列のテーブルとすべての3列のコンポジットの主キーを持っています。個々の列はすべて重複が多い、私はそれらのすべてに別々にbtreeを持っています。テーブルには約1,000万のレコードがあります。 単一列にハードコードされた値を持つ条件だけでの私のクエ...

2  Postgresで新しいユーザーを作成するには、Prefix "PG_"を強制するにはどうすればよいですか。  ( How can i force prefix pg to create new user in postgres ) 
Postgresに問題があります。 PostgreSQLでユーザーを作成するようにprefix "pg_"を強制することができますか?例えば: <事前> <コード> CREATE USER pg_admin PASSWORD 'qwerty'; Pos...

3  パーティション表の表サイズ(Postgres 10+)  ( Get table size of partitioned table postgres 10 ) 
私はこの照会に渡って Postgres週刊テーブル、それらのサイズ、トーストサイズとインデックスを示していますバイト数: <事前> <コード> SELECT relname AS table_name, pg_size_pretty(pg_total_...

0  PostgreSQLはjsonbオブジェクトを配列に更新します  ( Postgresql update jsonb object to array ) 
理由はわかりませんが、おそらくPHPは私のデータの一部をオブジェクトとして持続し、それらのいくつかを配列として永続化しました。私のテーブルは次のようになります: seller_info_addressテーブル: <事前> <コード> ID (INT) |...

0  Postgresデータベースに行を挿入できません "エラー:キー値が一意の制約に違反しています"テーブルにはエントリがありませんが  ( Unable to insert a row in postgres database error duplicate key value violates ) 
スキーマを持つテーブルを持っています: <事前> <コード> public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { ...

-2  PostgreSQL-10:プログラム "initdb"はpg_ctlによって必要ですが、 "pg_ctl"と同じディレクトリには見つかりませんでした  ( Postgresql 10 the program initdb is needed by pg ctl but was not found in th ) 
私はこのフォーラムに新しい、私はこの問題に直面しています、ここでは以下のエラーが発生します。 <事前> <コード> sudo -u shahid ./pg_ctl -D /root/pgsql10x/data/ initdb invalid binary "/...

0  postgres synchronous_standby_names varがホスト名に ' - 'を受け入れない  ( Postgres synchronous standby names var not accepting in the hostname ) 
自動フェイルオーバーで高可用性を得るために3マシンでPostgresクラスタをセットアップしようとしています。 <事前> <コード> postgres-01 --> master postgres-02 --> sync replica postgres-03...

© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有