Восстановление базы данных ClickHouse
Восстановление базы данных ClickHouse состоит из следующих этапов:
Проверка соединения с S3-совместимым хранилищем
Чтобы проверить соединение:
-
Установите переменные подключения к S3-совместимому хранилищу, если они не были заданы на этапе настройки Backup Wrapper. Для этого выполните команды:
export REMOTE_STORAGE=s3 export S3_ENDPOINT="<aws_endpoint>" export S3_BUCKET="<bucket>" export S3_PATH="<path_to_backups>" export S3_ACCESS_KEY="<access_key>" export S3_SECRET_KEY="<secret_key>" export S3_FORCE_PATH_STYLE=true export S3_DISABLE_SSL=trueЗдесь:
-
<aws_endpoint>— URL-адрес S3-совместимого хранилища, например,http://your-s3-endpoint:9000 -
<bucket>— название контейнера (bucket) для хранения резервных копий. -
<path_to_backups>— путь к директории внутри контейнера (bucket), где будут храниться резервные копии. -
<aws_access_key>— идентификатор ключа доступа к S3-совместимому хранилищу. -
<aws_secret_key>— секретный ключ доступа к S3-совместимому хранилищу.
-
-
Проверьте доступ утилиты wal-g к S3-совместимому хранилищу, выполнив команду:
clickhouse-backup list remote
Восстановление базы данных
Доступны следующие сценарии восстановления базы данных ClickHouse:
Восстановление из последней резервной копии
Чтобы восстановить базу данных из последней резервной копии, выполните команду:
clickhouse-backup restore_remote LATEST
Восстановление из конкретной резервной копии
Чтобы восстановить базу данных:
-
Откройте список резервных копий, выполнив команду:
clickhouse-backup list remote -
Восстановите базу данных. Способ восстановления зависит от типа резервной копии:
-
FULL
-
DIFF
Для восстановления резервной FULL-копии выполните команду:
clickhouse-backup restore_remote <full_backup_name>Здесь:
-
<full_backup_name>— название резервной FULL-копии, например,full-2026-01-27T10-00-00.
Для восстановления резервной DIFF-копии выполните команду:
clickhouse-backup restore_remote <diff_backup_name>Здесь:
-
<diff_backup_name>— название резервной DIFF-копии, например,inc-2026-01-28T10-00-00.
-
Восстановление данных в другую базу данных
Чтобы восстановить данные в новую базу данных:
-
Откройте список резервных копий, выполнив команду:
clickhouse-backup list remote -
Восстановите данные в новую базу данных, выполнив команду:
clickhouse-backup restore_remote --restore-database-mapping <old_db>:<new_db> <backup_name>Здесь:
-
<backup_name>— название резервной копии. -
<old_db>— название существующей базы данных. -
<new_db>— название новой базы данных.
-
Восстановление данных в другую таблицу
Чтобы восстановить данные в новую таблицу:
-
Откройте список таблиц необходимой резервной копии, выполнив команду:
clickhouse-backup tables --remote-backup <backup_name>Здесь:
-
<backup_name>— название резервной копии.
-
-
Восстановите данные в новую таблицу, выполнив команду:
clickhouse-backup restore_remote --restore-table-mapping <old_table>:<new_table> <backup_name>Здесь:
-
<backup_name>— название резервной копии. -
<old_table>— название существующей таблицы. -
<new_table>— название новой таблицы.
-
Проверка после восстановления базы данных
Чтобы провести проверку:
-
Проверьте целостность восстановленных данных, выполнив команды:
clickhouse-client -q "SELECT count() FROM <database_table>"Здесь:
-
<database_table>— название восстанавливаемой базы данных и таблицы, например,your_database.your_table.
-
-
Проверьте данные в системных таблицах, выполнив команду:
clickhouse-client -q "SELECT count() FROM system.parts WHERE active" clickhouse-client -q "SELECT database, table, count() FROM system.parts WHERE active GROUP BY database, table" -
Проверьте наличие ошибок в логах. Отобразить логи с ошибками можно с помощью команды:
grep -i error /var/log/clickhouse-server/clickhouse-server.log | tail -50 -
При необходимости оптимизируйте восстановленные таблицы, осуществив принудительное слияние (merge) всех частей данных. Для этого выполните команду:
clickhouse-client -q "OPTIMIZE TABLE <table> FINAL"Здесь:
-
<table>— название таблицы базы данных.
-
Была ли полезна эта страница?