バックアップをリモートのPublic Cloud上のオブジェクトストレージに直接送り、DR, BCP対策を行う事が可能ですが、mysqlbackupにもオブジェクトストレージに直接バックアップを送るオプションがあるので、OracleのPublic Cloudを利用して動作確認しました。
※ 2017年3月現在、MySQL Serviceが日本のデータセンタでは提供して無い為、EUの検証環境に対して検証を行いました。
開発環境としては、Enterprise版のモジュール、サポート、コンサルティングサポート含めて利用する事が可能ですので、TCOの削減が可能ですが。レスポンスが要求される本番環境としては、日本のデータセンターでのサービスが待ち遠しい所です。
検証したmysqlbackupのバージョン
最新は、mysqlbackup4.1です。
[root@misc01 opc]# /usr/local/mysqlbackup/bin/mysqlbackup --version MySQL Enterprise Backup version 4.0.3 Linux-2.6.18-194.el5-x86_64 [2016/08/04] Copyright (c) 2003, 2016, Oracle and/or its affiliates. All Rights Reserved.
クラウドストレージへのバックアップは此方のマニュアルを参照下さい。
https://dev.mysql.com/doc/mysql-enterprise-backup/4.1/en/meb-backup-cloud.html
バックアップの実行
ローカルのMySQLインスタンス上のサンプルデータベース(world)のみをオラクルのストレージクラウドサービスにバックアップ
[root@misc01 temp_dir]# /usr/local/mysqlbackup/bin/mysqlbackup --include=world.* -uroot -p --cloud-service=openstack \ > --cloud-container=objectstoragename --cloud-object=mysqlbackup_opc.img \ > --cloud-user-id=Storage-myidentitydomain:myaccount@oracle.com \ > --cloud-password=mypassword --cloud-ca-info=/etc/ssl/certs/ca-bundle.crt \ > --cloud-tempauth-url=https://myidentitydomain.storage.oraclecloud.com \ > --encrypt-password='encryptpass' --backup-dir=/home/admin/opc/temp_dir --backup-image=- backup-to-image MySQL Enterprise Backup version 4.0.3 Linux-2.6.18-194.el5-x86_64 [2016/08/04] Copyright (c) 2003, 2016, Oracle and/or its affiliates. All Rights Reserved. mysqlbackup: INFO: Starting with following command line ... /usr/local/mysqlbackup/bin/mysqlbackup --include=world.* -uroot -p --cloud-service=openstack --cloud-container=objectstoragename --cloud-object=mysqlbackup_opc.img --cloud-user-id=Storage-myidentitydomain:myaccount@oracle.com --cloud-password=xxxxxxxxxx --cloud-ca-info=/etc/ssl/certs/ca-bundle.crt --cloud-tempauth-url=https://myidentitydomain.storage.oraclecloud.com --encrypt-password=xxxxxxxxxxx --backup-dir=/home/admin/opc/temp_dir --backup-image=- backup-to-image mysqlbackup: INFO: Enter password: mysqlbackup: INFO: MySQL server version is '5.7.17-enterprise-commercial-advanced-log' mysqlbackup: INFO: MySQL server compile os version is 'linux-glibc2.5' mysqlbackup: INFO: Got some server configuration information from running server. mysqlbackup: INFO: Validating cloud parameters. IMPORTANT: Please check that mysqlbackup run completes successfully. At the end of a successful 'backup-to-image' run mysqlbackup prints "mysqlbackup completed OK!". 170313 21:15:25 mysqlbackup: INFO: MEB logfile created at /home/admin/opc/temp_dir/meta/MEB_2017-03-13.21-15-25_image_backup.log -------------------------------------------------------------------- Server Repository Options: -------------------------------------------------------------------- datadir = /usr/local/mysql/data/ innodb_data_home_dir = innodb_data_file_path = ibdata1:12M:autoextend innodb_log_group_home_dir = /usr/local/mysql/data/ innodb_log_files_in_group = 2 innodb_log_file_size = 268435456 innodb_page_size = 16384 innodb_checksum_algorithm = crc32 innodb_buffer_pool_filename = ib_buffer_pool innodb_undo_directory = /usr/local/mysql/data/ innodb_undo_tablespaces = 0 innodb_undo_logs = 128 -------------------------------------------------------------------- Backup Config Options: -------------------------------------------------------------------- datadir = /home/admin/opc/temp_dir/datadir innodb_data_home_dir = /home/admin/opc/temp_dir/datadir innodb_data_file_path = ibdata1:12M:autoextend innodb_log_group_home_dir = /home/admin/opc/temp_dir/datadir innodb_log_files_in_group = 2 innodb_log_file_size = 268435456 innodb_page_size = 16384 innodb_checksum_algorithm = crc32 innodb_buffer_pool_filename = ib_buffer_pool innodb_undo_directory = /home/admin/opc/temp_dir/datadir innodb_undo_tablespaces = 0 innodb_undo_logs = 128 mysqlbackup: INFO: Backup Image Path = 'stdout' mysqlbackup: INFO: Unique generated backup id for this is 14894073252216434 mysqlbackup: INFO: Creating 14 buffers each of size 16777216. mysqlbackup: INFO: Checking if object already exists. mysqlbackup: INFO: This backup has encrypted tables, encrypt password is set. New object(segment) name :/objectstoragename/mysqlbackup_opc.img_part_1. 170313 21:15:31 mysqlbackup: INFO: Full Image Backup operation starts with following threads 1 read-threads 6 process-threads 1 write-threads 170313 21:15:31 mysqlbackup: INFO: System tablespace file format is Barracuda. 170313 21:15:31 mysqlbackup: INFO: Starting to copy all innodb files... mysqlbackup: INFO: Copying meta file /home/admin/opc/temp_dir/backup-my.cnf. mysqlbackup: INFO: Copying meta file /home/admin/opc/temp_dir/meta/backup_create.xml. 170313 21:15:31 mysqlbackup: INFO: Found checkpoint at lsn 4984955644. 170313 21:15:31 mysqlbackup: INFO: Starting log scan from lsn 4984955392. 170313 21:15:31 mysqlbackup: INFO: Copying log... 170313 21:15:31 mysqlbackup: INFO: Log copied, lsn 4984955653. 170313 21:15:31 mysqlbackup: INFO: Copying /usr/local/mysql/data/ibdata1 (Barracuda file format). Uploading part %:10 20 30 40 50 60 70 80 90 Uploading part %:10 20 30 40 50 60 70 80 90 Uploading part %:10 20 30 40 50 60 70 80 90 Uploading part %:10 20 30 40 50 60 70 80 90 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world/City.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world/City_Sample.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world/Country.ibd (Antelope file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world/CountryLanguage.ibd (Antelope file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world/T_STAT_SAMPLE.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world/T_TDE.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world2/City2.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world2/City3.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world2/City_Master.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world2/City_SnapShot.ibd (Barracuda file format). Uploading part %:170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world2/City_Summary.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world2/T_GC_UK.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world2/T_JSON_FROM_TABLE_SCHEMA.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world2/T_Pump01.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world2/t1.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world2/t2.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world_x/City.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world_x/Country.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world_x/CountryInfo.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Copying /usr/local/mysql/data/world_x/CountryLanguage.ibd (Barracuda file format). 170313 21:26:15 mysqlbackup: INFO: Completing the copy of innodb files. 170313 21:26:16 mysqlbackup: INFO: Starting to copy Binlog files... 170313 21:26:16 mysqlbackup: INFO: Copying /usr/local/mysql/data/mysql-bin.002623. 170313 21:26:16 mysqlbackup: INFO: Copying /usr/local/mysql/data/mysql-bin.002624. 10 20 30 40 50 60 70 80 90 170313 21:28:37 mysqlbackup: INFO: Copying /usr/local/mysql/data/mysql-bin.002625. 170313 21:28:37 mysqlbackup: INFO: Copying /usr/local/mysql/data/mysql-bin.002626. 170313 21:28:37 mysqlbackup: INFO: Copying /usr/local/mysql/data/mysql-bin.002627. 170313 21:28:37 mysqlbackup: INFO: Preparing to lock tables: Connected to mysqld server. 170313 21:28:37 mysqlbackup: INFO: Starting to lock all the tables... 170313 21:28:37 mysqlbackup: INFO: All tables are locked and flushed to disk 170313 21:28:37 mysqlbackup: INFO: Copying /usr/local/mysql/data/mysql-bin.002628. 170313 21:28:37 mysqlbackup: INFO: Completed the copy of binlog files... 170313 21:28:37 mysqlbackup: INFO: Opening backup source directory '/usr/local/mysql/data' 170313 21:28:37 mysqlbackup: INFO: Starting to backup all non-innodb files in subdirectories of '/usr/local/mysql/data' 170313 21:28:37 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:37 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:37 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:37 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:37 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:37 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:37 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:37 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Adding database directory: datadir 170313 21:28:38 mysqlbackup: INFO: Completing the copy of all non-innodb files. 170313 21:28:38 mysqlbackup: INFO: A copied database page was modified at 4984955604. (This is the highest lsn found on page) Scanned log up to lsn 4984955653. Was able to parse the log up to lsn 4984955653. 170313 21:28:38 mysqlbackup: INFO: All tables unlocked 170313 21:28:38 mysqlbackup: INFO: All MySQL tables were locked for 0.546 seconds. 170313 21:28:38 mysqlbackup: INFO: Reading all global variables from the server. 170313 21:28:38 mysqlbackup: INFO: Completed reading of all global variables from the server. mysqlbackup: INFO: Writing config file for server '5.7.17-enterprise-commercial-advanced-log'. 170313 21:28:38 mysqlbackup: INFO: Creating server config files server-my.cnf and server-all.cnf in /home/admin/opc/temp_dir mysqlbackup: INFO: Copying meta file /home/admin/opc/temp_dir/meta/backup_variables.txt. mysqlbackup: INFO: Copying meta file /home/admin/opc/temp_dir/datadir/ibbackup_logfile. mysqlbackup: INFO: Copying meta file /home/admin/opc/temp_dir/server-all.cnf. mysqlbackup: INFO: Copying meta file /home/admin/opc/temp_dir/server-my.cnf. mysqlbackup: INFO: Copying meta file /home/admin/opc/temp_dir/meta/backup_gtid_executed.sql. mysqlbackup: INFO: Copying meta file /home/admin/opc/temp_dir/meta/backup_content.xml. mysqlbackup: INFO: Copying meta file /home/admin/opc/temp_dir/meta/image_files.xml. mysqlbackup: INFO: OS: Flushing buffers. Uploading part %:10 20 30 40 50 60 70 80 90 mysqlbackup: INFO: Received response code 201. mysqlbackup: INFO: Uploading the manifest file. mysqlbackup: INFO: Cloud operation complete. 170313 21:29:48 mysqlbackup: INFO: Full Image Backup operation completed successfully. 170313 21:29:48 mysqlbackup: INFO: Backup image created successfully. mysqlbackup: INFO: Image Path = 'stdout' 170313 21:29:48 mysqlbackup: INFO: MySQL binlog position: filename mysql-bin.002628, position 194 ------------------------------------------------------------- Parameters Summary ------------------------------------------------------------- Start LSN : 4984955392 End LSN : 4984955653 ------------------------------------------------------------- mysqlbackup completed OK! [root@misc01 temp_dir]#
Storage CloudサービスのAPIを利用してバックアップが出来ているか確認
例) myidentitydomain = 自分のIdentity Domain, objectstoragename = オブジェクトストレージ名
curl -X GET -H "X-Auth-Token: $XAuth" https://myidentitydomain.storage.oraclecloud.com/v1/Storage-myidentitydomain/objectstoragename/
マニュアル
https://docs.oracle.com/cloud/latest/mysql-cloud/CSMCS/api-Backups.html
バックアップイメージとして指定した、mysqlbackup_opc.imgが出来ている事が確認出来ました。
[root@misc01 opc]# ./opc_backup_confirm.sh | grep mysqlbackup Press [Enter] key to resume. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 847 100 847 0 0 271 0 0:00:03 0:00:03 --:--:-- 271 mysqlbackup_opc.img mysqlbackup_opc.img_part_1 [root@misc01 opc]#