10bet网址
MySQL企业备份4.1用户指南
相关的文档10bet官方网站 下载本手册
PDF(美国Ltr)- 1.3 mb
PDF (A4)- 1.3 mb


第六章使用加密的InnoDB表

MySQL企业备份支持加密的InnoDB表空间。MySQL服务器如何加密和解密InnoDB表,请参见InnoDB数据静止加密它解释了主键和表空间键等概念,这对于理解MySQL企业备份如何使用加密的InnoDB表空间非常重要。

当InnoDB表空间加密使用集中的密钥管理解决方案时,该特性被称为MySQL企业透明数据加密(TDE)。

下面简要介绍MySQL Enterprise Backup在备份、恢复和应用日志操作中如何处理加密的InnoDB表。

用加密的InnoDB表备份数据库。下面是备份包含加密InnoDB表的数据库的一个典型命令:

$ mysqlbackup——user=root——password——backup-image=/home/admin/backups/my。Mbi——backup-dir=/home/admin/backup-tmp \——encrypt-password="密码“backup-to-image

备份过程中,mysqlbackup将加密的InnoDB表空间文件拷贝到备份文件中,并执行以下操作:

  • MySQL Enterprise Backup 4.1.0, MySQL Enterprise Backup 4.1.1及以上版本,MySQL Enterprise Server 5.7.20及以上版本,MySQL Enterprise Backup 4.1.1及以上版本,MySQL Community Server 5.7版本:

    • 对于在线备份,mysqlbackup联系MySQL服务器,以确定服务器正在使用的密匙环插件,目前是其中之一keyring_filekeyring_okv(对于脱机备份,使用——密匙环选项必须用于将相同的信息传递给mysqlbackup).mysqlbackup还从服务器找出访问密匙环的位置(对于脱机备份,使用——keyring_file_data——keyring_okv_conf_dir选项必须用于提供相同的信息)。一次mysqlbackup它可以访问密钥环,获取主密钥并使用它解密加密的表空间密钥,这些表空间密钥用于加密服务器上的InnoDB表。

    • 使用选项提供的用户密码——encrypt-passwordmysqlbackup重新加密表空间密钥。对于每个加密的表,重新加密的表空间密钥以及其他信息都存储到传输文件中(使用.bkt扩展),该扩展保存到备份中。

  • MySQL Enterprise Backup 4.1.1及以上版本,MySQL Enterprise Server 5.7.21及以上版本:

    • MySQL Enterprise Backup总是将主密钥存储在备份中的一个加密文件中,而不管服务器使用哪种密匙环插件。

    • mysqlbackup联系MySQL服务器,以确定服务器正在使用的密匙环插件,目前是其中之一keyring_encrypted_filekeyring_filekeyring_okv,或keyring_aws

    • 如果服务器正在使用keyring_encrypted_file插件中,用户必须使用该选项——encrypt-password供给给mysqlbackup已在服务器上设置的密匙环文件加密密码keyring_encrypted_file_password选择。mysqlbackup然后将加密的密匙环数据文件(其中包含用于加密所有表空间密钥的主密钥)从服务器复制到备份中的文件夹。加密的表空间文件也被复制到备份中。

    • 如果服务器使用密匙环插件而不是keyring_encrypted_filemysqlbackup访问密钥环获得主密钥,并使用它解密加密的表空间密钥,这些表空间密钥用于加密服务器上的InnoDB表。然后,将主密钥放入使用该选项提供的用户密码加密的密匙环数据文件中——encrypt-password并保存命名为keyring_kef,进入备份中的文件夹。

请注意

不希望在命令行或默认文件中提供密码的用户可以使用——encrypt-password选项,不指定任何值;mysqlbackup然后要求用户在操作开始之前输入密码。属性的所有命令都适用——encrypt-password选择。

一个提取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="密码“copy-back-and-apply-log

MySQL Enterprise Backup 4.1.0,或MySQL Enterprise Backup 4.1.1及以上版本与MySQL 5.7.20及之前版本兼容:在恢复操作期间,mysqlbackup将加密的InnoDB表空间文件拷贝到服务器上。mysqlbackup同时执行以下操作:

  • 使用选项提供的用户密码——encrypt-password,与备份数据库时使用的密码相同,mysqlbackup解密表空间密钥,这些密钥是在前面执行备份时使用密码加密的。

  • 如果——generate-new-master-key选项被使用,mysqlbackup生成一个新的主密钥并使用它重新加密表空间密钥。要使用——generate-new-master-key选项时,——密匙环选项,以及——keyring_file_data选项(当——密匙环keyring_file)或——keyring_okv_conf_dir选项(当——密匙环keyring_okv)必须指定,因此mysqlbackup可以访问密钥环并向其添加新的主密钥。

    $ mysqlbackup——defaults-file=/usr/local/mysql/my.cnf——backup-image=/home/admin/backups/my。Mbi \——backup-dir=/home/admin/restore-tmp——encrypt-password="密码"——生成新主密钥——keyring=keyring_file——keyring-file-data =path-to-keyring-file\ copy-back-and-apply-log

    然后应该将密匙环参数提供给恢复的服务器。

    如果——generate-new-master-key不使用,mysqlbackup假设备份服务器时在服务器上使用的相同密匙环继续有效,并可用于恢复的服务器。

