程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> RedHatLinux下實現MySQL數據庫鏡像

RedHatLinux下實現MySQL數據庫鏡像

編輯:關於MYSQL數據庫
MySQL從3.23.15版本以後提供數據庫復制功能,利用該功能可以實現兩個數據庫同步,主從模式,互相備份模式的功能。實現數據同步備份。
  數據庫同步復制功能的設置都在mysql的設置文件中體現。mysql的配置文件(一般是my.cnf) 在Linux環境下在/etc/my.cnf 或者在MySQL用戶的home目錄下面的my.cnf.
  
  設置方法:
  操作系統: RedHat Linux 9 mysql:MySQL-standard-4.0.18-pc-Linux-i686.tar.gz
  A Server: 192.168.0.1 主服務器master
  B Server: 192.168.0.10 副服務器slave
  A上已安裝好MySQL且已有數據庫,在B上安裝mysql-standard-4.0.18, 安裝步驟可解壓後按INSTALL-BINARY上方法安裝mysql,我將其然後啟動 MySQL.
  
  A服務器設置
  #mysql ?u root ?p Master開放一個賬號dbbackup密碼123456給IP:192.168.0.10有檔案處理的權限. mysql>GRANT ALL ON *.* TO [email protected] IDENTIFIED BY‘123456’ MySQL>exit
  #MySQLadmin ?u root ?p shutdown
  備份Master所有數據庫..通常都用tar指令. (注意:tar的時候,MySQL是要在stop情況下)
  #tar zcvf /tmp/mysql.tar.gz /usr/local/src/MySQL/data
  在A機器上修改/etc/my.cnf
  [MySQLd]
  log-bin (生成.index文件。#設置需要記錄log 可以設置log-bin=c:\mysqlbak\MySQLlog 設置日志文件的目錄,
  #其中mysqllog是日志文件的名稱,mysql將建立不同擴展名,文 件名為MySQLlog的幾個日志文件。)
  server-id=1
  sql-bin-update-same
  binlog-do-db=forimage (#指定需要日志的數據庫為forimage)
  啟動A服務器mysql: Bin/MySQLd-safe ?user=mySQL Server-id=1 & (要指定server-id)
  此時由於加入log-bin參數,因此開始生成index文件,在/usr/local/src/MySQL/data目錄下有.index文件。檔案紀錄數據庫的異動log. #MySQL ?u root ?p 用show master status 命令看日志情況。
  
  B服務器設置
  設定/etc/my.cnf
  [MySQLd]
  master-host=192.168.0.1
  master-user=dbbackup (#同步用戶帳號)
  master-passWord=123456
  master-port=3306
  server-id=2
  master-connect-retry=60 (預設重試間隔為60秒 )
  replicate-do-db=forimage (只對數據庫forimage更新 )
  log-slave-updates
  
  copy A上的/tmp/mysql.tar.gz 到B上的MySQL安裝目錄的data/下,並解壓縮覆蓋data/
  #chown ?R mysql /usr/local/src/MySQL/data/
  #cd /usr/local/src/MySQL/
  #chown ?R root:MySQL .
  重啟B服務器的mysql: #bin/mysqladmin ?u root shutdown #bin/MySQL-safe ?user=mySQL Server-id=2 & (要指定server-id,與my.cnf對應)
  
  show slave status看同步配置情況。
  #bin/MySQL ?u root
  則在/usr/local/src/mysq/data/目錄會出現master.info,此文件紀錄了Master MySQL Server的信息. 如有要修改相關slave的配置要先刪除該文件. 否則修改的配置不能生效。
  
  狀況測試:
  1.A跟B網絡及服務都正常情況下,由A端變化數據後,到B端浏覽數據,檢查是否有數據變化。
  2.模擬B當機,或是B不一定需要一直跟A有連接.將由A端變化數據後,到B端浏覽數據,B點應該是沒有數據變化的。


  
  雙機互備模式
  如果在A加入slave設置,在B加入master設置,則可以做B->A的同步。
  在A的配置文件中 MySQLd 配置項加入以下設置:
  master-host=10.10.10.53
  master-user=backup
  master-passWord=1234
  replicate-do-db=backup
  master-connect-retry=10
  在B的配置文件中 MySQLd 配置項加入以下設置:
  log-bin=c:\mysqllog\MySQLlog
  binlog-do-db=backup
  
  注意:當有錯誤產生時*.err日志文件。同步的線程退出,當糾正錯誤後要讓同步機制進行工作,運行slave start
  重啟AB機器,則可以實現雙向的熱備。
  
  測試:
  向B批量插入大數據量表AA(1872000)條, A數據庫每秒鐘可以更新2500條數據。

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