千家信息网

【MySQL】备份二进制日志--Binlog Server

发表于:2024-11-15 作者:千家信息网编辑
千家信息网最后更新 2024年11月15日,mysqlbinlog会伪装成一个slave,连接主库请求指定的binlog file,主库接收到这个请求之后创建一个binlog dump线程推送binlog给mysqlbinlog server。
千家信息网最后更新 2024年11月15日【MySQL】备份二进制日志--Binlog Server
mysqlbinlog会伪装成一个slave,连接主库请求指定的binlog file,主库接收到这个请求之后创建一个binlog dump线程推送binlog给mysqlbinlog server。[root@wallet01 ~]# mysql -uroot -pabcd.1234mysql> grant replication slave on *.* to 'repl'@'%' identified by 'repl';Query OK, 0 rows affected (0.08 sec)mysql> flush privileges; Query OK, 0 rows affected (0.03 sec)mysql> show binary logs;+------------------+-----------+| Log_name         | File_size |+------------------+-----------+| mysql-bin.000001 |  67152168 || mysql-bin.000002 |  67138954 || mysql-bin.000003 |  67133196 || mysql-bin.000004 |  67146060 || mysql-bin.000005 |  67172089 || mysql-bin.000006 |  12159668 |+------------------+-----------+6 rows in set (0.03 sec)[root@wallet02 ~]# su - mysql[mysql@wallet02 ~]$ mkdir binlog[mysql@wallet02 ~]$ nohup mysqlbinlog -R --raw --host=192.168.40.34 --user=repl --password=repl --port=3306 \--stop-never mysql-bin.000001 -r /home/mysql/binlog/&[mysql@wallet02 ~]$ cd binlog[mysql@wallet02 binlog]$ ls -lhtotal 340M-rw-r----- 1 mysql mysql 65M Sep 17 14:06 mysql-bin.000001-rw-r----- 1 mysql mysql 65M Sep 17 14:06 mysql-bin.000002-rw-r----- 1 mysql mysql 65M Sep 17 14:06 mysql-bin.000003-rw-r----- 1 mysql mysql 65M Sep 17 14:06 mysql-bin.000004-rw-r----- 1 mysql mysql 65M Sep 17 14:06 mysql-bin.000005-rw-r----- 1 mysql mysql 20M Sep 17 14:06 mysql-bin.000006参数解析-R, --read-from-remote-server: 代表从远程mysql服务器上读取binlog。 --raw: requires -R. 被复制过来的binlog以二进制的格式存放,如果不加该参数则为text格式。--stop-never: mysqlbinlog可以只从远程服务器获取指定的几个binlog,也可将不断生成的binlog保存到本地。指定此选项,代表只要远程服务器不关闭或者连接未断开,mysqlbinlog就会不断的复制远程服务器上的binlog。 --to-last-log:代表mysqlbinlog不仅能够获取指定的binlog,还能获取其后生成的binlog,获取完了,才终止。如果指定了--stop-never选项则会隐式打开--to-last-log选项。mysql-bin.000091:代表从哪个binlog开始复制。--stop-never-slave-server-id:在备份远程服务器的binlog时,mysqlbinlog本质上就相当于一个从服务器,该选项就是用来指定从服务器的server-id。-r, --result-file=name: 用于设置远程服务器的binlog,保存到本地的前缀。例如对于mysql-bin.000001,如果指定--result-file=/test/backup-,则保存到本地后的文件名为/test/backup-mysql-bin.000001。注意:如果将--result-file设置为目录,则一定要带上目录分隔符"/"。例如--result-file=/test/,而不是--result-file=/test,否则保存到本地的文件名为/testmysql-bin.000001。


0