IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁(yè)數(shù)據(jù)庫(kù)MYSQL → Mysql 數(shù)據(jù)庫(kù)雙機(jī)熱備的配置

Mysql 數(shù)據(jù)庫(kù)雙機(jī)熱備的配置

時(shí)間:2015/6/28來(lái)源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評(píng)論(0)

    1。mysql數(shù)據(jù)庫(kù)沒有增量備份的機(jī)制,當(dāng)數(shù)據(jù)量太大的時(shí)候備份是一個(gè)很大的問題。還好mysql數(shù)據(jù)庫(kù)提供了一種主從備份的機(jī)制,其實(shí)就是把主數(shù)據(jù)庫(kù)的所有的數(shù)據(jù)同時(shí)寫到備份數(shù)據(jù)庫(kù)中。實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)的熱備份。

    2。要想實(shí)現(xiàn)雙機(jī)的熱備首先要了解主從數(shù)據(jù)庫(kù)服務(wù)器的版本的需求。要實(shí)現(xiàn)熱備mysql的版本都要高于3.2,還有一個(gè)基本的原則就是作為從數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)版本可以高于主服務(wù)器數(shù)據(jù)庫(kù)的版本,但是不可以低于主服務(wù)器的數(shù)據(jù)庫(kù)版本。

    3。設(shè)置主數(shù)據(jù)庫(kù)服務(wù)器:

    a.首先查看主服務(wù)器的版本是否是支持熱備的版本。然后查看my.cnf(類unix)或者my.ini(windows)中mysqld配置塊的配置有沒有l(wèi)og-bin(記錄數(shù)據(jù)庫(kù)更改日志),因?yàn)閙ysql的復(fù)制機(jī)制是基于日志的復(fù)制機(jī)制,所以主服務(wù)器一定要支持更改日志才行。然后設(shè)置要寫入日志的數(shù)據(jù)庫(kù)或者不要寫入日志的數(shù)據(jù)庫(kù)。這樣只有您感興趣的數(shù)據(jù)庫(kù)的更改才寫入到數(shù)據(jù)庫(kù)的日志中。

server-id=1 //數(shù)據(jù)庫(kù)的id這個(gè)應(yīng)該默認(rèn)是1就不用改動(dòng)

log-bin=log_name //日志文件的名稱,這里可以制定日志到別的目錄 如果沒有設(shè)置則默認(rèn)主機(jī)名的一個(gè)日志名稱

binlog-do-db=db_name //記錄日志的數(shù)據(jù)庫(kù)

binlog-ignore-db=db_name //不記錄日志的數(shù)據(jù)庫(kù)

    以上的如果有多個(gè)數(shù)據(jù)庫(kù)用","分割開

    然后設(shè)置同步數(shù)據(jù)庫(kù)的用戶帳號(hào)

mysql> GRANT REPLICATION SLAVE ON *.*

-> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';

    4.0.2以前的版本, 因?yàn)椴恢С諶EPLICATION 要使用下面的語(yǔ)句來(lái)實(shí)現(xiàn)這個(gè)功能

mysql> GRANT FILE ON *.*

-> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';

    設(shè)置好主服務(wù)器的配置文件后重新啟動(dòng)數(shù)據(jù)庫(kù)

    b.鎖定現(xiàn)有的數(shù)據(jù)庫(kù)并備份現(xiàn)在的數(shù)據(jù)

    鎖定數(shù)據(jù)庫(kù)

mysql> FLUSH TABLES WITH READ LOCK;

    備份數(shù)據(jù)庫(kù)有兩種辦法一種是直接進(jìn)入到mysql的data目錄然后打包你需要備份數(shù)據(jù)庫(kù)的文件夾,第二種是使用mysqldump的方式來(lái)備份數(shù)據(jù)庫(kù)但是要加上"--master-data " 這個(gè)參數(shù),建議使用第一種方法來(lái)備份數(shù)據(jù)庫(kù)

    c.查看主服務(wù)器的狀態(tài)

mysql> show master status\G;

+---------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+---------------+----------+--------------+------------------+

| mysql-bin.003 | 73 | test | manual,mysql |

+---------------+----------+--------------+------------------+

    記錄File 和 Position 項(xiàng)目的值,以后要用的。

    d.然后把數(shù)據(jù)庫(kù)的鎖定打開

mysql> UNLOCK TABLES;

    4。設(shè)置從服務(wù)器

    a.首先設(shè)置數(shù)據(jù)庫(kù)的配置文件

server-id=n //設(shè)置數(shù)據(jù)庫(kù)id默認(rèn)主服務(wù)器是1可以隨便設(shè)置但是如果有多臺(tái)從服務(wù)器則不能重復(fù)。

master-host=db-master.mycompany.com //主服務(wù)器的IP地址或者域名

master-port=3306 //主數(shù)據(jù)庫(kù)的端口號(hào)

master-user=pertinax //同步數(shù)據(jù)庫(kù)的用戶

