pos機同步數(shù)據(jù),BinLog的主從同步

 新聞資訊  |   2023-04-21 10:33  |  投稿人:pos機之家

網(wǎng)上有很多關(guān)于pos機同步數(shù)據(jù),BinLog的主從同步的知識,也有很多人為大家解答關(guān)于pos機同步數(shù)據(jù)的問題,今天pos機之家(www.tjfsxbj.com)為大家整理了關(guān)于這方面的知識,讓我們一起來看下吧!

本文目錄一覽:

1、pos機同步數(shù)據(jù)

pos機同步數(shù)據(jù)

1、復(fù)制原理

1、Master將數(shù)據(jù)改變記錄到二進制日志(binary log)中,也就是配置文件log-bin指定的文件,這些記錄叫做二進制日志事件(binary log events)

2、Slave通過I/O線程讀取Master中的binary log events并寫入到它的中繼日志(relay log)

3、Slave重做中繼日志中的事件,把中繼日志中的事件信息一條一條的在本地執(zhí)行一次,完成數(shù)據(jù)在本地的存儲,從而實現(xiàn)將改變反映到它自己的數(shù)據(jù)(數(shù)據(jù)重放)

要求

1、主從服務(wù)器操作系統(tǒng)版本和位數(shù)一致

2、Master和Slave數(shù)據(jù)庫的版本要一致

3、Master和Slave數(shù)據(jù)庫中的數(shù)據(jù)要一致

4、Master開啟二進制日志,Master和Slave的server_id在局域網(wǎng)內(nèi)必須唯一

2、準(zhǔn)備工作

例如:A(master)、B(slave),主從兩臺服務(wù)器,A、B服務(wù)器上的MySQL用戶名、密碼均是root/123456,分別新建兩個數(shù)據(jù)庫test。

3、配置文件

master數(shù)據(jù)庫my.conf配置

[mysqld]log_bin=mysql-bin-1 #文件名mysql-bin-1server_id=1 #服務(wù)ID,用于區(qū)分服務(wù),范圍1~2^32-1#MySQL 磁盤寫入策略以及數(shù)據(jù)安全性#每次事務(wù)提交時MySQL都會把log buffer的數(shù)據(jù)寫入log file,并且flush(刷到磁盤)中去innodb_flush_log_at_trx_commit=1 #當(dāng)sync_binlog =N (N>0) ,MySQL 在每寫 N次 二進制日志binary log時,會使用fdatasync()函數(shù)將它的寫二進制日志binary log同步到磁盤中去。sync_binlog=1binlog-do-db=test #同步數(shù)據(jù)庫#mysql復(fù)制模式,三種:SBR(基于sql語句復(fù)制),RBR(基于行的復(fù)制),MBR(混合模式復(fù)制)binlog_format=MIXED #混合模式復(fù)制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數(shù)據(jù)庫my.conf配置

[mysqld]log_bin=mysql-bin-2 #文件名mysql-bin-2server_id=2 #服務(wù)ID,用于區(qū)分服務(wù),范圍1~2^32-1#MySQL 磁盤寫入策略以及數(shù)據(jù)安全性#每次事務(wù)提交時MySQL都會把log buffer的數(shù)據(jù)寫入log file,并且flush(刷到磁盤)中去innodb_flush_log_at_trx_commit=1 #當(dāng)sync_binlog =N (N>0) ,MySQL 在每寫 N次 二進制日志binary log時,會使用fdatasync()函數(shù)將它的寫二進制日志binary log同步到磁盤中去。sync_binlog=1binlog-do-db=test #同步數(shù)據(jù)庫#mysql復(fù)制模式,三種:SBR(基于sql語句復(fù)制),RBR(基于行的復(fù)制),MBR(混合模式復(fù)制)binlog_format=MIXED #混合模式復(fù)制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、創(chuàng)建同步權(quán)限及賦權(quán)

在A(master)mysql中新建同步權(quán)限

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

5.1:查詢master狀態(tài)

show master status;

5.2:根據(jù)master狀態(tài)信息,在slave上設(shè)置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的狀態(tài)

show slave status\\G;6、實踐

我們在A數(shù)據(jù)庫test的表example新建一條記錄,觀看B數(shù)據(jù)庫test的表example的情況。

然后刷新slave的數(shù)據(jù)庫

??注意點??

1、my.cnf配置文件

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

2、在slave中設(shè)置master信息

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

3、Slave_IO_Running、Slave_SQL_Running

在查詢slave的status時候,slave_io_running和slave_sql_runing兩個參數(shù)必須為YES,兩者缺一不可。這里有一個bug,就是默認my.cnf配置的時候,沒有禁用掉mysql默認的系統(tǒng)數(shù)據(jù)庫,也沒有指定要復(fù)制的數(shù)據(jù)庫名稱,致使復(fù)制的時候我把整個數(shù)據(jù)庫data文件夾一起復(fù)制過去了,導(dǎo)致了 主從服務(wù)器上的data/auto.cnf 文件內(nèi)容一樣auto.cnf里面記錄的server-id也一模一樣的重復(fù)了。

解決辦法:把主服務(wù)器或者從服務(wù)器data目錄下auto.cnf 里的server-id值隨便改一個字母或者數(shù)字字符,保證兩臺DB服務(wù)器auto.cnf 中server-id不重復(fù), 重啟服務(wù) ,即可同步,

以上就是關(guān)于pos機同步數(shù)據(jù),BinLog的主從同步的知識,后面我們會繼續(xù)為大家整理關(guān)于pos機同步數(shù)據(jù)的知識,希望能夠幫助到大家!

轉(zhuǎn)發(fā)請帶上網(wǎng)址:http://www.tjfsxbj.com/news/21370.html

你可能會喜歡:

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 babsan@163.com 舉報,一經(jīng)查實,本站將立刻刪除。