程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL Replication(Master與Slave基本原理)

MySQL Replication(Master與Slave基本原理)

編輯:MySQL綜合教程

  MySQL Replication(Master與Slave基本原理及配置)

  1. 主從mysql server的工作原理:(如圖及其過程分析)

  過程:

  Mysql的復制(replication)是一個異步的復制,從一個Mysql instace(稱之為Master)復制到另一個Mysql instance(稱之Slave)。實現整個復制操作主要由三個進程完成的,其中兩個進程在Slave(Sql進程和IO進程),另外一個進程在 Master(IO進程)上。

  要實施復制,首先必須打開Master端的binary log(bin-log)功能,否則無法實現。因為整個復制過程實際上就是Slave從Master端獲取該日志然後再在自己身上完全順序的執行日志中所記錄的各種操作。

  復制的基本過程如下:

  (1)Slave上面的IO進程連接上Master,並請求從指定日志文件的指定位置(或者從最開始的日志)之後的日志內容;

  (2)Master接收到來自Slave的IO進程的請求後,通過負責復制的IO進程根據請求信息讀取制定日志指定位置之後的日志信息,返回給 Slave 的IO進程。返回信息中除了日志所包含的信息之外,還包括本次返回的信息已經到Master端的bin-log文件的名稱以及bin-log的位置;

  (3)Slave的IO進程接收到信息後,將接收到的日志內容依次添加到Slave端的relay-log文件的最末端,並將讀取到的 Master端的 bin-log的文件名和位置記錄到master-info文件中,以便在下一次讀取的時候能夠清楚的高速Master“我需要從某個bin-log的哪個位置開始往後的日志內容,請發給我”;

  (4)Slave的Sql進程檢測到relay-log中新增加了內容後,會馬上解析relay-log的內容成為在Master端真實執行時候的那些可執行的內容,並在自身執行。

  好了,了解了其原理後就讓我們來安裝mysql及配置主從mysql 服務器吧

  為了使用方便,和使mysql的功能更優一點我們使用二進制包安裝,下載地址(需要注冊,免費):http://www.mysql.com/downloads/mysql/

  2. 二進制安裝mysql(過程不做詳細解釋):

  #解壓包及做鏈接

  tar xvf mysql-5.1.50-linux-i686-glibc23.tar.gz /usr/local

  cd /usr/local

  ln -sv mysql-5.1.50-linux-i686-glibc23.tar.gz mysql

  cd mysql

  #增加用戶及該權限(-r :加一系統用戶)

  groupadd mysql

  useradd -g mysql -s /sbin/nologin -M -r mysql

  mkdir /mysql/data

  chown -R mysql.mysql /mysql/data

  cd /usr/local/mysql

  chown mysql:mysql . -R

  # 初始化mysql配置

  scripts/mysql_install_db --user=mysql --datadir=/mysql/data

  chown root . -R

  chown mysql data/ -R

  cp support-files/my-large.cnf /etc/my.cnf

  vim /etc/my.cnf

  datadir = /mysql/data #加入這一行

  # 啟動mysql

  bin/mysqld_safe --user=mysql &

  netstat -nutlp | grep 3306

  # 使其可以使用mysql命令

  vim /etc/profile

  #add

  PATH=$PATH:/usr/local/mysql/bin

  . /etc/profile #重讀配置文件

  # 加載庫函數

  vim /etc/ld.so.conf.d/mysql.conf

  #add

  /usr/local/mysql/lib

  ldconfig -v

  ln -sv /usr/local/mysql/include /usr/include/mysql

  ls /usr/include/mysql/

  #把mysql加入開機啟動

  cp support-files/mysql.server /etc/init.d/mysqld

  chkconfig --add mysqld

  chkconfig mysqld on

  service mysqld restart

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved