MYSQL增量备份
Posted DevOps的求学之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL增量备份相关的知识,希望对你有一定的参考价值。
首先,你得有一个mysql数据库
其次,你得有my.cnf文件
然后,你得在my.cnf文件的[mysqld]中加上
[mysqld]
server-id = 5
log_bin = mysql-bin
log-bin-index = mysql-bin-index
再然后,什么?你说你没有my.cnf文件,小的们,给大哥上材料。直接自己在/etc目录下创建
[mysqld]
# 指定Mysql数据库的开放端口。
port = 3306
# 设置Mysql数据库的安装目录(绝对路径)。
basedir = /usr/local/mysql
# 设置Mysql数据库的数据存放的绝对路径(存放目录)。必须是data,或者是\\xxx-data(my.ini需要,my.cnf不需要)。
datadir = /data/mysql
# 设置MySQL数据库的最大连接数量。如果服务器的并发连接请求量比较大,建议调高此值,以增加并行>连接数量。可以过'%connect%'通配符查看当前状态的连接数量,以定夺该值的大小。
max_connections = 100
# 设置MySQL数据库的连接超时时间。默认设置是一个数据库连接超过8小时没有使用,达到了server端的timeout,服务器将断开这条连接,此后再通过这个connection发起查询操作都将失败。超时等待时间,单位
秒,即一个connection在若干秒内无响应,则服务器切断与这个客户端的连接。
#这一块得特别注意一下,配置得大一些,不然后期会有报错。
wait_timeout = 28800
max_allowed_packet=200m
interactive_timeout=600
#这里是数据库标识,做主从主备的时候两个数据库的server-id不能相同。
server-id = 5
#二进制日志名称
log_bin = mysql-bin
log-bin-index = mysql-bin-index
之后就是重启数据库
systemctl restart mysql
再之后你会发现,你有可能起不来,不用怀疑,配置文件的问题。百度搜索配置文件自行更改吧。但是这两个是必须有的
log_bin = mysql-bin
log-bin-index = mysql-bin-index
最后只要你启动成功了你会发现你的mysql的仓库里就会有二进制日志文件生成名称为 mysql-bin.000001。
这个时候需要做一次全备份
mysqldump --single-transaction -ustandard -p'eIZ!$Yt21P4^Vjpw' -h127.0.0.1 -P11306 H5APP_AFLOW >H5APP_AFLOW.sql
刷新日志文件语句
每次执行都会重新在二进制日志目录中生成一份新的二进制文件,文件名后缀会变成000002,这一步我觉得是命令对目录进行检索后在原有的文件上加一进行更新。
mysqladmin -uroot -p flush-logs
当你哪天不小心删除了库里的文件以下命令帮你找回
mysqlbinlog --no-defaults mysql_bin.000002 | mysql -u root -p
这种情况有时候会报错恢复数据失败我的解决办法就是配置文件中这些全部加大。
wait_timeout = 28800
max_allowed_packet=200m
interactive_timeout=600
以上是关于MYSQL增量备份的主要内容,如果未能解决你的问题,请参考以下文章