




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
3-61上午視頻看到22分鐘,31分鐘后無用MysqlAB復制netstat-antup查看哪個端口對應的服務需要binglog.txt文件============================================================================簡介為什么要做這個事情,是因為我們有這樣的需求,為了做備份時對業務的影響最小,不管熱備也好冷備也好,都會對業務有一定的影響,怎么能對業務完全沒有影響。這是做AB復制的第一種原因,解決方法是“分到另外一臺服務器和主服務器同步唄”,我課上搶答道。。。吼吼。數據同步后,用B做備份就可以了,不會影響A上的業務速度。第二個原因針對數據庫是讀的業務多,讀的時候當壓力特別大時,要把壓力分攤下去,緩解一臺mysql承受太多的查詢請求。完全復制出一臺一樣的mysql作為輔助服務器,來分流查詢請求,兩臺服務器的數據完全同步。ABB復制abc得改一個參數b不但是主,用binlog當網站讀的壓力很大時,可以用abb,abbbb….,但是要求只允許一個b從a復制,其他b從第一個b復制.ABC復制abc是節省兩個機房之間的帶寬,a是一個機房,b是一個機房其他機房從b復制,節省了ab之間的===========================================================================ab復制的原理在對master進行數據操作時,如果開啟了binlog這些操作會實時的記錄到binlog.txt里面。binlog里面記錄了在什么時間,在什么位置,執行了什么sql語句操作。那么這樣想一下,如果binlog如果能傳遞到slave上就可以復制了先讓master給slave開一個復制的權限,讓slave能夠遠程連接到master(因為mysql默認是不允許遠程連接的)。然后slave就可以下載master的binlog數據。下載binlog的任務是由slave上的I/O線程完成。下載完成后,MysqlB會把binlog文件的內容寫到本地的一個文件Replaylog。然后通過本地的一個SQL線程,把Relaylog文件執行一遍AB復制完成,此時AB兩臺主機的數據完全同步總之關鍵原理就是用binlog再次執行一次,master上要開binlog,slave上開不開binlog無所謂。master要不開binlog那就沒得玩兒了,沒法做AB復制。特殊情況假設現在slave服務停了后,master里又有一個動作,createdatabaseXX,然后再啟動slave,信息已經不同步了。這時,利用slave里的一個文件,這里面記錄了binlog文件已經下載到哪個位置了(at40)。比如里記錄到at40,而master記錄到了at60,很明顯不一致,說明數據更新過,這時就會把沒記錄的部分下載過binlog來,再執行一遍。問題IO線程是實時監控,實時下載binlog文件的更新內容嘛?==========================================================================實例演示做一個AB可以看視頻4.1 指定哪臺是主服務器,哪臺是輔助服務器master: vim/etc/f [mysqld]server_id=1slave: vim/etc/f [mysqld]server_id=2如果還有slave,server_id以此類推-----------------------------------------4.2master: vim/etc/f [mysqld]server_id=1log-bin=binloglog-bin-index=binlog.index-----------------------------------------------------------4.3slave: vim/etc/f [mysqld] server_id=2#因為數據要寫到本地的relay-log,所以要設置relay-log的存放路徑。relay-log的索引文件是什么 relay_log=/var/lib/mysql/mysql-relay-bin relay_log_index=/var/lib/mysql/mysql-relay-bin.index----------------------------------------------4.4 master&&slave servicemysqldrestart----------------------------------------------4.5 master: kyo是你隨便指定的用戶名,不用事先創建。mysql>GRANTreplicationslaveON*.*TO'kyo'@'%'identifiedby'123';QueryOK,0rowsaffected(0.05sec)注意!大小寫mysql>flushprivileges;QueryOK,0rowsaffected(0.00sec)##################################################slave:刪除所有表,slave上應該什么都沒有,重新初始化后/var/lib/mysql會重新生成文件 cd/var/lib/mysql rm-fr* servicemysqldrestartmaster:這一步是考慮到,你現在兩邊的數據不一樣,這時slave不知道從binlog的哪個位置開始取數據,所以要先做個同步導出所有數據庫-x提出請求鎖定所有數據庫中的所有表,以保證一致性 mysqldump-A-x>/tmp/full.sql—A scp/tmp/full.sqlroot@salveip:/tmp/將數據庫文件復制給slaveslave: mysql</tmp/full.sql做完同步后,此時不要再有數據的寫入,不然slave又不知道該從binlog的哪個位置讀取數據了********************4.6******************************master: mysql>flushtableswithreadlock;將數據庫加上讀鎖,只允許讀操作 mysql>showmasterstatus;查看一下binlog你就可以知道master日志寫到哪個位置了,你在B上就知道從哪兒開始往下索要數據了+---------------+----------+--------------+------------------+|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|+---------------+----------+--------------+------------------+|binlog.000003|295|||mysql>unlocktables;現在可以解鎖了,已經知道寫到哪里了--------------------------------------------4.6slave:這一步指定主服務器的信息,如果某一個打錯了,就可能數顯IOrunning為NO的狀態!!創建masterinfo文件,在A上查的binlog位置信息填到下面。mysql>changemastertomaster_host='25',master_port=3306,master_user='kyo',master_password='123',master_log_file='binlog.000003',master_log_pos=295;如果有一天你覺得B不好用了,要重新配置ab復制,要先把刪掉然后再進行配置,否則不生效。這條命令重啟系統后不用再敲,他已經寫入文件了。mysql>startslave;開啟B--------------------------------------------------------4.7slave: AB復制,B使用的就是這兩個線程完成這項工作。 mysql>showslavestatus\G Slave_IO_Running:YesSlave_SQL_Running:Yes注意!生產環境中,兩臺mysql的版本盡量要一直,否則會出一些老師都解決不了的問題。注意!IO線程會一直長連接,只要master有操作就立刻更新,如果斷開的話,60內會嘗試重新連接注意!在slave上不能進行增刪改的操作,可以進行查。如果你覺得不安全,你可以把寫入主配置文件。可能出現的問題!Slave_IO_runningnoIO線程沒有開啟,可能是由于防火墻,服務沒開啟,端口被占用,網絡不通等原因-----------------------------------------------步驟總結寫配置文件,規定主輔分別是誰。A開啟日志功能,B設置relay-log存放路徑,relay-log索引存放路徑給B授權(slave)給A加讀鎖備份、導入數據庫查看A的binlog到哪個位置了B開啟買masterinfo功能B開啟slave功能--------------------------------------------查看B的狀態,兩個線程都開了,就說明ok,查看數據庫數據是否同步完成!老師出的題做ABB,但是不能對A進行任何操作,不能影響在線業務。注意,他們倆的主都是A。ABB我做出來了!其實主要步驟就是這兩步,也是整個AB復制核心的兩步:把B1鎖上。查看B1的狀態showslavestatus要這個倆參數Master_Log_File:binlog.XXXX、Exec_Master_Log_Pos:XXX備份數據庫,導入到B2B1:unlocktablesB2:changemaster同樣設定A為主B2:startslave總結他其實就是B1在鎖上的時候當前最新讀到masterbinlog上哪個位置。其實復制只要做到備份已有的和知道binlog哪里讀就可以了。兩者要嚴絲合縫,否則中間會漏數據,所以要在鎖上以后再查看slave狀態。最后沒有更新可能是以下問題沒給用戶授權。沒重啟服務。沒startslaveABCB的主是A,C的主是B可以試著做一下。B不光要開binlog,還要保留傳過來的數據。得改一個參數。ABC的必要性就是,A和B如果不是同一個機房,C如果再從A拿數據帶寬壓力就會增大,如果若干個C都這么干,帶寬就會崩潰。ABC主要就是為了節省帶寬的。ABC現在是比較老的方法,不知道有沒有新方法3月8日梁哥做了一個AB我做了一個B加進去,AB先鎖表,導出所有數據到B,然后B的server_id應該為3(挨個往后排),然后開始做輔助(startslave)。====================================================================下午mysql讀寫分離圖1用mysql解決兩個php文件圖2用ameba分發器解決總體步驟1升級java生產環境下一般都是1.51.6 2不能啟動,添加三行環境變量,再啟動登陸或重啟后生效修改/root/.bash_profile或source/root/.bash_profile不重新加載配置文件,版本號可能不會變正確! java-version 若果改完后還不行,把老師給的文件直接覆蓋3創建復制粘貼就安裝完了創建一個目錄/usr/local/amoeba4修改配置文件/usr/local/amoeba.xmlvimamoeba.xml修改三個地方<propertyname="ipAddress">5</property><propertyname="user">admin</property<propertyname="password">123</property>另外檢查一下端口設置,是否是mysql的默認端口3306<propertyname="port">3306</property>修改配置文件/usr/local/dbserver.xml這個文件規定我如何連接后端數據庫<!--mysqluser-->26<propertyname="user">mary</property>這個名字和上面的文件里的沒關系2728<!--mysqlpassword29<propertyname="password">password</property>30-->31<propertyname="password">123</property>44<dbServername="Master"parent="abstractServer">45<factoryConfig>46<!--mysqlip-->47<propertyname="ipAddress">86</property>50<dbServername="Slave1"parent="abstractServer">51<factoryConfig>52<!--mysqlip-->53<propertyname="ipAddress">26</property>54</factoryConfig>55</dbServer>56<dbServername="Slave2"parent="abstractServer
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車間安全生產協議書
- 防止股東競爭協議書
- 買賣房車庫合同協議書
- 體育生紀律管理協議書
- 勞動培訓簽服務協議書
- ktv股東合同協議書
- 餐館合股開店協議書
- 鋁礦施工合作協議書
- 購車簽訂免責協議書
- 黃山定點醫藥協議書
- 中國鐵路西安局招聘高校畢業生考試真題2024
- (五調)武漢市2025屆高三年級五月模擬訓練生物試卷(含答案)
- 2023北京初三一模數學試題匯編:代數綜合(第26題)
- 畢業設計產品包裝設計
- 2025-2030年中國服務器行業市場深度調研及前景趨勢與投資研究報告
- 安全生產月活動查找身邊安全隱患人人講安全個個會應急課件
- 2025年1月浙江省高考英語試卷(含答案解析)+聽力錄音稿+聽力音頻
- 【MOOC】線性代數-浙江大學 中國大學慕課MOOC答案
- 江蘇省啟東市高中數學 第二章 平面向量 第6課時 2.3.2 向量的坐標表示(1)教案 蘇教版必修4
- 社會主義發展簡史智慧樹知到課后章節答案2023年下北方工業大學
- 化工原理課程設計-吸收塔
評論
0/150
提交評論