




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Mysql5.6.24的主從復制及用atlas實現(xiàn)讀寫分離在實際企業(yè)應用環(huán)境當中,單臺mysql數(shù)據(jù)庫是不足以滿足日后業(yè)務需求的。譬如服務器發(fā)生故障,沒有備份服務器來提供服務的話,業(yè)務就得停止。使用mysql主從復制的好處有:1、采用主從服務器這種架構,穩(wěn)定性得以提升。如果主服務器發(fā)生故障,我們可以使用從服務器來提供服務。2、在主從服務器上分開處理用戶的請求,可以提升數(shù)據(jù)處理效率。3、將主服務器上的數(shù)據(jù)復制到從服務器上,保護數(shù)據(jù)免受意外的損失。環(huán)境描述:新企業(yè)要搭建架構為主從復制的mysql數(shù)據(jù)庫。主服務器(mysql-master):IP地址:80,mysql已安裝,沒有用戶數(shù)據(jù)。從服務器(mysql-slave):IP地址:81,mysql已安裝,沒有用戶數(shù)據(jù)。主從服務器均可正常提供服務。主從復制配置如下:在主服務器上操作:1)、確保/etc/f中有如下參數(shù),沒有的話需手工添加,并重啟mysql服務。[mysqld]log-bin=/usr/local/mysql/data/mysql/mysql-bin啟動二進制文件server-id=1服務器ID2)、登錄mysql,在mysql中添加一個repl的賬號,并授權給從服務器。[root@localhost~]#mysql-uroot–p123456登錄mysqlmysql>grantreplicationslaveon*.*to'repl'@'81'identifiedby'123';創(chuàng)建repl用戶,并授權給81使用。3)、查詢主數(shù)據(jù)庫狀態(tài),并記下FILE及Position的值,這個在后面配置從服務器的時候要用到。mysql>showmasterstatus;在從服務器上操作:1)、確保/etc/f中有l(wèi)og-bin=mysql-bin和server-id=1參數(shù),并把server-id=1修改為server-id=10。修改之后如下所示:[mysqld]log-bin=/usr/local/mysql/data/mysql/mysql-bin啟動二進制文件server-id=10服務器ID、重啟mysql服務。3)、登錄mysql,執(zhí)行如下語句[root@localhost~]#mysql-uroot–p123456mysql>changemastertomaster_host='80',master_user='repl',master_password='123',master_log_file='mysql-bin.000001',master_log_pos=330;4)、啟動slave同步。mysql>startslave;5)、檢查主從同步,如果您看到Slave_IO_Running和Slave_SQL_Running均為Yes,則主從復制連接正常。mysql>showslavestatus\G驗證配置是否正常,mysql主從能否正常復制。在主數(shù)據(jù)庫上新建一個庫,并且在庫中寫一個表和一些數(shù)據(jù)。[root@localhost~]#mysql-uroot–p123456mysql>createdatabasemysqltest;mysql>usemysqltest;mysql>createtableuser(idint(5),namechar(10));mysql>insertintouservalues(00001,'zhangsan');在從數(shù)據(jù)庫中驗證一下,是否正常復制到數(shù)據(jù)。[root@localhost~]#mysql-uroot–p123456mysql>showdatabases;mysql>select*frommysqltest.user;從上圖中的結果,我們可以看到mysql主從復制已經(jīng)在起作用了,我們在主數(shù)據(jù)庫中寫入的數(shù)據(jù)已經(jīng)復制到我們的從數(shù)據(jù)庫中了。環(huán)境如下:單臺數(shù)據(jù)庫存有數(shù)據(jù),要升級為主從復制的架構。主數(shù)據(jù)庫:mysql-master:IP80,數(shù)據(jù)庫正常提供服務,有數(shù)據(jù)。從數(shù)據(jù)庫:mysql-slave:IP81,數(shù)據(jù)庫正常提供服務,無數(shù)據(jù)。升級大致步驟如下:1、修改主數(shù)據(jù)庫配置文件,開啟主從復制必要的功能。2、在主數(shù)據(jù)庫中創(chuàng)建一個賬號并授權給從數(shù)據(jù)庫使用。3、導出主數(shù)據(jù)庫中的數(shù)據(jù)。4、修改從數(shù)據(jù)庫配置文件,開啟主從復制必要的功能。5、把剛才主數(shù)據(jù)庫中導出的數(shù)據(jù)導入到從數(shù)據(jù)庫。6、在從數(shù)據(jù)庫中配置連接主數(shù)據(jù)庫要用到的賬戶、密碼等。7、啟動主從復制功能,并檢查是否正常復制。開始升級:在主數(shù)據(jù)庫上操作:1)、確保/etc/f中有如下參數(shù),沒有的話需手工添加,并重啟mysql服務。[mysqld]log-bin=/usr/local/mysql/data/mysql/mysql-bin啟動二進制文件server-id=1服務器ID2)、登錄mysql,在mysql中添加一個repl的賬號,并授權給從服務器。[root@localhost~]#mysql-uroot–p123456登錄mysqlmysql>grantreplicationslaveon*.*to'repl'@'81'identifiedby'123';創(chuàng)建repl用戶,并授權給81使用。3)、查看已有的數(shù)據(jù)庫有哪些;mysql>showdatabases;4)、進行鎖表操作,不讓數(shù)據(jù)進行寫入動作,這么做是為了防止從數(shù)據(jù)庫的原始數(shù)據(jù)和主數(shù)據(jù)庫的原始數(shù)據(jù)不一致。mysql>flushtableswithreadlock;5)、查詢主數(shù)據(jù)庫狀態(tài),并記下FILE及Position的值,這個在后面配置從服務器的時候要用到。mysql>showmasterstatus;6)、切換一個終端,使用mysqldump命令將剛才查詢到的兩個庫導出來。mysql>mysqldump–uroot–p123456mysqltest>mysqltest.sqlmysql>mysqldump–uroot–p123456test1234>test1234.sql7)、將導出來的庫文件傳送到從數(shù)據(jù)庫的/root目錄下。[root@localhost~]#scpmysqltest.sqltest1234.sqlroot@81:/root/這中間需要輸入一次驗證口令。見下圖8)、切換回之前的終端,進行表解鎖操作。mysql>unlocktables;主數(shù)據(jù)庫服務器上的操作告一段落。在從數(shù)據(jù)庫上操作:1)、確保/etc/f中有l(wèi)og-bin=mysql-bin和server-id=1參數(shù),并把server-id=1修改為server-id=10。修改之后如下所示:[mysqld]log-bin=/usr/local/mysql/data/mysql/mysql-bin啟動二進制文件server-id=10服務器ID2)、重啟mysql服務。3)、登錄數(shù)據(jù)庫,確認要同步的庫名是否存在。[root@localhost~]#mysql-uroot–p123456mysql>showdatabases;4)、創(chuàng)建名為mysqltest和test1234的庫。mysql>createdatabasemysqltest;mysql>createdatabasetest1234;5)、切換一個終端,將傳過來的兩個數(shù)據(jù)文件分別導入對應的數(shù)據(jù)庫下。[root@localhost~]#mysql-uroot–p123456mysqltest<mysqltest.sql[root@localhost~]#mysql-uroot–p123456test1234<test1234.sql6)、切換回之前的終端,執(zhí)行如下語句mysql>changemastertomaster_host='80',master_user='repl',master_password='123',master_log_file='mysql-bin.000003',master_log_pos=1650;7)、啟動主從復制功能。mysql>startslave;8)、檢查主從同步,如果您看到Slave_IO_Running和Slave_SQL_Running均為Yes,則主從復制連接正常。mysql>showslavestatus\G驗證主從是否正常配置:在主數(shù)據(jù)庫上插入數(shù)據(jù):mysql>showdatabases;mysql>showtables;mysql>usemysqltest;mysql>select*fromuser;mysql>insertintouservalues(4,'ergou');mysql>insertintouservalues(5,'sanwazi');在從數(shù)據(jù)庫上查看是否正常同步:mysql>showdatabases;mysql>usemysqltest;mysql>select*fromuser;上圖可以看出,主從之間已經(jīng)可以正常復制了。Atlas安裝和配置:Atlas是由Qihoo360,Web平臺部基礎架構團隊開發(fā)維護的一個基于MySQL協(xié)議的數(shù)據(jù)中間層項目。它在MySQL官方推出的MySQL-Proxy0.8.2版本的基礎上,修改了大量bug,添加了很多功能特性。目前該項目在360公司內(nèi)部得到了廣泛應用,很多MySQL業(yè)務已經(jīng)接入了Atlas平臺,每天承載的讀寫請求數(shù)達幾十億條。主要功能:*讀寫分離*從庫負載均衡*IP過濾*SQL語句黑白名單*自動分表一、環(huán)境OS:CentOS-6.5x86_64AtlasIP:82MySQLMasterIP:80MySQLSlaveIP:81二、MySQL授權MySQL主從已經(jīng)配置好之后,主從對Atlas進行授權mysql>grantallon*.*toatlas@'82'identifiedby'123456';Atlas安裝#rpm-ivhAtlas-2.2.1.el6.x86_64.rpmAtlas安裝后的文件路徑/usr/local/mysql-proxy/Atlas配置加密MySQL用戶密碼,獲取的加密串填寫到配置文件的pwds參數(shù)中。#/usr/local/mysql-proxy/bin/encrypt123456/iZxz+0GRoA=vim/usr/local/mysql_proxy/conf/test.conf[mysql-proxy]#帶#號的為非必需的配置項目#管理接口的用戶名admin-username=user#管理接口的密碼admin-password=pwd#Atlas后端連接的MySQL主庫的IP和端口,可設置多項,用逗號分隔proxy-backend-addresses=80:3306#Atlas后端連接的MySQL從庫的IP和端口,@后面的數(shù)字代表權重,用來作負載均衡,若省略則默認為1,可設置多項,用逗號分隔proxy-read-only-backend-addresses=81:3306@1#用戶名與其對應的加密過的MySQL密碼,密碼使用PREFIX/bin目錄下的加密程序encrypt加密,下行的user1和user2為示例,將其替換為你的MySQL的用戶名和加密密碼!pwds=atlas:/iZxz+0GRoA=#設置Atlas的運行方式,設為true時為守護進程方式,設為false時為前臺方式,一般開發(fā)調(diào)試時設為false,線上運行時設為true,true后面不能有空格。daemon=true#設置Atlas的運行方式,設為true時Atlas會啟動兩個進程,一個為monitor,一個為worker,monitor在worker意外退出后會自動將其重啟,設為false時只有worker,沒有monitor,一般開發(fā)調(diào)試時設為false,線上運行時設為true,true后面不能有空格。keepalive=true#工作線程數(shù),對Atlas的性能有很大影響,可根據(jù)情況適當設置event-threads=8#日志級別,分為message、warning、critical、error、debug五個級別log-level=message#日志存放的路徑log-path=/usr/local/mysql-proxy/log#SQL日志的開關,可設置為OFF、ON、REALTIME,OFF代表不記錄SQL日志,ON代表記錄SQL日志,REALTIME代表記錄SQL日志且實時寫入磁盤,默認為OFF#sql-log=OFF#慢日志輸出設置。當設置了該參數(shù)時,則日志只輸出執(zhí)行時間超過sql-log-slow(單位:ms)的日志記錄。不設置該參數(shù)則輸出全部日志。#sql-log-slow=10#實例名稱,用于同一臺機器上多個Atlas實例間的區(qū)分#instance=test#Atlas監(jiān)聽的工作接口IP和端口proxy-address=:1234#Atlas監(jiān)聽的管理接口IP和端口admin-address=:2345#分表設置,此例中person為庫名,mt為表名,id為分表字段,3為子表數(shù)量,可設置多項,以逗號分隔,若不分表則不需要設置該項#tables=person.mt.id.3#默認字符集,設置該項后客戶端不再需要執(zhí)行SETNAMES語句#charset=utf8#允許連接Atlas的客戶端的IP,可以是精確IP,也可以是IP段,以逗號分隔,若不設置該項則允許所有IP連接,否則只允許列表中的IP連接#client-ips=,192.168.1#Atlas前面掛接的LVS的物理網(wǎng)卡的IP(注意不是虛IP),若有LVS且設置了client-ips則此項必須設置,否則可以不設置#lvs-ips=啟動/usr/local/mysql-proxy/bin/mysql-proxydteststart關閉/usr/local/mysql-proxy/bin/mysql-proxydteststop五、Atlas參數(shù)備注instance參數(shù)同一臺機器上的多個Atlas實例,使用不同的端口,對應不同數(shù)據(jù)庫,使用各自的配置文件默認的黑白名單不帶where的delete會屏蔽,"sleep"會屏蔽備注:1.03版本已經(jīng)支持setautocommit語句,另外對于python來說需要在連接上后執(zhí)行一句conn.autocommit(True)pwds參數(shù)配置MySQL用戶名和對應的加密過的MySQL密碼,密碼使用/usr/local/mysql-proxy/bin/encrypt程序進行加密,用戶名和密碼用冒號分開,可以使用多個用戶,用逗號空格
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Nor-6α-Oxycodol-生命科學試劑-MCE
- 科技公司如何通過網(wǎng)絡直播提高用戶參與度?-策略分析與探討
- 科技改變生活基于AI的辦公樓智能安全管理
- 生命教育與心理健康的相互促進
- 社交電商行業(yè)教育市場的發(fā)展策略研究
- 社區(qū)文化對物業(yè)服務的創(chuàng)新推動
- 香燭購銷合同范本
- 科技助力下的醫(yī)療廢物無害化處理
- 美國水電合同范本
- 整改監(jiān)控合同范本
- Opera、綠云、西軟、中軟酒店管理系統(tǒng)對比分析
- 第二章政府審計組織與審計法律規(guī)范
- 楚才辦公室裝修設計方案20140315
- 人教版八年級(上冊)物理習題全集(附答案)
- 電影院影務崗位工作流程
- 畢業(yè)論文牛仔布染色工藝和質(zhì)量控制
- 計數(shù)的基本原理說課
- 機器視覺論文(英文)
- 高中學生秧田式課堂座位管理探究
- 初中花城版八年級下冊音樂6.軍港之夜(15張)ppt課件
- 《供應鏈管理》讀書筆記
評論
0/150
提交評論