一、使用mysql的mysqldump命令来实现数据库备份
确保从数据库账号有读权限
mysql>
grant select on xxx.* to 'xxx'@'%';
flush privileges;
主数据库设置读锁定 , 确保没有数据库操作 , 操作写入binglog日志
flush tables with read lock;
从数据库到处主数据库文件到本地
mysqldump -h 192.... -u xx -p --skip-lock-tables db > /home/export.sql;
将sql文件导入从数据库
mysql -f -u root -p root db < /home/export.sql;
主数据库解除锁定
unlock tables;
二、使用mydumper工具备份数据库 , mydumper相比较mysqldump效率更高 , 功能更多
1、安装
[root@localhost wwwroot]# yum install glib2-devel zlib-devel pcre-devel cmake
[root@localhost wwwroot]# git clone https://github.com/maxbube/mydumper.git
[root@localhost wwwroot]# cd mydumper
[root@localhost wwwroot]# cmake .
[root@localhost wwwroot]# make
[root@localhost wwwroot]# make install
[root@localhost wwwroot]# mydumper -V
mydumper 0.9.1, built against MySQL 5.7.27
2、操作命令
-host,-h:连接的MySQL服务器。
-user,-u:用户备份的连接用户
-password,-p:用户的密码
-port,-P:连接端口
-socket,-S:连接socket文件
-database,-B:需要备份的数据库
-table-list,-T:需要备份的表,用逗号(,)分隔
-outputdir,-o:输出的目录
-build-empty-files,-e:默认无数据则只有表结构文件
-regex,-x:支持正则表达式,如mydumper-regex'(2l(mysqltest)'
-ignore-engines,-i:忽略的存储引擎
-no-schemas,-m:不导出表结构
-long-query-guard:长查询,默认60s
-kill-long-queries,-k:可以设置kill长查询
-verbose,-v:0=silent,1=errors,2=warmings,3=info,默认是2
-binlogs,-b:导出binlog
-daemon,-D:启用守护进程模式
-snapshot-interval,-I:dump快照间隔时间,默认60s
-logfile,-L:mysaqldumper的目志输出,一般在Daemon模式下使用
3、备份 同时与传统的mysqldump的时间作对比
time mydumper -u root -p root -B dumps -o /home/dumps1.sql
// time mysqldump -u root -p root -f dumps > /home/dumps2.sql
4、导入
myloader -u root -p root -B dumps -o /home/dumps2.sql