- 从远程数据库拉取binlog
命令示例:mysqlbinlog -v --base64-output=DECODE-ROWS --read-from-remote-server --raw --host=x.x.x.x --port=3306 --user=root --password=123456 --stop-never mysql-bin.000001 --read-from-remote-server:用于备份远程服务器的binlog。如果不指定该选项,则会查找本地的binlog。 --raw:binlog日志会以二进制格式存储在磁盘中,如果不指定该选项,则会以文本形式保存,文本方式需要指定文件名称,否则打印在控制台。 --user:复制的MySQL用户,只需要授予REPLICATION SLAVE权限。 --stop-never:mysqlbinlog可以只从远程服务器获取指定的几个binlog, 也可将不断生成的binlog保存到本地。指定此选项,代表只要远程服务器不关闭或者连接未断开, mysqlbinlog就会不断的复制远程服务器上的binlog。 mysql-bin.000001:代表从哪个binlog开始复制,只有结合--stop-never才可以按顺序复制没有出现在命令行的文件(比如mysql-bin.000002,mysql-bin.000003等, 如果只是想拉取指定的几个文件,多个文件之间用空格间隔即可)。 -v --base64-output=DECODE-ROWS 命令用于二进制日志文件sql命令base64的解码 --database 指定数据库名称 除了以上选项外,还有以下几个选项需要注意: --stop-never-slave-server-id:在备份远程服务器的binlog时,mysqlbinlog本质上就相当于一个从服务器, 该选项就是用来指定从服务器的server-id的。默认为-1。 --to-last-log:代表mysqlbinlog不仅能够获取指定的binlog,还能获取其后生成的binlog, 获取完了,才终止。如果指定了--stop-never选项则会隐式打开--to-last-log选项。 --result-file:用于设置远程服务器的binlog,保存到本地的前缀(如果没有--row,则为文件名)。譬如对于mysql-bin.000001, 如果指定--result-file=/test/backup-,则保存到本地后的文件名为/test/backup-mysql-bin.000001。 注意:如果将--result-file设置为目录,则一定要带上目录分隔符“/”。譬如--result-file=/test/, 而不是--result-file=/test,不然保存到本地的文件名为/testmysql-bin.000001 --raw不支持--database,--start-datetime,--end-datetime,--end-position --stop-never出现时,才是从目标文件(mysql-bin.000001)开始持续复制后续文件,否则只拉取目标文件 ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/lgq2016/article/details/125894942
原文:mysqlbinlog命令介绍(远程拉取binlog日志)_mysql远程获取binlog的delete语句-CSDN博客
- 将binlog转为sql
mysqlbinlog --base64-output=decode-rows -v binlog日志文件 -d 需要查询的数据库 > 文件名.sql
从远程数据库拉取binlog并转为sql
于 2024-04-03 14:43:08 首次发布