このような質問は、SQLite を利用する Plex Media Server コンテナーを備えた Unraid Linux サーバーからの質問なので、実際にはどこに該当するのかわかりません (ルート レベルでのトラブルシューティングを探しています)。Unraid フォーラムと Plex フォーラムの両方に投稿しましたが、うまくいきませんでした。
私の Plex コンテナは Unraid で何度も失敗し、整合性チェック、再構築、ダンプ、インポート、完全なワイプと再起動 (古いディレクトリを完全に削除して最初からやり直す) を実行することになりました。せいぜい数分間は起動しますが、その後コンテナは再び失敗します。受信するエラーは変化しましたが、最後の状況 (新しいコンテナの完全なワイプと再インストール) では、出力ログに次のエラーが表示されています。
エラー: サーバーをセットアップできません: sqlite3_statement_backend::loadOne: データベース ディスク イメージの形式が正しくありません (N4soci10soci_errorE)
私はデータベースをWindowsマシンにコピーし、データベースの構造をよりよく理解するためにデータベースを詳しく調べることにしました。メディアアイテム同じエラーが発生します。
メイン テーブルと思われるものの 1 つが明らかに破損しています。そこで疑問に思うのは、この問題を解決したり原因を調べたりするには、何ができるのかということです。まったくの偶然で、接続もできないまま、2 つの連続したデータベースが破損したのでなければ、完全に新しいデータベースを作成すれば問題は解決すると思います。メディア ファイルの 1 つが原因でしょうか。Unraid が原因でしょうか。ハード ドライブが原因でしょうか。
Plex に馴染みのない方のために、背景を説明します。コンテナーが起動すると、メディア ライブラリがスキャンされ、メタデータ、ポスター、視聴状態、評価などのデータが取り込まれます。完全な自動ビルドを完了しても、ライブラリをカスタマイズする前に 30 分以内にビルドが失敗します。
以下は、トラブルシューティング中のいくつかのシナリオで使用した bash 行の参照です。どこかの誰かの役に立つかもしれません。
整合性チェック:
./Plex\ SQLite "$plexDB" "PRAGMA integrity_check"
バックアップからの回復:
./Plex\ SQLite "$plexDB" ".output recover.out" ".recover"
ごみ:
./Plex\ SQLite "$plexDB" ".output dump.sql" ".dump"
輸入:
./Plex\ SQLite "$plexDB" ".read dump.sql"
答え1
数時間、数日、そして 1 週間にわたるあらゆる種類のトラブルシューティングの後、Docker イメージ (および投稿で言及されている他のもの) のリセットを含め、別のフォーラムで memtest を実行することが提案されました。起動可能な USB に memtest を配置すると、すぐに 1 つのスティックが不良であると結論付けることができました。そのスティックを取り外すと、問題はなくなり、すべてが完全に正常になりました... 奇妙です。