您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Linux中怎么實現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 dbbackup@192.168.0.10 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:mysqlbakmysqllog 設置日志文件的目錄,
#其中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:mysqllogmysqllog
binlog-do-db=backup
注意:當有錯誤產生時*.err日志文件。同步的線程退出,當糾正錯誤后要讓同步機制進行工作,運行slave start
重啟AB機器,則可以實現雙向的熱備。
測試:
向B批量插入大數據量表AA(1872000)條, A數據庫每秒鐘可以更新2500條數據。
上述就是小編為大家分享的Linux中怎么實現MySQL數據庫鏡像了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。