Устранение проблем при восстановлении внешних баз данных
При восстановлении внешних баз данных могут возникнуть следующие проблемы:
PostgreSQL: отсутствуют файлы WAL-архивации
Проявление: при попытке восстановления базы данных выводится следующее сообщение:
FATAL: could not locate a valid checkpoint record
Причина: отсутствуют файлы WAL-архивации, которые необходимы для корректного восстановления базы данных.
Решение: проверьте, что параметр restore_command настроен корректно.
PostgreSQL: конфликт версий истории базы данных
Проявление: при попытке восстановления базы данных выводится следующее сообщение:
FATAL: requested timeline X is not a child of this server's history
Причина: утилита wal-g не может использовать выбранную резервную копию, так как данная копия не является предком текущей базы данных.
Решение: добавьте в файл конфигурации postgresql.conf следующую строку:
recovery_target_timeline = 'latest'
PostgreSQL: отказ в доступе к PGDATA
Проявление: при попытке восстановления базы данных выводится следующее сообщение:
permission denied
Причина: для директории файлов PostgreSQL (PGDATA) указан неверный владелец.
Решение: переопределите владельца директории файлов PostgreSQL, выполнив команду:
chown -R postgres:postgres /<path_to_pgdata>
Здесь:
-
<path_to_pgdata>— путь к директории с данными PostgreSQL, например,/var/lib/pgsql/16/data.
ClickHouse: разрыв в цепочке резервных копий
Проявление: при восстановлении базы данных из резервной FULL- или связанной DIFF-копии выводится следующее сообщение:
no such file or directory
Причина: произошел разрыв цепочки резервных копий: повреждена FULL-копия или связывающая DIFF-копия.
Решение: доступные способы решения проблемы:
-
Если повреждена резервная FULL-копия, то восстановите базу данных из предыдущей рабочей FULL-копии.
-
Если повреждена связывающая DIFF-копия, то восстановите базу данных вручную последовательно.
Чтобы решить проблему с поврежденной резервной FULL-копией:
-
Проверьте список резервных копий, выполнив команду:
clickhouse-backup list remoteПример списка резервных копий
full-2026-01-27 remote all:14.35GiB inc-2026-01-28 remote +full-2026-01-27 all:2.43GiB inc-2026-01-29 remote +full-2026-01-27 all:2.28GiB
В третьем столбце отображается название резервной FULL-копии, с которой связана DIFF-копия. Например,
+full-2026-01-27. -
Если резервная FULL-копия отсутствует, то все связанные DIFF-копии становятся недействительными. Необходимо восстановить базу данных из предыдущей резервной FULL-копии.
Чтобы решить проблему с поврежденной DIFF-копией в цепочке:
-
Очистите локальные резервные копии, выполнив команду:
clickhouse-backup delete local --all -
Проверьте список резервных копий, выполнив команду:
clickhouse-backup list remoteПример списка резервных копий
full-2026-01-27 remote all:14.35GiB inc-2026-01-28 remote +full-2026-01-27 all:2.43GiB inc-2026-01-29 remote +full-2026-01-27 all:2.28GiB
В третьем столбце отображается название резервной FULL-копии, с которой связана DIFF-копия. Например,
+full-2026-01-27. -
Восстановите базу данных по порядку из каждой резервной копии, начиная с FULL-копии. Пример пошагового восстановления:
clickhouse-backup restore_remote full-2026-01-27T10-00-00 clickhouse-backup restore_remote inc-2026-01-28T10-00-00 clickhouse-backup restore_remote inc-2026-01-29T10-00-00
ClickHouse: ошибка восстановления данных в существующую таблицу
Проявление: при попытке восстановить данные в конкретную таблицу базы данных выводится следующее сообщение:
DB::Exception: Table already exists
Причина: таблица, в которую восстанавливаются данные, уже существует.
Решение: доступны следующие варианты решения:
-
Удалить таблицу вручную.
-
Добавить к команде восстановления базы данных флаг
--rm. Например:clickhouse-backup restore_remote --rm <backup_name>Здесь:
-
<backup_name>— название резервной копии.
-
ClickHouse: ошибка отключения таблицы
Проявление: при попытке восстановления базы данных выводится следующее сообщение:
Code: 243. DB::Exception: Cannot detach
Причина: таблица восстанавливаемой базы данных используется сторонним приложением.
Решение: остановите все приложения, которые посылают запросы к таблицам восстанавливаемой базы данных.
Была ли полезна эта страница?