MySQL 遷移表空間,備份單表

longer3281發表於2021-05-31

遷移表空間,可以使用xtrabackup工具備份源表。

要求條件: 匯出的單表必須擁有獨立的表空間檔案,資料庫系統引數innodb_file_per_table設定為on。


1)使用xtrabackup備份單表sudo /usr/bin/xtrabackup --defaults-file=/etc/my.cnf --tables=flight.test2021 --user=root --password='XXXXXX' --socket=/home/mysql_data/mysql.sock --parallel=4 --lock-ddl --backup \

--target-dir=/home/backup/load &


2)使用工具xtrabackup對備份檔案進行日誌恢復。

sudo /usr/bin/xtrabackup --prepare --export --target-dir=/home/backup/load


3)在目標庫flight上,用源表建表語句建表。

4)在目標庫 flight上,設定會話級,不記日誌模式: set sql_log_bin=0。

5)在目標庫 flight上,匯出表結構,命令列執行alter table  test2021 discard tablespace。

6)將備份出的   test2021所有檔案,複製到目標庫的表 test2021 下面的對應位置上,修改檔案許可權:chown mysql.mysql  test2021.*。

7) 在目標庫 flight上,命令列上執行  alter table  test2021 import tablespace,等待幾分鐘。

8)驗證,select count(*) from test2021,源端與目標端,記錄數一直即可。


另: --tables=flight.test2021 預設是模糊匹配,如果需要精確匹配,則需要藉助正規表示式。如匹配單表: --tables='^flight.test2021$', 如果不使用正規表示式,則需要匹配同一個庫下表名包含關鍵字 t est2021的其他表。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9606353/viewspace-2774696/,如需轉載,請註明出處,否則將追究法律責任。

相關文章