Spec-Zone.ru › MySQL Enterprise Backup 9.2
Глава 6 Работа с зашифрованными таблицами InnoDB

Глава 6 Работа с зашифрованными таблицами InnoDB

MySQL Enterprise Backup поддерживает зашифрованные табличные пространства InnoDB. Подробную информацию о том, как сервер MySQL шифрует и расшифровывает табличные пространства InnoDB, можно найти в — там объясняются такие понятия, как главный ключ и ключи табличных пространств, которые важны для понимания работы MySQL Enterprise Backup с зашифрованными табличными пространствами InnoDB.

Когда шифрование табличных пространств InnoDB использует централизованное решение управления ключами, эта функция называется “Прозрачное шифрование данных MySQL Enterprise (TDE).”

Ниже приводится краткое описание того, как зашифрованные табличные пространства InnoDB обрабатываются MySQL Enterprise Backup при выполнении операций резервного копирования, восстановления и применения журнала.

Примечания

Так как плагины keyring_file и keyring_encrypted_file были удалены из сервера MySQL начиная с версии 8.4.0, они больше не поддерживаются MySQL Enterprise Backup.

и поддерживаются MySQL Enterprise Backup. Зашифрованные табличные пространства отката и повтора обрабатываются так же, как и зашифрованные табличные пространства для InnoDB.

Создание резервной копии сервера базы данных с зашифрованными табличными пространствами InnoDB.

Важно

Для создания резервной копии зашифрованных табличных пространств InnoDB MySQL Enterprise Backup, пользователю операционной системы, который выполняет MySQL Enterprise Backup, необходимо иметь разрешение на запись для файла ключей на сервере, если на нем используется плагин keyring_aws.

Когда сервер базы данных использует зашифрованные табличные пространства InnoDB, MySQL Enterprise Backup всегда сохраняет главный ключ шифрования в зашифрованном файле внутри резервной копии, независимо от типа плагина или компонента ключей, используемого сервером. Ниже приведен типичный командный запрос для создания резервной копии сервера базы данных, содержащего зашифрованные табличные пространства InnoDB:

$ mysqlbackup --defaults-file=/home/dbadmin/my.cnf --backup-image=/home/admin/backups/my.mbi \
  --backup-dir=/home/admin/backup-tmp --encrypt-password="password" backup-to-image

Во время операции резервного копирования mysqlbackup копирует зашифрованные файлы табличных пространств InnoDB в резервную копию и выполняет следующие действия:

  • mysqlbackup связывается с сервером MySQL, чтобы определить используемый плагин или компонент ключей сервера.

  • Если сервер использует компонент component_keyring_encrypted_file, пользователь должен использовать параметр --encrypt-password для передачи mysqlbackup пароля шифрования файла ключей, который был задан на сервере файлом component_keyring_encrypted_file.cnf. mysqlbackup затем копирует зашифрованные данные файла ключей с сервера, содержащие главный ключ, используемый для шифрования всех ключей табличных пространств, в папку meta резервной копии и называет файл keyring_kef; файл шифруется паролем, предоставленным с параметром --encrypt-password. Зашифрованные файлы табличных пространств также копируются в резервную копию.

  • Если сервер использует плагин или компонент ключей, отличный от , mysqlbackup обращается к хранилищу ключей, чтобы получить главный ключ и использует его для расшифровки зашифрованных ключей табличных пространств, которые использовались для шифрования табличных пространств InnoDB на сервере. Главный ключ затем помещается в файл данных хранилища ключей, названный keyring_kef и сохраняется в папке meta в резервной копии; файл шифруется паролем пользователя, предоставленным с параметром --encrypt-password.

    Примечания
    • Создание резервной копии сервера, использующего плагин или компонент ключей, отличный от , поддерживается только для серверов, которые позволяют подключения через сокеты или TCP/IP с использованием TLS; поэтому это не поддерживается, например, когда сервер работает на платформе Windows и допускает только подключения через общую память.

    • Пользователи, которые не хотят вводить пароль в командной строке или в файле по умолчанию, могут использовать параметр --encrypt-password без указания значения; mysqlbackup затем попросит пользователя ввести пароль перед началом операции. Это относится ко всем командам, использующим параметр --encrypt-password.

    • Если сервер использует плагин keyring_hashicorp, используйте параметр --encrypt-password для предоставления секретного идентификатора аутентификации AppRole HashiCorp Vault, который был значением на сервере, подлежащем резервному копированию.

Команда extract или image-to-backup-dir для создания резервной копии образа, содержащей зашифрованные табличные пространства InnoDB, не требует параметра --encrypt-password.

Восстановление резервной копии с зашифрованными табличными пространствами InnoDB. Ниже приведен типичный командный запрос для восстановления резервной копии в одном файле, содержащей зашифрованные табличные пространства InnoDB:

$ mysqlbackup  --defaults-file=/usr/local/mysql/my.cnf  --backup-image=/home/admin/backups/my.mbi \
    --backup-dir=/home/admin/restore-tmp --encrypt-password="password" copy-back-and-apply-log

