MySQL主從同步讀寫分離的叢集配置
大型網站為了解決大量的高併發訪問問題,除了在網站實現分散式負載均衡,遠遠不夠。到了資料業務層、資料訪問層,如果還是傳統的資料結構,或者只是單單靠一臺伺服器支援,如此多的資料庫連線操作,伺服器效能再好資料庫必然會崩潰。資料丟失的話,後果更是不堪設想。這時候,我們會考慮如何減少資料庫的連線,一方面採用優秀的程式碼框架,進行程式碼的優化,採用優秀的資料快取技術如:memcached等。如果資金充足的話,必然會想到假設伺服器叢集,來分擔主資料庫的壓力。或者在硬體裝置上,投入大量資金,購買高效能的伺服器。出名的有f5,硬體負載,軟體負載等。
Ok切入今天的主題,利用MySQL主從配置,實現讀寫分離,減輕資料庫壓力。這種方式,在如今很多網站裡都有使用,也不是什麼新鮮事情,今天總結一下,方便大家學習參考一下。
讀寫分離:
1.多個伺服器肯定比一個伺服器好。
2.在資料庫寫入的時候,會加入大量的鎖(排它鎖,共享鎖等等),從而影響效能。
3.資料更安全,多資料庫存在備份資料。
搭建環境:
1.搭設一臺Master伺服器(win7系統64bit,Ip:10.10.2.33)
2.一臺臺Slave伺服器(winXp系統32bit,ip:10.10.2.157)
原理:主伺服器(Master)負責網站寫操作,從伺服器負責查詢操作。主從伺服器利用MySQL的二進位制日誌檔案,實現資料同步。二進位制日誌由主伺服器產生,從伺服器響應獲取同步資料庫。
mysql中有好幾種日誌方式,我們只要啟動二進位制日誌log-bin就ok。在[mysqld]下面增加下面幾行程式碼
Ok切入今天的主題,利用MySQL主從配置,實現讀寫分離,減輕資料庫壓力。這種方式,在如今很多網站裡都有使用,也不是什麼新鮮事情,今天總結一下,方便大家學習參考一下。
讀寫分離:
1.多個伺服器肯定比一個伺服器好。
2.在資料庫寫入的時候,會加入大量的鎖(排它鎖,共享鎖等等),從而影響效能。
3.資料更安全,多資料庫存在備份資料。
搭建環境:
1.搭設一臺Master伺服器(win7系統64bit,Ip:10.10.2.33)
2.一臺臺Slave伺服器(winXp系統32bit,ip:10.10.2.157)
原理:主伺服器(Master)負責網站寫操作,從伺服器負責查詢操作。主從伺服器利用MySQL的二進位制日誌檔案,實現資料同步。二進位制日誌由主伺服器產生,從伺服器響應獲取同步資料庫。
-- 在主伺服器上建立為10.10.2.157一個dbadmin使用者,密碼為123456
-- CREATE USER 'dbadmin'@'10.10.2.157' IDENTIFIED BY '123456';
-- 為使用者dbadmin賦從複製許可權(如果不想建立使用者的話,可以使用root使用者)。
-- grant replication slave,replication client on *.* to 'slave'@'10.10.2.157' identified by 'dbadmin';
-- 鎖定所有表的寫操作
-- flush tables with read lock;
-- 顯示主伺服器的狀態
-- show master status;
-- 更改從伺服器從主的二進位制檔案mysql-test-bin.000002中的8042位置開始同步
-- change master to master_host='10.10.2.33', master_user='slave', master_password='root', master_log_file='mysql-test-bin.000002', master_log_pos=8042;
-- 開始同步
-- start slave;
-- 顯示同步狀態
-- show slave status;
-- 放開鎖定的所有表
-- unlock tables;
在主伺服器上找到my.ini檔案(版本不同可能檔名字不同,如:my.cnf)。mysql中有好幾種日誌方式,我們只要啟動二進位制日誌log-bin就ok。在[mysqld]下面增加下面幾行程式碼
server-id=1 //給資料庫服務的唯一標識,一般為大家設定伺服器Ip的末尾號
log-bin=master-bin
log-bin-index=master-bin.index
binlog-do-db=test 需要同步的資料庫 如果有不需要同步的資料庫可以用binlog_ignore_db,兩個都不設定,則全部同步
auto_increment_offset=1 避免主鍵衝突重新設定自增主鍵的初始值
auto_increment_increment=2 自增主鍵的增量
expire_logs_days=1 設定log過期時間為兩天,只保留兩天的log日誌
log_bin_trust_function_creators=1 給函式賦值許可權
在從的伺服器上也找到my.ini檔案。在[mysqld]下面增加下面幾行程式碼server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
auto_increment_offset=2 自增主鍵的初始值
auto_increment_increment=2 自增主鍵的增量
歡迎大家關注我的部落格!如有疑問,請加QQ群:454796847共同學習!相關文章
- 配置\清除 MySQL 主從 讀寫分離MySql
- [PHP]Larval主從讀寫分離配置PHP
- MYSQL 主從 + ATLAS 讀寫分離 搭建MySql
- MySQL主從複製讀寫分離MySql
- 搭建Redis“主-從-從”模式叢集並使用 RedisTemplate 實現讀寫分離Redis模式
- MySQL主從複製與讀寫分離MySql
- [Mysql]主從複製和讀寫分離MySql
- MySQL怎麼實現主從同步和Django實現MySQL讀寫分離MySql主從同步Django
- docker 配置 Mysql主從叢集DockerMySql
- 搭建Redis簡易叢集實現主從複製和讀寫分離Redis
- 搭建MySQL主從實現Django讀寫分離MySqlDjango
- Mysql-主從複製與讀寫分離MySql
- 資料庫讀寫分離,主從同步實現方法資料庫主從同步
- Amoeba for MySQL讀寫分離配置MySql
- MySQL從庫卡主了--讀寫分離也不能亂讀MySql
- Mysql讀寫分離叢集的搭建且與MyCat進行整合MySql
- DM7搭建讀寫分離叢集
- linux 安裝mysql和主從配置 + Spring 基於註解配置mysql讀寫分離LinuxMySqlSpring
- Mycat中介軟體實現Mysql主從讀寫分離MySql
- MySQL運維15-一主一從讀寫分離MySql運維
- MySQL運維16-雙主雙從讀寫分離MySql運維
- docker+mysql叢集+讀寫分離+mycat管理+垂直分庫+負載均衡DockerMySql負載
- MySQL 高可用架構:主從備份及讀寫分離MySql架構
- Redis主從同步叢集搭建Redis主從同步
- 帶貨直播系統,透過主從同步實現讀寫分離主從同步
- Spring+Hibernate框架下MySql讀寫分離,主從資料庫配置 (轉)Spring框架MySql資料庫
- MySQL主從同步配置MySql主從同步
- Linux系統MySQL配置主從分離LinuxMySql
- MySQL主從複製架構搭建及讀寫分離測試MySql架構
- 讀寫分離的的資料同步?
- MySQL Amoeba讀寫分離MySql
- Amoeba for mysql讀寫分離MySql
- MySQL讀寫分離AtlasMySql
- mycat結合MySQL的雙主實現讀寫分離MySql
- 安裝Centos7 、 Mysql8 叢集,實現讀寫分離 高可用(五)-- MyCat配置詳解CentOSMySql
- Mycat讀寫分離、主從切換、分庫分表的操作記錄
- MySQL主從分離實現MySql
- DM8動態增加讀寫分離叢集節點