mysql分库分表备份

  

, mysqldump -uroot -poldboy卑劣的祝辞/opt/卑劣。sql最简单的备份

, mysqldump——用户=根——所有数据库——flush-privileges——单独的事务——主数据=https://www.yisu.com/zixun/1——flush-logs触发——常规——事件——hex-blob>/mybackup/alldatabase。sql


(用于写shell脚本)

主要思想就是把库列出来,一个为循环备份

mysql -uroot -poldboy - e”显示数据库;| | egrep以“信息perfor”| sed - r ' s # ^ ([a - z]。*美元)#,mysqldump -uroot -poldboy - b \ 1 | gzip在/opt/1. sql。广州# g | bash

/bin/bash   BAKPATH=/opt/mysql   MYUSER=根   MYPASSWD=123456   套接字=/数据/3308/mysql.sock   MYCMD=" mysql - u MYUSER - p MYPASSWD美元- s $插座”   ,MYSQLDUMP=, MYSQLDUMP - u MYUSER - p MYPASSWD美元- b - x - f - r - s $插座   [!- d $ BAKPATH],,mkdir - p BAKPATH美元   DBLIST=' MYCMD美元- e”显示数据库;| sed 1 d”| egrep以“mysql |信息”   在DBLIST dbname   做   ,MYSQLDUMP dbname | gzip美元比;/BAKPATH美元/$ {dbname} _(日期+ % F) .sql.gz美元   以前做


提示:- b是连创建库和查询库的语句都备份了,所以建议加上(一般备份多个库的时候用),- x所有数据库中的所有表加锁


备份表

, mysqldump -uroot -poldboy库名表名在/opt/表。sql

<强>

主要思想就是把表列出来,两层的循环备份

/bin/bash   BAKPATH=/opt/mysql   MYUSER=根   MYPASSWD=123456   套接字=/数据/3308/mysql.sock   MYCMD=" mysql - u MYUSER - p MYPASSWD美元- s $插座”   ,MYSQLDUMP=, MYSQLDUMP - u MYUSER - p MYPASSWD美元- x - f - r - s $插座   [!- d $ BAKPATH],,mkdir - p BAKPATH美元   DBLIST=' MYCMD美元- e”显示数据库;| sed 1 d”| egrep以“mysql |信息”   在DBLIST dbname   做   TLIST=' MYCMD美元- e“显示表从dbname;”| sed 1 d '   对于tname TLIST美元   做   mkdir - p BAKPATH/dbname美元   ,MYSQLDUMP dbname tname美元美元| gzip祝辞BAKPATH/美元dbname/$ {tname} _ $(日期+ % F) .sql.gz   完成   ,MYSQLDUMP dbname | gzip美元比;/BAKPATH美元/$ {dbname} _()(日期+ % F)美元.sql.gz   

注:(纯手打,有问题请指出)

如果数据库不大建议两个都备份,有时候只要求恢复一个表

- d参数只备份表结构

- t参数只备份数据

- f刷新binlog日志

其他参数,mysqldump——帮助查询

批量恢复库大概过程

dbname ls * . sql的;做mysql -uroot -p123456 & lt;dbname.sql美元;做

增量备份时一定要了解二进制的三种模式

可参考内容:

<强>五、数据库恢复

恢复时最好的办法时停库,不让往里面写

1。数据库可能有多个,但是日志文件记录的是全部数据库的变化,所以先进行将二进制文件按照数据库进行拆分,用- d参数可以实现:

mysqlbinlog - d卑劣/var/lib/mysql/mysql-bin.000002比;/tmp/oldboy.sql(去掉误操作的语句),先导入全备,在导入增备

2。指定时间可能会有误差,一半用指定位置恢复,确认跳过点后进行恢复如下:

) mysqlbinlog mysql-bin。000002年,起始位置=370,停止位置=440 | mysql -uroot - p

mysql分库分表备份