PXC备份方式总结

记录一下。

1、mysqldump数据导出

关于GTID:

GTID是MySQL5.6以后,加入了全局事务 ID (GTID) 来强化数据库的主备一致性,故障恢复,以及容错能力。

A global transaction identifier (GTID) is a unique identifier created and associated with each transaction committed on the server of origin (master).

所以可能是因为在一个数据库里面唯一,但是当导入其他的库就有可能重复。所有会有一个提醒:

Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. 
If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events. 

如果进行mysqldump时,没有使用--set-gtid-purged=OFF参数,备份出来的SQL就会出现SET @@GLOBAL.GTID_PURGED='4e53cb9a-fa5e-ee17-6889-8815f2fe1df6:1-54398';的情况,
1-54398这个的区间是主库中当前所完成的所有事务号。这条语句在备份被恢复的时候,起到的作用是:不再从主库同步1-54398 这个范围内的事务了。

secure_file_priv :

这个参数用来限制数据导入和导出操作的效果,例如执行LOAD DATA、SELECT ... INTO OUTFILE语句和LOAD_FILE()函数。这些操作需要用户具有FILE权限。

secure_file_priv参数说明:

  • 如果这个参数为空,secure_file_priv="" ,数据导入导出不做目录限制;
  • 如果这个参数设为一个目录名,secure_file_priv="/data/backup/",MySQL服务只允许在这个目录中执行文件的导入和导出操作,这个目录必须存在,MySQL服务不会创建它;
  • 如果这个参数为,secure_file_priv="NULL",MySQL服务会禁止导入和导出操作。这个参数在MySQL 5.7.6版本引入;
关于pxc_strict_mode:

pxc_strict_mode=ENFORCING
mysqldump 需要加入 --skip_add_locks --skip-lock-tables 这两个参数

1) 导出表结构
# pxc_strict_mode=ENFORCING
/usr/bin/mysqldump -uroot -p*** -S /tmp/pxc3306.sock --set-gtid-purged=OFF --skip_add_locks --skip-lock-tables --databases -d test_db0 > test_db0.sql 

# pxc_strict_mode=DISABLED
/usr/bin/mysqldump -uroot -p***  -S /tmp/pxc3306.sock --set-gtid-purged=OFF --databases -d test_db0 > test_db0.sql 
2) 导出数据
# pxc_strict_mode=ENFORCING
/usr/bin/mysqldump -uroot -p*** -S /tmp/pxc3306.sock --set-gtid-purged=OFF --skip_add_locks --skip-lock-tables --skip-tz-utc -T . test_db0

# pxc_strict_mode=DISABLED
/usr/bin/mysqldump -uroot -p*** -S /tmp/pxc3306.sock --set-gtid-purged=OFF --skip-tz-utc -T . test_db0  
3) 恢复库和表结构
/usr/bin/mysql -uroot -p*** -S /tmp/pxc3306.sock < test_db0.sql 
  1. 恢复数据
/usr/bin/mysqlimport -uroot -p*** -S /tmp/pxc3306.sock --local test_db0 `find -name "*.txt"`

2、innobackupex备份方式

和普通的MySQL的使用方式相同,不做赘述

备份时加入 --gralera-info 参数,apply log时会生成集群ID信息用于恢复

备份:
/usr/bin/innobackupex --defaults-file=/etc/pxc3306.cnf --user=root --password=***  --socket=/tmp/pxc3306.sock  --gralera-info ./ 
恢复:
/usr/bin/innobackupex --apply-log ./2018-04-08_16-11-06/

具体参考:
https://www.cnblogs.com/wshenjin/p/7736131.html
https://www.cnblogs.com/wshenjin/p/7988212.html

原文地址:https://www.cnblogs.com/wshenjin/p/8745786.html