網(wǎng)上有很多關(guān)于pos機(jī)終端已鎖,MySQL 不停機(jī)不鎖表主從搭建的知識,也有很多人為大家解答關(guān)于pos機(jī)終端已鎖的問題,今天pos機(jī)之家(www.afbey.com)為大家整理了關(guān)于這方面的知識,讓我們一起來看下吧!
本文目錄一覽:
pos機(jī)終端已鎖
MySQL主從搭建分幾種場景
無業(yè)務(wù)數(shù)據(jù),初始化搭建有業(yè)務(wù)數(shù)據(jù),臨時擴(kuò)展初始化的搭建很簡單,不涉及數(shù)據(jù)業(yè)務(wù),所以鎖表、停機(jī)等都不影響,但是更多時候是業(yè)務(wù)到一定階段,才會涉及到橫向擴(kuò)展,需要做主從,讀寫分離等來提升服務(wù)性能
這個時候,數(shù)據(jù)業(yè)務(wù)不能中斷,又需要快速進(jìn)行擴(kuò)展提升性能,只能在不停機(jī)、不停服務(wù)的情況下擴(kuò)展,就需要用到下面介紹的這種方法來做數(shù)據(jù)庫主從
當(dāng)然還是有前提條件,如果你原本MySQL連binlog及server_id都這種基礎(chǔ)配置都沒做,那也談不上不停機(jī)配置主從
原理
不停機(jī)實現(xiàn)主從搭建的關(guān)鍵點就是以下兩個參數(shù):
--single-transaction--master-datamaster-data參數(shù)主要用來記錄主庫的binlog_file和pos,它有兩個值,分別是:
1:在mysqldump過程中,將binlogfile和pos信息記錄在sql中,并且不是以注釋信息的方式記錄,這樣在執(zhí)行導(dǎo)入的時候自動執(zhí)行這部分信息
2:在mysqldump過程中,將binlogfile和pos信息以注釋的方式記錄在sql中
single-transaction參數(shù)則是通過提交單一事務(wù)來確保數(shù)據(jù)一致性,通過在FLUSH TABLES WITH READ LOCK 后添加START TRANSACTION 語句,開啟單一事務(wù),此時加鎖,僅僅是為了獲取準(zhǔn)確的master-data中的binlogfile和pos信息,在開啟事務(wù)后,鎖已經(jīng)釋放了,所以對業(yè)務(wù)影響很小
通過以上兩個參數(shù),可以在不長時間鎖表的情況下獲取準(zhǔn)確的binlogfile和pos信息,從而完成主從配置
實戰(zhàn)
導(dǎo)出數(shù)據(jù)
從主庫通過mysqldump導(dǎo)出數(shù)據(jù)
mysqldump -uroot -ppassword --single-transaction --master-data=2 --databases db1 db2 xxx > databases.sql
打包壓縮
tar -zcvf databases.sql.tar.gz databases.sql
復(fù)制到從庫
scp databases.sql.tar.gz root@slave_ip:/data/sql/
后面的操作在從庫進(jìn)行
解壓
tar -zxvf databases.sql.tar.gz
導(dǎo)入數(shù)據(jù)
source /path_to/databases.sql.tar.gz
配置主從同步參數(shù)
change master to master_host='ip',master_user='slave',master_port=port,master_password='password',master_log_file='mysql-bin.file',master_log_pos=POS;
其中master_log_file和master_log_pos就是上面通過master-data=2參數(shù)導(dǎo)出的,在sql文件里面開頭部分
啟動slave同步
start slave;
查看同步狀態(tài)
show slave status\\G;
通過這種方法,可以在不停止業(yè)務(wù)的情況下,保證數(shù)據(jù)一致性的同時,快速擴(kuò)展從庫
當(dāng)然也有其他的方式,比如通過xtrbackup 的方式
本文轉(zhuǎn)載于 微信公眾號 運(yùn)維研習(xí)社
以上就是關(guān)于pos機(jī)終端已鎖,MySQL 不停機(jī)不鎖表主從搭建的知識,后面我們會繼續(xù)為大家整理關(guān)于pos機(jī)終端已鎖的知識,希望能夠幫助到大家!
