Безопасно ли резервное копирование томов данных работающего контейнера mariadb / postgres / mysql? Следует ли останавливать контейнер перед резервным копированием томов?
Не без дополнительных шагов.
Файлы на диске, скорее всего, будут внутренне несовместимыми, поэтому их моментальный снимок должен пройти процесс восстановления, который (в идеале) откатит любые незафиксированные транзакции и вернет вас в согласованное состояние. Однако это будет работать только с атомарно созданными снимками, поскольку такая ситуация в основном эквивалентна потере мощности в середине транзакции.
На странице Обзор резервного копирования и восстановления предлагается либо создать логическую резервную копию с помощью mysqldump
, либо временно заморозить все таблицы ( FLUSH TABLES WITH READ LOCK
) и принять снимок. Обратите внимание, что это останавливает все модифицирующие транзакции до тех пор, пока клиент не отключится или не будет выполнен РАЗБЛОКИРОВАТЬ ТАБЛИЦЫ
, поэтому в идеале механизм моментальных снимков должен быть быстрым (например, моментальный снимок LVM или ZFS).