记录一下。
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`cat /data/save/pxc3306_root` -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`cat /data/save/pxc3306_root` -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
4) 恢复数据
/usr/bin/mysqlimport -uroot -p*** -S /tmp/pxc3306.sock --local test_db0 `find -name "*.txt"`
2、innobackupex备份方式
和普通的MySQL的使用方式相同,不做赘述
备份:
/usr/bin/innobackupex --defaults-file=/etc/pxc3306.cnf --user=root --password=*** --socket=/tmp/pxc3306.sock ./
恢复:
/usr/bin/innobackupex --apply-log ./2018-04-08_16-11-06/