web-dev-qa-db-ja.com

WALファイルが削除されず、pg_drop_replication_slot( 'barman')が原因で[55000]エラー:レプリケーションスロットは、wal_level> = archiveの場合にのみ使用できます

データベースでWALファイルの削除が停止し、_pg_xlog_が大きくなって、最終的にすべてのディスク領域が使用されます。手動で削除するには、_pg_controldata_と_pg_archivecleanup_を使用する必要があります。

レプリケーションのいじりに関係していることはほぼ確実ですが、削除したと思ったので、残っているのはレプリケーションスロットだけですが、削除しようとすると:pg_drop_replication_slot('barman') causes [55000] ERROR: replication slots can only be used if wal_level > = archive 。使用しないで削除しようとしているので、これは奇妙だと思います。

_$ barman list-server_は何も表示しません

_SHOW wal_level minimal_

SHOW archive_command (disabled)

_SELECT * FROM pg_replication_slots
barman,,physical,,,false,,,,23/DF000000
_

_SHOW server_version 9.5.14_

私のpostgresql.confには_max_replication_slots = 1_以外のすべてのWAL設定がありません。これは_0_に設定しようとしましたが、そうするとデータベースが起動しません。

レプリケーションスロットを削除する方法、またはpostgresがWALファイルを削除しない場合のトラブルシューティング方法を教えてください。

1
Marvin Irwin

「wal_level」を「archive」に戻し、再起動します。次に、スロットをドロップします。次に、「アーカイブ」のままにしたくない場合は、もう一度「最小」に設定し、max_replication_slotsを0に設定して、再起動します。

使用しないで削除しようとしているので、これは奇妙だと思います。

スロットを削除するには、スロット機構にアクセスする必要があります。 「利用」の一形態です。

0
jjanes