MySQL企业备份4.1.1及以上版本,MySQL 5.7.21及以上版本:参数必须提供用于备份数据库的相同密码——encrypt-password恢复操作选项。在恢复期间,mysqlbackup复制加密的InnoDB表空间文件和包含主密钥的加密文件(keyring_kef)到服务器上。它还执行以下操作:

  • 对于MySQL企业服务器:mysqlbackup将加密密匙环数据文件恢复到服务器上的适当位置。必须以启动恢复的服务器keyring_encrypted_file插件和选项keyring_encrypted_file_data而且keyring_encrypted_file_password的密码应该为服务器提供与——encrypt-password选项)。

  • 对于MySQL社区服务器keyring_file插件是MySQL Community Server唯一支持的keyring插件;因此mysqlbackup参数提供的密码——encrypt-password选项来解密密匙环数据文件,然后将其恢复到服务器上的适当位置keyring_file插件使用。

用于增量备份。对于一系列的增量备份,如果密匙环插件不是keyring_encrypted_file正在使用的服务器上,用户可以提供不同的值为——encrypt-password用于备份序列中的任何完全备份或增量备份。但是,为了恢复该备份,必须提供用于进行特定的完全备份或增量备份的密码。在恢复一系列增量备份后启动服务器时,应该向服务器提供用于恢复上次增量备份的密码(MySQL Community server除外,它将以keyring_file插件,不需要keyring_encrypted_file_password选项启动)。

高级:使用加密的InnoDB表创建和恢复目录备份。下面是一个典型的命令,用来创建包含加密InnoDB表的目录备份:

$ mysqlbackup——user=root——password——backup-dir=/home/admin/backup \——encrypt-password="密码“备份

方法准备备份的典型命令如下运用原木命令:

$ mysqlbackup——backup-dir=/home/admin/backup——encrypt-password="密码“运用原木

方法必须提供用户密码——encrypt-password选项,因为在应用日志之前必须解密表空间密钥。方法尝试用增量备份更新备份时,也适用相同的要求apply-incremental-backup命令:

$ mysqlbackup——backup-dir=/home/admin/backup——increment -backup-dir=/home/admin/backup-in \——encrypt-password="password" apply-increment -backup . sh

如果你使用不同的值——encrypt-password对于备份序列中的完整备份或增量备份,请确保在执行备份时提供用于创建单个备份的密码运用原木apply-incremental-backup用它来操作。

接下来,一个复制回去命令将准备好的备份恢复到服务器上:

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

注意——encrypt-password选项为此步骤不需要。

你可以结合这两个步骤运用原木而且复制回去通过运行copy-back-and-apply-log命令,其中——encrypt-password选项是必需的:

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

MySQL Enterprise Backup 4.1.0,或MySQL Enterprise Backup 4.1.1及以上版本与MySQL 5.7.20及之前版本兼容:你也可以使用——generate-new-master-key选项,就像恢复单文件备份时一样:

$ mysqlbackup——defaults-file=/usr/local/mysql/my.cnf——backup-dir=/home/admin/backup \——generate-new-master-key——keyring= /usr/local/mysql/my.cnfkeyring_file——keyring-file-data =path-to-keyring-file\——encrypt-password = "密码“copy-back-and-apply-log

的局限性。当MySQL企业备份使用加密的InnoDB表时,有一些限制:

  • 对于MySQL 5.7.11及以前版本,InnoDB表空间的备份是加密的MySQL企业透明数据加密(TDE)不支持mysqlbackup.要对这些表执行备份,请将服务器升级到最新的MySQL 5.7版本,并注意中解释的任何升级要求MySQL 5.7的变化特别是关于……的问题——early-plugin-load选项,并使用旋转innodb主键声明。然后继续备份过程。

  • 在一次验证操作,如果mysqlbackup遇到任何加密的InnoDB表,它会发出警告,然后跳过它们。

  • 对于使用可传输表空间的部分备份(即当——use-tts选项),加密的InnoDB表永远不会包含在备份中。当一个与表选择标准相匹配的加密InnoDB表被跳过时,日志文件中就会发出警告。

  • ——skip-unused-pages选项在备份期间对加密的InnoDB表没有影响(也就是说,那些表的空页不会被跳过)。

  • MySQL Enterprise Backup 4.1.1及更高版本在使用MySQL Enterprise Server 5.7.21及更高版本时不支持离线备份加密的InnoDB表。