MySQL数据库服务日志管理-binlog 远程备份

binlog日志远程备份背景说明

以前备份binlog时,都是先在本地进行备份压缩,然后发送到远程服务器中。但是这其中还是有一定风险的,因为日志的备份都是周期性的,如果在某个周期中,服务器宕机了,硬盘损坏了,就可能导致这段时间的binlog就丢失了。

而且,以前用脚本对远程服务器进行备份的方式,有个缺点:无法对mysql服务器当前正在写的二进制日志文件进行备份。所以,只能等到MySQL服务器全部写完才能进行备份。而写完一个binlog的时间并不固定,这就导致备份周期的不确定。

从MySQL5.6开始,mysqlbinlog支持将远程服务器上的binlog实时复制到本地服务器上。mysqlbinlog的实时二进制复制功能并非简单的将远程服务器的日志复制过来,它是通过MySQL 5.6公布的Replication API实时获取二进制事件。

说明:从本质上来说,就相当于MySQL的从服务器。与普通服务器类似,主服务器发生事件后,一般都会在0.5~1秒内进行备份。

binlog日志远程备份操作实践

备份命令操作信息:

mysqlbinlog --read-from-remote-server --raw --host=192.168.244.145 --port=3306 --user=repl --password=repl --stop-never mysql-bin.000001

备份命令参数解释:
--read-from-remote-server
表示用于备份远程服务器的binlog,如果不指定该选项,则会查找本地的binlog。
--raw
表示binlog日志会以二进制格式存储在磁盘中,如果不指定该选项,则会以文本形式保存。
--user
表示登录数据库服务的用户信息,并且在进行binlog备份复制的MySQL用户,只需要授予REPLICATION SLAVE权限。
--stop-never
mysqlbinlog可以只从远程服务器获取指定的几个binlog,也可将不断生成的binlog保存到本地。
指定此选项,代表只要远程服务器不关闭或者连接未断开,mysqlbinlog就会不断的复制远程服务器上的binlog。

posted @ 2022-11-25 08:18  aiweiwei24  阅读(169)  评论(0)    收藏  举报