mysqldump 和 xtrabackup 命令

发布时间: 更新时间: 总字数:317 阅读时间:1m 作者: IP属地: 分享 复制网址

mysqldump 和 xtrabackup 命令

mysqldump

mysqldump -h$MYSQL_IP -u$MYSQL_USER -p$MYSQL_PASS db1 > db1.sql
mysqldump -h <ip> -u <user> -p<password> \
--skip-opt --create-option --single-transaction -q \
--no-autocommit -R --triggers --default-character-set=utf8 -E -B \
-e --max_allowed_packet=67108864 --net_buffer_length=8192 --databases > databases.sql

说明:

  • 参数 --single-transaction 可以在备份库的时候不锁表
mysql --socket=/var/lib/mysql/mysql.sock \
-e "show databases"|grep \
-Ewv "Database|information_schema|performance_schema|mysql|test|bksuite_common"|xargs mysqldump \
--socket=/data/bkee/logs/mysql/mysql.sock \
--skip-opt --create-options --single-transaction -q \
--no-autocommit -R --triggers --default-character-set=utf8 \
-e --max_allowed_packet=67108864 --net_buffer_length=8192 \
--events --databases | gzip > /data/dbbak/mysql_$(date +%F_%T).gz

说明

mysqldump导出的SQL语句在导入到其他数据库的时候会相当慢,甚至几十秒才处理一条SQL;现有两个参数会影响导入的速度:

--max_allowed_packet=67108864  客户端/服务器之间通信的缓存区的最大大小
--net_buffer_length=8192       TCP/IP和套接字通信缓冲区大小

在导出的时候,使用-e选项设定上面两个值,需要注意的是max_allowed_packetnet_buffer_length的导出值不能比目标数据库的值大,参看数据库的参数值,使用如下命令;

mysql> show variables like 'max_allowed_packet';
mysql> show variables like 'net_buffer_length';

xtrabackup

xtrabackup --user=xxx --password=xxx --backup --use-memory=10G \
--slave-info --compress --compress-threads=10 --target-dir=mysql_$(date +%Y%m%d%H%M) 1> backup.log 2> backup.err &
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数