#MYSQL單節點的mysql遠遠不能滿於生成,以防止生產服務器宕機,磁盤空間溢滿等種種緣由,須要有一個備用數據庫,mysql
這時候主從庫是不錯的選擇,在是數據庫集羣中也起到了很大的做用sql
#MySQL 主從複製概念:shell
MySQL 主從複製是指數據能夠從一個MySQL數據庫服務器主節點複製到一個或多個從節點。MySQL 默認採用異步複製方式,這樣從節點不用一直訪問主服務器來更新本身的數據,數據的更新能夠在遠程鏈接上進行,從節點能夠複製主數據庫中的全部數據庫或者特定的數據庫,或者特定的表。數據庫
#通常主從架構服務器
一主一從和一主多從是最多見的主從架構,實施起來簡單而且有效,不只能夠實現HA,並且還能讀寫分離,進而提高集羣的併發能力。架構
多主一從能夠將多個mysql數據庫備份到一臺存儲性能比較好的服務器上併發
雙主複製
異步
雙主複製,也就是互作主從複製,每一個master既是master,又是另一臺服務器的slave。這樣任何一方所作的變動,都會經過複製應用到另一方的數據庫中性能
級聯複製模式下,部分slave的數據同步不鏈接主節點,而是鏈接從節點。由於若是主節點有太多的從節點,就會損耗一部分性能用於replication,那麼咱們可讓3~5個從節點鏈接主節點,其它從節點做爲二級或者三級與從節點鏈接,這樣不只能夠緩解主節點的壓力,而且對數據一致性沒有負面影響。spa
1.主從服務器要求
(1)版本一致
(2)初始化表,並在後臺啓動mysql
(3)可供mysql用戶
2.主庫配置
2.從庫配置,從庫不配置日誌也是能夠的,只配置server_id便可知足
3.查看主庫的日誌信息
mysql>show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000004 | 308 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
4.重啓主從庫,配置從庫的slave
mysql>change master to master_host='192.168.145.222',master_user='mysync',master_password='q123456', master_log_file='mysql-bin.000004',master_log_pos=308; //注意不要斷開,308數字先後無單引號。 Mysql>start slave; //啓動從服務器複製功能
5.查看從庫複製功能狀態
mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.2.222 //主服務器地址 Master_User: mysync //受權賬戶名,儘可能避免使用root Master_Port: 3306 //數據庫端口,部分版本沒有此行 Connect_Retry: 60 Master_Log_File: mysql-bin.000004 Read_Master_Log_Pos: 600 //#同步讀取二進制日誌的位置,大於等於Exec_Master_Log_Pos Relay_Log_File: ddte-relay-bin.000003 Relay_Log_Pos: 251 Relay_Master_Log_File: mysql-bin.000004 Slave_IO_Running: Yes //此狀態必須YES Slave_SQL_Running: Yes //此狀態必須YES
注:Slave_IO及Slave_SQL進程必須正常運行,即YES狀態,不然都是錯誤的狀態(如:其中一個NO均屬錯誤)。
6.進行驗證,在主庫建表,從庫會同步數據過來,可編寫shell腳本監控salve兩個yes(Slave_IO及Slave_SQL進程),如發現只有一個或零個yes,就代表主從有問題了,發短信警報吧。