master-password=freitag //同步數(shù)據(jù)庫(kù)的密碼

master-connect-retry=60 //如果從服務(wù)器發(fā)現(xiàn)主服務(wù)器斷掉,重新連接的時(shí)間差

report-host=db-slave.mycompany.com //報(bào)告錯(cuò)誤的服務(wù)器

    b.把從主數(shù)據(jù)庫(kù)服務(wù)器備份出來(lái)的數(shù)據(jù)庫(kù)導(dǎo)入到從服務(wù)器中

    c.然后啟動(dòng)從數(shù)據(jù)庫(kù)服務(wù)器,如果啟動(dòng)的時(shí)候沒有加上"--skip-slave-start"這個(gè)參數(shù)則進(jìn)入到mysql中

mysql> slave stop; //停止slave的服務(wù)

    d.設(shè)置主服務(wù)器的各種參數(shù)

mysql> CHANGE MASTER TO

-> MASTER_HOST='master_host_name', //主服務(wù)器的IP地址

-> MASTER_USER='replication_user_name', //同步數(shù)據(jù)庫(kù)的用戶

-> MASTER_PASSWORD='replication_password', //同步數(shù)據(jù)庫(kù)的密碼

-> MASTER_LOG_FILE='recorded_log_file_name', //主服務(wù)器二進(jìn)制日志的文件名(前面要求記住的參數(shù))

-> MASTER_LOG_POS=recorded_log_position; //日志文件的開始位置(前面要求記住的參數(shù))

    e.啟動(dòng)同步數(shù)據(jù)庫(kù)的線程

mysql> slave start;

    查看數(shù)據(jù)庫(kù)的同步情況吧。如果能夠成功同步那就恭喜了!

    查看主從服務(wù)器的狀態(tài)

mysql> SHOW PROCESSLIST\G //可以查看mysql的進(jìn)程看看是否有監(jiān)聽的進(jìn)程

    如果日志太大清除日志的步驟如下

    1.鎖定主數(shù)據(jù)庫(kù)

mysql> FLUSH TABLES WITH READ LOCK;

    2.停掉從數(shù)據(jù)庫(kù)的slave

mysql> slave stop;

    3.查看主數(shù)據(jù)庫(kù)的日志文件名和日志文件的position

show master status;

+---------------+----------+--------------+------------------+

| File | Position | Binlog_do_db | Binlog_ignore_db |

+---------------+----------+--------------+------------------+

| louis-bin.001 | 79 | | mysql |

+---------------+----------+--------------+------------------+

    4.解開主數(shù)據(jù)庫(kù)的鎖

mysql> unlock tables;

    5.更新從數(shù)據(jù)庫(kù)中主數(shù)據(jù)庫(kù)的信息

mysql> CHANGE MASTER TO

-> MASTER_HOST='master_host_name', //主服務(wù)器的IP地址

-> MASTER_USER='replication_user_name', //同步數(shù)據(jù)庫(kù)的用戶

-> MASTER_PASSWORD='replication_password', //同步數(shù)據(jù)庫(kù)的密碼

-> MASTER_LOG_FILE='recorded_log_file_name', //主服務(wù)器二進(jìn)制日志的文件名(前面要求記住的參數(shù))

-> MASTER_LOG_POS=recorded_log_position; //日志文件的開始位置(前面要求記住的參數(shù))

    6.啟動(dòng)從數(shù)據(jù)庫(kù)的slave

mysql> slave start;

關(guān)鍵詞標(biāo)簽:配置,數(shù)據(jù)庫(kù),服務(wù)器,日

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 10款MySQL數(shù)據(jù)庫(kù)客戶端圖形界面管理工具推薦10款MySQL數(shù)據(jù)庫(kù)客戶端圖形界面管理工具推薦MySQL常用維護(hù)管理工具MySQL常用維護(hù)管理工具Linux VPS/服務(wù)器上輕松導(dǎo)入、導(dǎo)出MySQL數(shù)據(jù)Linux VPS/服務(wù)器上輕松導(dǎo)入、導(dǎo)出MySQL數(shù)據(jù)MySQL復(fù)制的概述、安裝、故障、技巧、工具MySQL復(fù)制的概述、安裝、故障、技巧、工具

相關(guān)下載

人氣排行 MySQL數(shù)據(jù)庫(kù)啟動(dòng)失敗1067進(jìn)程意外終止的解決辦法總結(jié)10款MySQL數(shù)據(jù)庫(kù)客戶端圖形界面管理工具推薦Mysql 1045錯(cuò)誤解決辦法MySQL服務(wù)器進(jìn)程CPU占用100%解決辦法MySQL導(dǎo)出導(dǎo)入命令的用例MySQL無(wú)法啟動(dòng)、無(wú)法停止各種解決方法總結(jié)三種常用的MySQL建表語(yǔ)句Mysql清空表的實(shí)現(xiàn)方法