Для операции восстановления необходимо использовать тот же пароль, что и при создании резервной копии сервера базы данных, с помощью параметра --encrypt-password. Во время восстановления mysqlbackup копирует зашифрованные файлы табличных пространств InnoDB на сервер. Также выполняются следующие действия:

  • Если на сервере, с которого была создана резервная копия, использовался компонент ключей, mysqlbackup восстанавливает зашифрованный файл данных ключей в соответствующее местоположение на сервере, а также создает файл manifest и конфигурационный файл component_keyring_encrypted_file.cnf (который содержит пароль, используемый с параметром --encrypt-password при восстановлении) на восстановленном сервере, чтобы сервер загружал component_keyring_encrypted_file при перезапуске.

  • Если на сервере, с которого была создана резервная копия, использовался компонент ключей, mysqlbackup использует пароль, предоставленный с помощью параметра --encrypt-password, для расшифровки файла данных ключей и затем восстанавливает его в соответствующее местоположение на сервере. Также создаются файл manifest и конфигурационный файл component_keyring_file.cnf на восстановленном сервере, чтобы сервер загружал компонент component_keyring_file при перезапуске.

  • Если на сервере, с которого была создана резервная копия, использовался любой другой плагин ключей, mysqlbackup восстанавливает зашифрованный файл данных ключей в соответствующее местоположение на сервере. Восстановленный сервер должен быть запущен с component_keyring_encrypted_file. mysqlbackup создает файл manifest и конфигурационный файл component_keyring_encrypted_file.cnf (который содержит пароль, используемый с параметром --encrypt-password при восстановлении) на восстановленном сервере, чтобы сервер загружал при перезапуске.

Выполните следующие дополнительные шаги после завершения операции восстановления:

  • Для использования глобального манифеста и конфигурационного файла для запуска компонента ключей:

    • Скопируйте файл manifest из восстановленной директории данных в папку, где находится бинарник mysqld.

    • Скопируйте конфигурационный файл component_keyring_encrypted_file.cnf или component_keyring_file.cnf (в зависимости от способа восстановления резервной копии; см. обсуждение выше) из директории восстановления в папку, где находится бинарник компонента.

  • Для использования локального манифеста и конфигурационного файла для запуска компонента ключей:

    • Создайте новый файл manifest с указанным ниже содержимым в папке, где находится бинарник mysqld:

      { "read_local_manifest": true } 
    • Создайте новый конфигурационный файл component_keyring_encrypted_file.cnf или component_keyring_file.cnf (в зависимости от способа восстановления резервной копии; см. обсуждение выше) с указанным ниже содержимым в папке, где находится бинарник компонента:

      { "read_local_config": true }

Если вы хотите использовать другой плагин или компонент ключей (например, на сервере, с которого была создана резервная копия, использовался keyring_aws, и вы хотите, чтобы на восстановленном сервере использовался он же, или вы просто хотите переключиться на новый компонент или плагин), может быть выполнено переключение.

Для инкрементных резервных копий. Для серии инкрементных резервных копий, если на сервере используется компонент, отличный от component_keyring_encrypted_file, пользователи могут указать другое значение для --encrypt-password для любой полной или инкрементной резервной копии в последовательности резервных копий. Однако, для восстановления этой резервной копии необходимо указать тот же пароль, что и при создании конкретной полной или инкрементной резервной копии. Если используется любой плагин ключей, при запуске сервера после восстановления серии инкрементных резервных копий необходимо предоставить пароль, используемый для восстановления последней инкрементной резервной копии.

Расширенный: Создание и восстановление резервной копии каталога с зашифрованными таблицами InnoDB. Следующая команда типична для создания резервной копии каталога, содержащей зашифрованные таблица InnoDB:

$ mysqlbackup --defaults-file=/home/dbadmin/my.cnf --backup-dir=/home/admin/backup \
    --encrypt-password="password" backup

Следующая команда типична для подготовки резервной копии с помощью команды apply-log:

$ mysqlbackup --backup-dir=/home/admin/backup  --encrypt-password="password" apply-log

Обратите внимание, что пароль пользователя, предоставленный во время резервного копирования, должен быть передан с опцией --encrypt-password, так как ключи табличного пространства, а затем и сами табличные пространства должны быть расшифрованы перед применением журнала. То же требование относится к попытке обновления зашифрованной резервной копии с использованием зашифрованной приращения резервной копии с помощью команды apply-incremental-backup:

$ mysqlbackup  --backup-dir=/home/admin/backup --incremental-backup-dir=/home/admin/backup-in \
    --encrypt-password="password" apply-incremental-backup

Если вы использовали разные значения для --encrypt-password для полных или приращения резервных копий в последовательности резервного копирования, убедитесь, что вы предоставляете именно тот пароль, который вы использовали для создания отдельной резервной копии, когда выполняете операцию apply-log или apply-incremental-backup.

Далее, команда copy-back восстанавливает подготовленную резервную копию на сервере:

$ mysqlbackup  --defaults-file=/usr/local/mysql/my.cnf  --backup-dir=/home/admin/backup copy-back

Обратите внимание, что опция --encrypt-password не требуется на этом этапе.

Вы можете объединить два этапа apply-log и copy-back в один, выполнив команду copy-back-and-apply-log, для которой требуется опция --encrypt-password:

$ mysqlbackup  --defaults-file=/usr/local/mysql/my.cnf  --backup-dir=/home/admin/backup \
  --encrypt-password="password" copy-back-and-apply-log

Ограничения. Существуют определенные ограничения, когда MySQL Enterprise Backup работает с зашифрованными таблицами InnoDB:

  • При частичных резервных копиях с использованием переносимых табличных пространств (то есть, когда используется опция --use-tts), зашифрованные таблицы InnoDB никогда не включаются в резервную копию. В файле журнала выводится предупреждение всякий раз, когда зашифрованная таблица InnoDB, соответствующая критериям выбора таблиц, была пропущена.

  • Опция --skip-unused-pages не оказывает никакого влияния на зашифрованные таблицы InnoDB во время резервного копирования (то есть пустые страницы для этих таблиц не пропускаются).

  • Если сервер выполняет какое-либо действие при работе резервного копирования, полученная резервная копия может стать поврежденной.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-enterprise-backup-8.4-en/meb-encrypted-innodb.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API