feat(backup): ネイティブ postgres をダンプして復元訓練に入れる - #519
Merged
Conversation
Matrix のブリッジで過去ログを取り込むことにしたが、その履歴が入る先が
バックアップとして成立していなかった。
ネイティブの PostgreSQL (atuin が database.createLocally で生やしたクラスタ) は
ダンプ対象に入っていない。/var/lib は paths に入っているので PGDATA のファイルは
restic に入るが、それは稼働中のコピーで起動する保証が無い。このファイル自身が
dawarich についてそう書いている。コンテナ側だけ見ていて、ホスト側を見落としていた。
ブリッジで取り込んだ過去ログは相手のネットワークから取り直せるとは限らない
(Signal の履歴は端末にしか無い) ので、壊れたコピーしか無い状態にはしない。
復元訓練にも入れた。ダンプを足すだけでは「戻せる」ことの確認にならない。
訓練側で 2 つ直した:
- 識別子を引用する。matrix-synapse はハイフンを含むので、引用なしの
CREATE DATABASE drill_matrix-synapse は構文エラーになる。
- 照合順序を本番に合わせる。Synapse は C 以外の DB を見つけると起動を拒否する
ので、戻せても起動しないなら復元できたことにならない。dawarich の PostGIS で
踏んだのと同じ形の穴。
gapul
added a commit
that referenced
this pull request
Aug 30, 2026
深く取れるのはポータルが初めて作られる一度きり。既定は 50 件で、後から遡るには backfill queue が要るが、上流の設定にこう書いてある: Settings for the backwards backfill queue. This only applies when connecting to Beeper as standard Matrix servers don't support inserting messages into history. 素の Synapse は履歴の途中に差し込めない (MSC2716 が廃止された)。空の部屋へ順に 流し込む初回だけは効くので、そこで取れるだけ取る。既定のまま入ってしまうと、 やり直すには部屋を消すことになる。だからログインより先に入れる。 bridgev2 (signal / meta 2本) は max_initial_messages と max_catchup_messages を 5000 に。discord は 0.7.7 で旧形式なので DM / チャンネル / スレッドを個別指定し、 チャンネルは 1000 に抑えた。ギルドのチャンネルは桁が違うので、DM と同じ深さに すると初回同期が終わらない。 どれだけ取れるかは相手次第で、こちらの設定では決まらない: Telegram / Discord サーバ側に履歴がある。いちばん深く取れる Meta / LinkedIn / Slack サーバ側にある Signal 端末にしか無い。過去は基本的に取れない 貯める先は #519 で先に固めた (ネイティブ postgres のダンプと復元訓練)。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
なぜ
Matrix のブリッジで過去ログを取り込むことにしたが、その履歴が入る先がバックアップとして成立していなかった。
ネイティブの PostgreSQL(atuin が
database.createLocallyで生やしたクラスタ)はダンプ対象に入っていない。/var/libはpathsに入っているので PGDATA のファイルは restic に入るが、それは稼働中のコピーで起動する保証が無い。このファイル自身が dawarich についてそう書いている。コンテナ側だけ見ていて、ホスト側を見落としていた。ブリッジで取り込んだ過去ログは相手のネットワークから取り直せるとは限らない(Signal の履歴は端末にしか無い)。壊れたコピーしか無い状態にはしない。
復元訓練にも入れた
ダンプを足すだけでは「戻せる」ことの確認にならない。訓練側で 2 つ直した:
matrix-synapseはハイフンを含む。引用なしのCREATE DATABASE drill_matrix-synapseは構文エラー2 つめは dawarich の PostGIS で踏んだのと同じ形の穴。訓練の意味はここにある。