亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        MySQL集群主從復制的原理、實現(xiàn)與常見故障排除

        2021-12-24 02:12:10馮冬艷
        山西電子技術 2021年6期
        關鍵詞:數(shù)據(jù)庫

        馮冬艷

        (山西職業(yè)技術學院,山西 太原 030006)

        0 引言

        MySQL是一款優(yōu)秀的關系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)應用軟件,廣泛應用于中小型企業(yè)的數(shù)據(jù)存儲中。2009年4月Oracle公司以74億美元收購Sun公司后,MySQL也隨之歸到Oracle旗下,目前主要有Enterprise和Community兩種版本。社區(qū)版MySQL由于其開源、穩(wěn)定、安全等特點,MySQL在Linux平臺上具有廣泛的應用。

        在企業(yè)的實際應用過程中,隨著MySQL中數(shù)據(jù)存儲量的持續(xù)增大和企業(yè)、用戶對存取響應速度和數(shù)據(jù)安全性要求的不斷提高,單臺MySQL數(shù)據(jù)庫所提供的服務能力已經(jīng)不能滿足企業(yè)的實際需求。因此搭建一個能夠同時實現(xiàn)高并發(fā)和負載均衡的MySQL集群服務器勢在必行。在集群中為了提高數(shù)據(jù)的寫入和讀取效率,經(jīng)常需要對數(shù)據(jù)進行讀寫分離。此外,為了確保數(shù)據(jù)的安全而進行熱備也是一種經(jīng)常性的需求。為實現(xiàn)以上相關功能,MySQL提供了一個稱為“主從復制”的功能來實現(xiàn)多臺服務器之間數(shù)據(jù)的自動復制備份。

        本文主要探討“一主多從”服務器架構中主從復制的基本原理、實現(xiàn)和常見故障排除。在“一主多從”服務器架構中,業(yè)務服務器對數(shù)據(jù)進行寫操作或修改操作是在主服務器進行的,而進行讀操作時是在從服務器進行的,不同服務器之間一般是通過異步的方式完成數(shù)據(jù)的更新。本文所使用的實驗環(huán)境包括:操作系統(tǒng)為CentOS Linux release 7.3.1611(Core),數(shù)據(jù)庫為MySQL8.0.25,主服務器IP為192.168.211.128,從服務器IP為192.168.211.129。

        1 MySQL主從復制的基本原理

        MySQL中的主從復制實際上采用的是異步方式實現(xiàn)的,但是由于其執(zhí)行速度較快,因此經(jīng)常感覺是實時完成的。我們一般將直接提供數(shù)據(jù)增加、修改、刪除功能的服務器稱為主服務器(Master),而將主要提供數(shù)據(jù)查詢功能的一臺或多臺服務器稱為從服務器(Slaves)。一般來說MySQL的主從復制遵循以下基本過程:

        1) 主服務器在進行數(shù)據(jù)更新操作后會將相應的操作記錄到它的二進制日志中,并且維護文件的一個索引用來跟蹤日志循環(huán),這個日志可以記錄并發(fā)送到從服務器的更新中去。一般情況下服務器的二進制日志是關閉的,需要通過配置文件方式將其啟用。

        2) 從服務器會在一定時間間隔后對主服務器的二進制日志進行探測,看其內容是否有更新。如果有更新,從服務器就會啟動一個I/O線程用于連接到主服務器并請求主服務器的二進制文件里面的更新內容到從服務器。同時從服務器會告知主服務器,從服務器上一次成功更新到的主服務器二進制日志文件的位置。

        3) 當主服務器接收到從服務器的I/O請求后,會為每一個從服務器的I/O線程創(chuàng)建一個Binlog dump線程,該線程會將主服務器的二進制日志中更新的事件發(fā)送給從服務器。

        4) 從服務器的I/O線程讀取到主服務器Binlogdump線程發(fā)送的主服務器的二進制日志文件中更新的事件并將其保存到從服務器的中繼日志中。

        5) 從服務器會創(chuàng)建一個SQL線程,讀取保存在中繼日志中的主服務器二進制日志中的更新事件并且執(zhí)行,相當于主服務器更新的SQL操作在從服務器再執(zhí)行一遍,進而保證主從服務器的數(shù)據(jù)一致。

        2 MySQL主從復制的實現(xiàn)

        為了簡單起見,本文將實現(xiàn)一主一從架構的主從復制,一主多從架構的原理與此基本相同,對于較復雜的其他架構本文暫不予討論。一主一從架構的主從復制實現(xiàn)起來比較簡單,首先需要對主服務器和從服務器的數(shù)據(jù)同步進行配置。

        第一,對主服務器MySQL進行配置:

        1) 創(chuàng)建用于從服務器連接主服務器的用戶backup并授予其replicationslave權限。create user 'backup' identified by ' backup'; grant replication slave on *.* to ' backup' @' 192.168.211.129';

        2) 打開主服務器MySQL的配置文件/etc/my.cnf,在[mysqld]下添加參數(shù):server_id=1,log_bin=mysql-bin。兩個參數(shù)分別用于指定服務器id和二進制日志的名字。

        3) 配置完成后重啟MySQL服務,進入MySQL,輸入命令show master status;查看并記錄表中file和postion的值。這兩個參數(shù)值將被用于從服務器MySQL的參數(shù)配置。

        圖1 查看二進制日志中File和Position的值

        第二,對從服務器MySQL進行配置:

        1) 進入從服務器MySQL的配置文件/etc/my.cnf中在[mysqld]下添加參數(shù):server_id= 2,這個id值不得與主服務器的相同。

        2) 執(zhí)行同步SQL語句,需要指定主服務器IP地址,登錄用戶名及密碼,二進制日志名字與偏移。change master to master_host='192.168.211.128', master_user=' backup', master_password=' backup',master_log_file=' mysql-bin.000002', master_log_pos=156;其中master_host用于指定主服務器的IP地址,master_user用于指定從服務器登錄主服務器進行同步時的用戶名,master_password用于指定該用戶的密碼,master_log_file用于指定主服務器二進制文件的名字,master_log_pos用于指定二進制日志的偏移量。

        3) 開啟主從同步:start slave;該命令用于啟動主從同步。

        4) 查看同步狀態(tài):show slave statusG;在狀態(tài)參數(shù)列表中Slave_IO_Running和Slave_SQL_Running的值均為Yes,則表示主從同步狀態(tài)正常。

        圖2 查看Slave_IO_Running和Slave_SQL_Running的值

        第三,對主從復制運行情況進行驗證:

        1) 在主服務器創(chuàng)建數(shù)據(jù)庫student、表stu_info并插入一條測試數(shù)據(jù):create database student;create table stu_info(stu_idint,stu_name varchar(12),phone varchar(11)); insert into stu_info values(1,’zhangsan’,13888888888’);

        2) 在從服務器進行查看,驗證主從復制運行是否正常:通過查詢,可以看到在主服務器創(chuàng)建的數(shù)據(jù)庫、表和插入的數(shù)據(jù)內容,主從復制正常運行。

        圖3 查看從服務器內容是否與主服務器一致

        3 MySQL主從復制常見故障及排除

        1) 報錯Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids。此類錯誤在實驗環(huán)境里經(jīng)常會出現(xiàn),因為在實驗條件下往往是先搭建一個服務器環(huán)境,再復制出其它服務器環(huán)境。因此server_id可能會出現(xiàn)相同的情況,只需要在主、從服務器的MySQL配置文件[mysqld] 中將server_id設置為不同值即可。

        2) change master之后,查看slave的狀態(tài),發(fā)現(xiàn)slave_IO_running 仍為NO。需要注意在進行完之前的相關配置操作后要對MySQL服務進行重啟,重啟后再進行查看slave_IO_running變?yōu)閅es。

        3) 報錯ERROR 1198 (HY000): This operation cannot be performed with a running slave; run STOP SLAVE first。出現(xiàn)此錯誤的原因是在沒有停止slave進程的情況下執(zhí)行change master,因此需要先通過命令stop slave停止slave后再進行相關操作。

        4 結語

        在實際應用中,有大量的MySQL復制采用的是一主一從或一主多從架構,這類架構能夠實現(xiàn)準實時的數(shù)據(jù)熱備。對于一些數(shù)據(jù)實時性要求不是非常高的應用,企業(yè)僅僅通過擴展廉價的slave就可以解決解決數(shù)據(jù)庫端讀數(shù)據(jù)的瓶頸問題。但是這種架構復制數(shù)據(jù)的安全性和實時性還存在一定的不足,尤其在集群規(guī)模不斷擴大的情況下,因此就出現(xiàn)了主動模式的Master-Master、主動-被動模式的Master-Master、級聯(lián)復制Master-Slaves-Slaves、帶從服務器的Master-Master等不同的集群架構來滿足不同場景的需求。

        猜你喜歡
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        財經(jīng)(2017年15期)2017-07-03 22:40:49
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        數(shù)據(jù)庫
        財經(jīng)(2015年3期)2015-06-09 17:41:31
        數(shù)據(jù)庫
        財經(jīng)(2014年21期)2014-08-18 01:50:18
        數(shù)據(jù)庫
        財經(jīng)(2014年6期)2014-03-12 08:28:19
        數(shù)據(jù)庫
        財經(jīng)(2013年6期)2013-04-29 17:59:30
        中文字幕日本五十路熟女| 红杏亚洲影院一区二区三区| 久久半精品国产99精品国产| 男女性搞视频网站免费| 亚洲国产综合在线亚洲区亚洲av | 五月综合丁香婷婷久久| 亚洲成人av一区二区麻豆蜜桃| 国产内射视频免费观看| 美利坚日韩av手机在线| 黑人上司粗大拔不出来电影| 国产在线高清视频| 亚洲中文字幕熟女五十| 国产91精品高潮白浆喷水| 香港三级精品三级在线专区| 国产一级片毛片| 亚洲成人免费久久av| 少妇人妻综合久久中文字幕| 国产欧美一区二区三区在线看| 乱子伦视频在线看| 无码 免费 国产在线观看91| 亚洲不卡av一区二区三区四区 | 国产av一级片在线观看| 男人进去女人爽免费视频| 麻豆91免费视频| 国产成人高清精品亚洲一区| 国产精品会所一区二区三区| 国产精品丝袜久久久久久不卡| 中文字幕久久久人妻无码| 久久熟女少妇一区二区三区| 台湾佬中文网站| 国内露脸中年夫妇交换| 亚洲国产av自拍精选| 国产黄色av一区二区三区| 无码人妻一区二区三区在线视频| 久久国产免费观看精品| 国产尤物自拍视频在线观看 | 两人前一后地插着她丰满| 午夜福利试看120秒体验区| 亚洲综合av在线在线播放| 亚洲精品2区在线观看| av免费在线播放视频|