首页 > 数据库 >【MySQL 8.0】通过mysqlbinlog实现binlog文件的远程同步

【MySQL 8.0】通过mysqlbinlog实现binlog文件的远程同步

时间:2023-08-25 14:00:33浏览次数:42  
标签:8.0 27 binlog -- 32 MySQL ----- mysql

mysqlbinlog会伪装成一个slave,连接master请求指定的binlog file,
master接收到这个请求之后创建一个binlog dump线程推送binlog给伪装的slave。

[mysql@node01 ~]$ mysql -uroot -pabcd.1234 -hnode01

(root@node01) > create user repl@'%' identified by 'repl';
Query OK, 0 rows affected (0.02 sec)

(root@node01) > grant replication slave on *.* to repl@'%';
Query OK, 0 rows affected (0.02 sec)

(root@node01) > flush privileges; 
Query OK, 0 rows affected (0.02 sec)

(root@node01) > show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 | 188727709 |
| mysql-bin.000002 | 159785045 |
| mysql-bin.000003 | 159789525 |
| mysql-bin.000004 | 159789766 |
| mysql-bin.000005 | 159893537 |
| mysql-bin.000006 | 136245273 |
| mysql-bin.000007 | 136326083 |
| mysql-bin.000008 | 136249690 |
| mysql-bin.000009 | 139036884 |
| mysql-bin.000010 | 138478059 |
| mysql-bin.000011 | 138811338 |
| mysql-bin.000012 | 138553112 |
| mysql-bin.000013 | 138802271 |
| mysql-bin.000014 | 138638672 |
| mysql-bin.000015 |  96156292 |
+------------------+-----------+
15 rows in set (0.00 sec)
通过linux screen实现进程后台执行
[root@node02 ~]# yum -y install screen

[mysql@node02 ~]$ mkdir binlog
[mysql@node02 ~]$ screen -S mysqlbinlog
[mysql@node02 ~]$ mysqlbinlog -R --raw --host=192.168.40.101 --user=repl --password=repl --port=3306 --stop-never mysql-bin.000001 -r /home/mysql/binlog/

ctrl+a+d --后台执行

[mysql@node02 ~]$ screen -ls
There is a screen on:
        3074.mysqlbinlog        (Detached)
1 Socket in /var/run/screen/S-mysql.

[mysql@node02 ~]$ cd binlog
[mysql@node02 binlog]$ ls -lh
total 2.1G
-rw-r----- 1 mysql mysql 180M Mar 27 16:32 mysql-bin.000001
-rw-r----- 1 mysql mysql 153M Mar 27 16:32 mysql-bin.000002
-rw-r----- 1 mysql mysql 153M Mar 27 16:32 mysql-bin.000003
-rw-r----- 1 mysql mysql 153M Mar 27 16:32 mysql-bin.000004
-rw-r----- 1 mysql mysql 153M Mar 27 16:32 mysql-bin.000005
-rw-r----- 1 mysql mysql 130M Mar 27 16:32 mysql-bin.000006
-rw-r----- 1 mysql mysql 131M Mar 27 16:32 mysql-bin.000007
-rw-r----- 1 mysql mysql 130M Mar 27 16:32 mysql-bin.000008
-rw-r----- 1 mysql mysql 133M Mar 27 16:32 mysql-bin.000009
-rw-r----- 1 mysql mysql 133M Mar 27 16:32 mysql-bin.000010
-rw-r----- 1 mysql mysql 133M Mar 27 16:32 mysql-bin.000011
-rw-r----- 1 mysql mysql 133M Mar 27 16:32 mysql-bin.000012
-rw-r----- 1 mysql mysql 133M Mar 27 16:32 mysql-bin.000013
-rw-r----- 1 mysql mysql 133M Mar 27 16:32 mysql-bin.000014
-rw-r----- 1 mysql mysql  92M Mar 27 16:32 mysql-bin.000015
参数解析
-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.000001:代表从哪个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

标签:8.0,27,binlog,--,32,MySQL,-----,mysql
From: https://blog.51cto.com/dbprofessional/7230223

相关文章

  • 【MySQL 8.0】部分备份与恢复验证
    [mysql@node01~]$xtrabackup--user=xtrabackup--password=xtrabackup--databases="tpcc10"--backup--target-dir=/home/mysql/backup/partial[mysql@node01~]$scp-rbackup/partial/*node02:/home/mysql/backup/partial[mysql@node01~]$mysqldump......
  • 【MySQL 8.0】物理备份与恢复验证
    [root@node01~]#wgethttps://repo.percona.com/yum/percona-release-latest.noarch.rpm[root@node01~]#rpm-ivhpercona-release-latest.noarch.rpm[root@node01~]#yuminstall-ypercona-xtrabackup-80用户与权限(root@node01)>createuserxtrabackup@'......
  • 【MySQL 8.0】增量备份与恢复验证
    [mysql@node01~]$xtrabackup--user=xtrabackup--password=xtrabackup--backup--target-dir=/home/mysql/backup/base[mysql@node01~]$./tpcc-mysql/tpcc_start-h192.168.1.101-P3306-dtpcc10-utpcc-ptpcc-w10-c10-l120[mysql@node01~]$xtrabac......
  • 主从升级(mysql5.7.39-mysql8.0.25)
    环境:OS:Centos7当前数据库版本:5.7.39(主从目前启用了审计server_audit.so,master_auto_position=1)计划升级的数据库版本:8.0.28升级顺序:先升级从库########################从库机器上的操作######################1.从库机器上安装好新版本的mysql注意端口和socket不能与......
  • centos定时备份mysql数据库 用shell脚本实现
    数据很重要,上线的项目必须数据库做到定时备份数据量小的可用如下方法,下面的是全量备份,数据量大的肯定行不通的,这时可用mysql主从复制了注意事项:1、shell脚本的mysqldump命令必须使用绝对路径,首先用find/-name'mysqldump'找到真实绝对路径,否则备份出来文件0kb 2、在终端用......
  • sql server和mysql常用字段类型对比
    都有的数据类型BIGINTCHARDATETIMEDECIMALFLOATINT,INTEGERSMALLINTTEXTTIMESTAMPTINYINTVARCHAR需要做修改的数据类型关键代码修改:......
  • 【MySQL 8.0】在 CentOS 7.5 安装 MySQL 8.0
    [root@node01~]#cat>>/etc/hosts<<EOF192.168.1.101node01EOF[root@node01~]#useraddmysql[root@node01~]#echomysql|passwd--stdinmysqlChangingpasswordforusermysql.passwd:allauthenticationtokensupdatedsuccessfully.......
  • CentOS7.9搭建开发环境(Java、MySQL、Nginx、Redis)
    系统使用的阿里云CentOS7.964位SCC版。先安装个文件上传下载工具lrzsz,xshell登录终端,运行下面的命令:yuminstall-ylszrz 这是因为yum源的问题,需要修改yum配置。执行以下命令:cd/etc/yum.repos.dmvCentOS-Base.repoCentOS-Base.repo.backupwgethttp://mirrors.......
  • 手把手教你Linux CentOS 8 安装MySQL 8
     安装步骤我所使用的Linux版本是CentOS8,在CentOS8上安装MySQL的步骤:启用MySQL8.0存储库首先,您需要启用MySQL8.0存储库。为此,请下载和安装MySQL的存储库包:sudodnfinstallhttps://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm安装MyS......
  • mysql索引的详解和慢查询优化
    什么是索引?索引是一种特殊的数据结构,由数据表中的一列或多列组合而成 建立索引的目的是什么?索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才......