阿里雲資料庫 MySQL 版支援通過物理備份檔案和邏輯備份檔案兩種途徑將雲上資料移轉到本機資料庫。

利用物理備份檔案匯出

背景資訊

因為軟體限制,目前資料恢複只支援在 Linux 系統下進行。如果您要恢複資料到 Windows 系統,可以先將資料恢複到 Linux 系統下,再將資料移轉到 Windows 系統。

前提條件

作業系統中已安裝資料恢複工具Percona XtraBackup。MySQL 5.6及之前的版本需要安裝 Percona XtraBackup 2.3。MySQL 5.7版本需要安裝 Percona XtraBackup 2.4。可以從Percona XtraBackup官網下載安裝,安裝指導請參見官方文檔 Percona XtraBackup 2.3Percona XtraBackup 2.4

操作步驟

本例以本機伺服器為 RHEL6/x64 系統,備份檔案儲存路徑為 /home/mysql/ 為例。

  1. 下載雲資料庫 物理備份檔案 並上傳至目標伺服器。備份檔案擷取方法請參見 下載資料備份和記錄備份。如果目標伺服器可以訪問源執行個體,您也可以使用 wget "url" 下載備份檔案。其中 url 為備份檔案下載地址。
  2. 切換路徑到備份檔案所在路徑。
    cd /home/mysql/
  3. 解壓備份檔案。
    tar vizxf filename.tar.gz
    其中,filename.tar.gz為備份檔案名。
  4. 檢查解壓後檔案自主資料庫是否正確。
    cd filename/ll
    系統顯示如下,其中 db0dz1rv11f44yg2mysqltest 為雲資料庫中存在的資料庫。
    -rw-r--r-- 1 root root       269 Aug 19 18:15 backup-my.cnf
    drwxr-xr-x 2 root root      4096 Aug 21 10:31 db0dz1rv11f44yg2
    -rw-rw---- 1 root root 209715200 Aug  7 10:44 ibdata1
    drwxr-xr-x 2 root root      4096 Aug 21 10:31 mysql
    drwxr-xr-x 2 root root      4096 Aug 21 10:31 test
    -rw-r--r-- 1 root root        10 Aug 19 18:15 xtrabackup_binary
    -rw-r--r-- 1 root root        23 Aug 19 18:15 xtrabackup_binlog_info
    -rw-r--r-- 1 root root        77 Aug 19 18:15 xtrabackup_checkpoints
    -rw-r--r-- 1 root root      2560 Aug 19 18:15 xtrabackup_logfile
    -rw-r--r-- 1 root root        72 Aug 19 18:15 xtrabackup_slave_info
  5. 恢複資料檔案。
    innobackupex --defaults-file=./backup-my.cnf --apply-log ./
    系統顯示innobackupex: completed OK!,則資料恢複成功。
  6. 修改設定檔。將解壓檔案 backup-my.cnf 中的 innodb_fast_checksuminnodb_page_sizeinnodb_log_block_size注釋掉,並且添加 datadir=/home/mysql,如下所示。
    # This MySQL options file was generated by innobackupex-1.5.1.
    # The MySQL Server
    [mysqld]
    innodb_data_file_path=ibdata1:200M:autoextend
    innodb_log_files_in_group=2
    innodb_log_file_size=524288000
    #innodb_fast_checksum=0
    #innodb_page_size=16364
    #innodb_log_block_size=512
    datadir=/home/mysql/
  7. 重裝 MySQL 系統庫,取得資料庫的 root 許可權。
    rm -rf mysql
    mysql_install_db --user=mysql --datadir=/home/mysql/
    系統顯示如下,則 mysql 系統庫重裝成功。
    Installing MySQL system table...
    OK
    Filling help table...
    OK
  8. 修改檔案屬主。
    chown -R mysql:mysql /home/mysql/
  9. 啟動 mysqld 進程。
    mysqld_safe --defaults-file=/home/mysql/backup-my.cnf &
  10. 使用用戶端登入資料庫。
    mysql –u root –p
  11. 驗證資料庫是否完整。
    show databases;
    系統顯示入選,則資料庫恢複成功。
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | db0dz1rv11f44yg2   |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+

利用邏輯備份檔案匯出

本例以本機伺服器為 RHEL6/x64 系統,備份檔案儲存路徑為 /home/mysql/ 為例。

操作步驟
  1. 下載雲資料庫 邏輯備份檔案 並上傳至目標伺服器。備份檔案擷取方法請參見 下載資料備份和記錄備份。如果目標伺服器可以訪問源執行個體,您也可以使用wegt "url" 下載備份檔案。其中 url 為備份檔案下載地址。
  2. 切換路徑到備份檔案所在路徑。
    cd /home/mysql/
  3. 解壓備份檔案。
    tar vizxf filename.tar.gz
    其中,filename.tar.gz 為備份檔案名。
  4. 解壓 sql 壓縮檔。
    gunzip filename.sql.gz
    其中,filename.sql.gz為 sql 壓縮檔名。
  5. 執行邏輯匯入操作,將資料匯入目標資料庫。
    mysql -u userName -p -h hostName -P port dbName < filename.sql
    其中,filename.sql為解壓後的 sql 檔案。