1# 2# Backup server using keyring_file and restore using keyring_vault 3# 4 5require_server_version_higher_than 5.7.10 6 7vlog setup keyring_file 8. inc/keyring_file.sh 9 10start_server 11 12run_cmd $MYSQL $MYSQL_ARGS test <<EOF 13CREATE TABLE t1 (c1 VARCHAR(100)) ENCRYPTION='y'; 14INSERT INTO t1 (c1) VALUES ('ONE'), ('TWO'), ('THREE'); 15INSERT INTO t1 (c1) VALUES ('10'), ('20'), ('30'); 16INSERT INTO t1 SELECT * FROM t1; 17INSERT INTO t1 SELECT * FROM t1; 18EOF 19 20record_db_state test 21 22# wait for InnoDB to flush all dirty pages 23innodb_wait_for_flush_all 24 25vlog backup 26xtrabackup --backup --target-dir=$topdir/backup1 --transition-key=key1 27 28vlog cleanup environment variables 29MYSQLD_EXTRA_MY_CNF_OPTS= 30XB_EXTRA_MY_CNF_OPTS= 31 32vlog setup keyring_vault 33. inc/keyring_vault.sh 34 35cat > ${topdir}/my-copy-back.cnf <<EOF 36[mysqld] 37datadir=${MYSQLD_DATADIR} 38${MYSQLD_EXTRA_MY_CNF_OPTS:-} 39 40[xtrabackup] 41${XB_EXTRA_MY_CNF_OPTS:-} 42EOF 43 44vlog remove datadir 45stop_server 46rm -rf $mysql_datadir 47 48vlog prepare 49xtrabackup --prepare --target-dir=$topdir/backup1 --transition-key=key1 50 51keyring_vault_ping || skip_test "Keyring vault server is not avaliable" 52keyring_vault_mount 53 54trap "keyring_vault_unmount" EXIT 55 56vlog copy-back 57run_cmd ${XB_BIN} --defaults-file=${topdir}/my-copy-back.cnf --copy-back \ 58 --target-dir=$topdir/backup1 --generate-new-master-key \ 59 --transition-key=key1 \ 60 --xtrabackup-plugin-dir=${plugin_dir} 61 62start_server 63 64verify_db_state test 65