pos机同步数据,BinLog的主从同步

 新闻资讯  |   2023-04-21 10:33  |  投稿人:pos机之家

网上有很多关于pos机同步数据,BinLog的主从同步的知识,也有很多人为大家解答关于pos机同步数据的问题,今天pos机之家(www.poszjia.com)为大家整理了关于这方面的知识,让我们一起来看下吧!

本文目录一览:

1、pos机同步数据

pos机同步数据

1、复制原理

1、Master将数据改变记录到二进制日志(binary log)中,也就是配置文件log-bin指定的文件,这些记录叫做二进制日志事件(binary log events)

2、Slave通过I/O线程读取Master中的binary log events并写入到它的中继日志(relay log)

3、Slave重做中继日志中的事件,把中继日志中的事件信息一条一条的在本地执行一次,完成数据在本地的存储,从而实现将改变反映到它自己的数据(数据重放)

要求

1、主从服务器操作系统版本和位数一致

2、Master和Slave数据库的版本要一致

3、Master和Slave数据库中的数据要一致

4、Master开启二进制日志,Master和Slave的server_id在局域网内必须唯一

2、准备工作

例如:A(master)、B(slave),主从两台服务器,A、B服务器上的MySQL用户名、密码均是root/123456,分别新建两个数据库test。

3、配置文件

master数据库my.conf配置

[mysqld]log_bin=mysql-bin-1 #文件名mysql-bin-1server_id=1 #服务ID,用于区分服务,范围1~2^32-1#MySQL 磁盘写入策略以及数据安全性#每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去innodb_flush_log_at_trx_commit=1 #当sync_binlog =N (N>0) ,MySQL 在每写 N次 二进制日志binary log时,会使用fdatasync()函数将它的写二进制日志binary log同步到磁盘中去。sync_binlog=1binlog-do-db=test #同步数据库#mysql复制模式,三种:SBR(基于sql语句复制),RBR(基于行的复制),MBR(混合模式复制)binlog_format=MIXED #混合模式复制expire_logs_days=7 #binlog过期清理时间max_binlog_size=20M #binlog每个日志文件大小skip-name-resolvedatadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# Recommended in standard MySQL setupsql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid

salve数据库my.conf配置

[mysqld]log_bin=mysql-bin-2 #文件名mysql-bin-2server_id=2 #服务ID,用于区分服务,范围1~2^32-1#MySQL 磁盘写入策略以及数据安全性#每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去innodb_flush_log_at_trx_commit=1 #当sync_binlog =N (N>0) ,MySQL 在每写 N次 二进制日志binary log时,会使用fdatasync()函数将它的写二进制日志binary log同步到磁盘中去。sync_binlog=1binlog-do-db=test #同步数据库#mysql复制模式,三种:SBR(基于sql语句复制),RBR(基于行的复制),MBR(混合模式复制)binlog_format=MIXED #混合模式复制expire_logs_days=7 #binlog过期清理时间max_binlog_size=20M #binlog每个日志文件大小skip-name-resolvedatadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# Recommended in standard MySQL setupsql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid4、创建同步权限及赋权

在A(master)mysql中新建同步权限

grant replication slave on *.* to \'root\'@\'B\' identified by \'123456\';5、完成Master和Slave链接

5.1:查询master状态

show master status;

5.2:根据master状态信息,在slave上设置master信息

change master to master_host=\'A\',master_port=3306,master_user=\'root\',master_password=\'123456\',master_log_file=\'mysql-bin-2.000009\',master_log_pos=120;

5.3:开始slave的同步

开始slave的同步

start slave;

查看slave的状态

show slave status\\G;6、实践

我们在A数据库test的表example新建一条记录,观看B数据库test的表example的情况。

然后刷新slave的数据库

⚠️注意点⚠️

1、my.cnf配置文件

master和slave的server_id一定不能一致。

2、在slave中设置master信息

master_log_file文件是master中的日志文件,以及master_log_pos偏移量。

3、Slave_IO_Running、Slave_SQL_Running

在查询slave的status时候,slave_io_running和slave_sql_runing两个参数必须为YES,两者缺一不可。这里有一个bug,就是默认my.cnf配置的时候,没有禁用掉mysql默认的系统数据库,也没有指定要复制的数据库名称,致使复制的时候我把整个数据库data文件夹一起复制过去了,导致了 主从服务器上的data/auto.cnf 文件内容一样auto.cnf里面记录的server-id也一模一样的重复了。

解决办法:把主服务器或者从服务器data目录下auto.cnf 里的server-id值随便改一个字母或者数字字符,保证两台DB服务器auto.cnf 中server-id不重复, 重启服务 ,即可同步,

以上就是关于pos机同步数据,BinLog的主从同步的知识,后面我们会继续为大家整理关于pos机同步数据的知识,希望能够帮助到大家!

转发请带上网址:http://www.poszjia.com/news/21370.html

你可能会喜欢:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 babsan@163.com 举报,一经查实,本站将立刻删除。