首頁 資料庫 mysql教程 mysql的主从复制与半同步复制(一)

mysql的主从复制与半同步复制(一)

Jun 07, 2016 pm 05:38 PM
mysql主從複製 半同步複製

一、mysql的主从复制复制过程需要至少两个mysql服务节点,mysql的主从复制框架一般都为一主多从,从多机房汇总到数据中心的模式,而复制过程只能从主服务器到从

一、mysql的主从复制

复制过程需要至少两个mysql服务节点,mysql的主从复制框架一般都为一主多从,,从多机房汇总到数据中心的模式,而复制过程只能从主服务器到从服务器实现。

复制过程中,主服务器负责读/写操作,而从服务器只负责读操作

二、主从复制的功能

1、实现数据冗余、异地灾备恢复、备份

2、实现数据的读/写分离

3、实现数据库服务的负载均衡

4、实现高可用与故障切换

5、实现MySQL的升级测试

三、主从复制过程中注意的事项

1、不要混合shi用不同的存储引擎

2、主从服务器的server-id 要保持不同

3、尽力避免修改从服务器的数据库

4、尽可能的使用基于行或基于混合模式的复制,避免使用基于语句的复制

5、主服务器要启动二进制日志,而从节点则是开启中继日志,而且要确保从服务器的复制线程时刻开启着

6、注意因为磁盘及内存的大小不足而导致的复制崩溃

四、主从复制的具体实现过程

mysql主从复制拓扑图

212339331.jpg

1、准备两个安装过mysql服务的节点xz:172.16.200.5,node2:172.16.200.7,修改主机名并同步时间;

[root@xz ~]# hostname master [root@master ~]# crontab -e */1 * * * * /usr/sbin/ntpdate 172.16.0.1 &> /dev/null [root@node2 ~]# hostname slave [root@slave ~]# crontab -e */1 * * * * /usr/sbin/ntpdate 172.16.0.1 &> /dev/null

2、在主节点上创建有复制权限的用户,于从节点上使用授权用户连接测试;


[root@master ~]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.5.33-log MySQL Community Server (GPL) 。。。。。 mysql> grant replication slave,replication client on *.* to 'zly'@'172.16.200.7' identified by 'mypass'; Query OK, 0 rows affected (0.35 sec) mysql> flush privileges; Query OK, 0 rows affected (0.09 sec) mysql> show grants for 'zly'@'172.16.200.7'; +-----------------------------------------------------------------------------------------------------------------------------------------------+ | Grants for zly@172.16.200.7 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ | GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'zly'@'172.16.200.7' IDENTIFIED BY PASSWORD '*6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4' | +-----------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.03 sec) ........... [root@slave ~]# mysql -uzly -pmypass -h 172.16.200.5 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.5.33-log MySQL Community Server (GPL) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

3、修改主从两个节点的配置文件,并重新启动mysql服务;

[root@master ~]# vim /etc/my.cnf log-bin=mysql-bin log_bin_index = mysql_bin.index binlog_format=mixed server-id = 5 [root@master ~]# killall mysqld [root@master ~]# ps aux | grep mysqld root 7700 0.0 0.1 103244 832 pts/3 S+ 09:27 0:00 grep mysqld [root@master ~]# service mysqld restart MySQL server PID file could not be found! [FAILED] Starting MySQL... [ OK ] [root@master ~]# service mysqld restart Shutting down MySQL. [ OK ] Starting MySQL.. [ OK ] ............... [root@slave ~]# vim /etc/my.cnf #log-bin=mysql-bin # binary logging format - mixed recommended #binlog_format=mixed skip_slave_start = 1 read_only = 1 relay_log = relay_log relay_log_index = relay_log.index # required unique id between 1 and 2^32 - 1 # defaults to 1 if master-host is not set # but will not function as a master if omitted server-id = 7 [root@slave ~]# killall mysqld [root@slave ~]# ps aux | grep mysqld root 8796 0.0 0.1 103244 832 pts/4 S+ 23:45 0:00 grep mysqld [root@slave ~]# service mysqld restart MySQL server PID file could not be found! [FAILED] Starting MySQL.. [ OK ] [root@slave ~]# service mysqld restart Shutting down MySQL. [ OK ] Starting MySQL.. [ OK ]

4、查看主节点的二进制日志及其事件位置;

mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000011 | 107 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)

5、与从节点上复制主节点上的数据;

[root@slave ~]# mysql mysql> help change master to Name: 'CHANGE MASTER TO' Description: Syntax: CHANGE MASTER TO option [, option] ... option: MASTER_BIND = 'interface_name' | MASTER_HOST = 'host_name' | MASTER_USER = 'user_name' | MASTER_PASSWORD = 'password' | MASTER_PORT = port_num | MASTER_CONNECT_RETRY = interval | MASTER_HEARTBEAT_PERIOD = interval | MASTER_LOG_FILE = 'master_log_name' | MASTER_LOG_POS = master_log_pos | RELAY_LOG_FILE = 'relay_log_name' | RELAY_LOG_POS = relay_log_pos | MASTER_SSL = {0|1} | MASTER_SSL_CA = 'ca_file_name' | MASTER_SSL_CAPATH = 'ca_directory_name' | MASTER_SSL_CERT = 'cert_file_name' | MASTER_SSL_KEY = 'key_file_name' | MASTER_SSL_CIPHER = 'cipher_list' | MASTER_SSL_VERIFY_SERVER_CERT = {0|1} | IGNORE_SERVER_IDS = (server_id_list) server_id_list: [server_id [, server_id] ... ] ........................................ mysql> change master to -> master_host='172.16.200.5',master_user='zly',master_password='mypass ',master_port=3306,master_log_file='mysql-bin.000011',master_log_pos=107; Query OK, 0 rows affected (0.07 sec)

