bucardo と postgres を使用してマルチマスター セットアップを実行しています。
テーブル シーケンスの一部が互いに同期していないことがわかりました。特に、自動インクリメントされた ID。
例:
db1 - テーブル 1
INSERT INTO distributors (did, dname) VALUES (DEFAULT, 'XYZ Widgets')
新しい行の ID は 1 です
db2 - テーブル 1
INSERT INTO distributors (did, dname) VALUES (DEFAULT, 'XYZ Widgets')
新しい行の ID は 1 です
bucardo は db1 からデータをレプリケートしたため、db2 の新しい行の ID は 2 である必要がありますが、db2 の自動インクリメントは以下に基づいています。
nextval('oauth_sessions_id_seq'::regclass)
「oauth_sessions_id_seq」を確認すると、最後の値が 0 であることがわかります。
ふぅ… 理にかなっていますか?
とにかく、私は次のいずれかを行うことができますか?
各 DB のセッションが共有されるように、セッション テーブルを bucardo で複製しますか?
上記のデフォルトの自動インクリメント関数を操作して、テーブル内の既存のアイテムの最大数を考慮しますか?
より良いアイデアがあれば、遠慮なくお寄せください。質問はお気軽にどうぞ。