MySQL主从复制 - 从数据库备份数据库

一、使用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

你可能感兴趣的:(MySQL主从复制 - 从数据库备份数据库)