6、启动从服务器复制线程、查看状态,并查看启动的线程;

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

資料備份與故障復原:MySQL主從複製在叢集模式下的重要性探討 資料備份與故障復原:MySQL主從複製在叢集模式下的重要性探討 Sep 08, 2023 am 09:03 AM

資料備份與故障復原:MySQL主從複製在叢集模式下的重要性探討引言:近年來,隨著資料規模和複雜性的不斷增長,資料庫的備份和故障復原變得尤為重要。在分散式系統中,MySQL主從複製在叢集模式下被廣泛應用,以提供高可用性和容錯性。本文將探討MySQL主從複製在叢集模式下的重要性,並給出一些程式碼範例。一、MySQL主從複製的基本原理及優勢MySQL主從複製是一種通

優化資料庫效能:MySQL主從複製在叢集技術中的最佳使用方法 優化資料庫效能:MySQL主從複製在叢集技術中的最佳使用方法 Sep 10, 2023 am 08:24 AM

優化資料庫效能:MySQL主從複製在叢集技術中的最佳使用方法摘要:隨著互聯網的快速發展,資料庫的效能問題成為了各個企業和組織關注的焦點。 MySQL主從複製技術在解決資料庫效能瓶頸方面發揮重要作用。本文將介紹MySQL主從複製的概念及原理,以及在叢集技術中的最佳使用方法,幫助讀者最佳化資料庫效能。一、引言隨著資料量不斷增加,資料庫的效能問題日益突出。如何優化數

從容應對高並發:MySQL主從複製作為叢集技術的效能優勢分析 從容應對高並發:MySQL主從複製作為叢集技術的效能優勢分析 Sep 10, 2023 pm 03:48 PM

從容應對高並發:MySQL主從複製作為叢集技術的效能優勢分析隨著網路的快速發展,使用者對於網站和應用程式的訪問量呈現出爆炸性成長的趨勢。在這種高並發的情況下,如何確保系統的穩定性和效能成為了每個開發人員和系統管理員的重要任務。在資料庫中,MySQL主從複製技術被廣泛應用,成為了應對高並發的有效解決方案之一。本文將探討MySQL主從複製作為叢集技術的效能優勢。首先

解密MySQL主從複製:揭秘其叢集模式下的關鍵實作機制 解密MySQL主從複製:揭秘其叢集模式下的關鍵實作機制 Sep 10, 2023 am 09:28 AM

解密MySQL主從複製:揭秘其叢集模式下的關鍵實作機制引言:在現代資料庫系統中,資料的高可用性和靈活性是非常重要的。 MySQL作為一款開源的關聯式資料庫管理系統,在滿足使用者需求方面具有廣泛的應用性。而MySQL的主從複製是MySQL資料庫架構中非常關鍵的一部分,用於實現資料的備份和高可用性。本文將聚焦在MySQL主從複製的關鍵實作機制,特別是其在叢集模式下

如何透過使用半同步複製來提高MySQL的效能 如何透過使用半同步複製來提高MySQL的效能 May 11, 2023 am 10:21 AM

隨著網際網路的不斷發展,資料量的爆炸性成長使得資料庫成為眾多網站、應用程式和系統的核心元件。而MySQL作為一種開源的關係型資料庫管理系統,其穩定性、可靠性及性價比等方面的優勢使得它成為了業界廣泛使用的首選資料庫。然而在實際生產環境中,隨著資料量的成長,MySQL的效能問題也逐漸暴露出來。尤其是在大型企業應用程式中,大量資料的讀寫、高並發的請求、以及資料的可靠性等要求

MySQL主從複製屬於叢集技術還是負載平衡技術?解析和區別 MySQL主從複製屬於叢集技術還是負載平衡技術?解析和區別 Sep 10, 2023 am 08:40 AM

MySQL主從複製屬於叢集技術還是負載平衡技術?解析和區別摘要:MySQL主從複製是一種資料庫複製技術,用於在多個伺服器上同步資料庫的資料。本文將從技術原理、應用場景和功能特性等方面來解析和區分MySQL主從複製與叢集技術以及負載平衡技術的差異。引言:在現代互聯網應用中,資料庫的高可用性和擴展性是至關重要的。 MySQL主從複製是一種常見的解決方案之一,但是,

詳解MySQL主從複製在叢集技術中發揮的功能與優勢 詳解MySQL主從複製在叢集技術中發揮的功能與優勢 Sep 09, 2023 am 09:03 AM

詳解MySQL主從複製在叢集技術中發揮的功能和優勢引言MySQL是一款功能強大的關聯式資料庫管理系統,廣泛應用於各種大型網站和應用程式。隨著資料量的增加和存取請求的增加,單一MySQL伺服器的壓力也逐漸增大,為了提高資料庫的效能和可靠性,人們開始採用叢集技術,其中MySQL主從複製就是其中一種常用的技術手段。 MySQL主從複製原理MySQL主從複製是指將一

挖掘MySQL主從複製的叢集技術潛力:開源方案與商業解決方案比較評估 挖掘MySQL主從複製的叢集技術潛力:開源方案與商業解決方案比較評估 Sep 08, 2023 pm 07:16 PM

挖掘MySQL主從複製的叢集技術潛力:開源方案與商業解決方案比較評估隨著互聯網業務的不斷發展和資料量的不斷增加,對於資料庫叢集方案的需求也日益強大。 MySQL主從複製技術正好滿足了這個需求,它能夠將資料庫的讀寫操作在多個節點上分別處理,提高了資料庫的讀取效能和可用性。本文將對MySQL主從複製的叢集技術潛力進行挖掘,並對開源方案和商業解決方案進行比較評估

See all articles