時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
??? 2。要想實現(xiàn)雙機的熱備首先要了解主從數(shù)據(jù)庫服務(wù)器的版本的需求。要實現(xiàn)熱備mysql的版本都要高于3.2,還有一個基本的原則就是作為從數(shù)據(jù)庫的數(shù)據(jù)庫版本可以高于主服務(wù)器數(shù)據(jù)庫的版本,但是不可以低于主服務(wù)器的數(shù)據(jù)庫版本。
??? 3。設(shè)置主數(shù)據(jù)庫服務(wù)器:
??? a.首先查看主服務(wù)器的版本是否是支持熱備的版本。然后查看my.cnf(類unix)或者my.ini(windows)中mysqld配置塊的配置有沒有l(wèi)og-bin(記錄數(shù)據(jù)庫更改日志),因為mysql的復(fù)制機制是基于日志的復(fù)制機制,所以主服務(wù)器一定要支持更改日志才行。然后設(shè)置要寫入日志的數(shù)據(jù)庫或者不要寫入日志的數(shù)據(jù)庫。這樣只有您感興趣的數(shù)據(jù)庫的更改才寫入到數(shù)據(jù)庫的日志中。
server-id=1 //數(shù)據(jù)庫的id這個應(yīng)該默認(rèn)是1就不用改動
log-bin=log_name //日志文件的名稱,這里可以制定日志到別的目錄 如果沒有設(shè)置則默認(rèn)主機名的一個日志名稱
binlog-do-db=db_name //記錄日志的數(shù)據(jù)庫
binlog-ignore-db=db_name //不記錄日志的數(shù)據(jù)庫
??? 以上的如果有多個數(shù)據(jù)庫用","分割開
??? 然后設(shè)置同步數(shù)據(jù)庫的用戶帳號
mysql> GRANT REPLICATION SLAVE ON *.*
-> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
??? 4.0.2以前的版本, 因為不支持REPLICATION 要使用下面的語句來實現(xiàn)這個功能
mysql> GRANT FILE ON *.*
-> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
??? 設(shè)置好主服務(wù)器的配置文件后重新啟動數(shù)據(jù)庫
??? b.鎖定現(xiàn)有的數(shù)據(jù)庫并備份現(xiàn)在的數(shù)據(jù)
??? 鎖定數(shù)據(jù)庫
mysql> FLUSH TABLES WITH READ LOCK;
??? 備份數(shù)據(jù)庫有兩種辦法一種是直接進(jìn)入到mysql的data目錄然后打包你需要備份數(shù)據(jù)庫的文件夾,第二種是使用mysqldump的方式來備份數(shù)據(jù)庫但是要加上"--master-data " 這個參數(shù),建議使用第一種方法來備份數(shù)據(jù)庫
??? 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 項目的值,以后要用的。
??? d.然后把數(shù)據(jù)庫的鎖定打開
mysql> UNLOCK TABLES;
??? 4。設(shè)置從服務(wù)器
??? a.首先設(shè)置數(shù)據(jù)庫的配置文件
server-id=n //設(shè)置數(shù)據(jù)庫id默認(rèn)主服務(wù)器是1可以隨便設(shè)置但是如果有多臺從服務(wù)器則不能重復(fù)。
master-host=db-master.mycompany.com //主服務(wù)器的IP地址或者域名
master-port=3306 //主數(shù)據(jù)庫的端口號
master-user=pertinax //同步數(shù)據(jù)庫的用戶
master-password=freitag //同步數(shù)據(jù)庫的密碼
master-connect-retry=60 //如果從服務(wù)器發(fā)現(xiàn)主服務(wù)器斷掉,重新連接的時間差
report-host=db-slave.mycompany.com //報告錯誤的服務(wù)器
??? b.把從主數(shù)據(jù)庫服務(wù)器備份出來的數(shù)據(jù)庫導(dǎo)入到從服務(wù)器中
??? c.然后啟動從數(shù)據(jù)庫服務(wù)器,如果啟動的時候沒有加上"--skip-slave-start"這個參數(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ù)庫的用戶
-> MASTER_PASSWORD='replication_password', //同步數(shù)據(jù)庫的密碼
-> MASTER_LOG_FILE='recorded_log_file_name', //主服務(wù)器二進(jìn)制日志的文件名(前面要求記住的參數(shù))
-> MASTER_LOG_POS=recorded_log_position; //日志文件的開始位置(前面要求記住的參數(shù))
??? e.啟動同步數(shù)據(jù)庫的線程
mysql> slave start;
??? 查看數(shù)據(jù)庫的同步情況吧。如果能夠成功同步那就恭喜了!
??? 查看主從服務(wù)器的狀態(tài)
mysql> SHOW PROCESSLIST\G //可以查看mysql的進(jìn)程看看是否有監(jiān)聽的進(jìn)程
??? 如果日志太大清除日志的步驟如下
??? 1.鎖定主數(shù)據(jù)庫
mysql> FLUSH TABLES WITH READ LOCK;
??? 2.停掉從數(shù)據(jù)庫的slave
mysql> slave stop;
??? 3.查看主數(shù)據(jù)庫的日志文件名和日志文件的position
show master status;
+---------------+----------+--------------+------------------+
| File | Position | Binlog_do_db | Binlog_ignore_db |
+---------------+----------+--------------+------------------+
| louis-bin.001 | 79 | | mysql |
+---------------+----------+--------------+------------------+
??? 4.解開主數(shù)據(jù)庫的鎖
mysql> unlock tables;
??? 5.更新從數(shù)據(jù)庫中主數(shù)據(jù)庫的信息
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name', //主服務(wù)器的IP地址
-> MASTER_USER='replication_user_name', //同步數(shù)據(jù)庫的用戶
-> MASTER_PASSWORD='replication_password', //同步數(shù)據(jù)庫的密碼
-> MASTER_LOG_FILE='recorded_log_file_name', //主服務(wù)器二進(jìn)制日志的文件名(前面要求記住的參數(shù))
-> MASTER_LOG_POS=recorded_log_position; //日志文件的開始位置(前面要求記住的參數(shù))
??? 6.啟動從數(shù)據(jù)庫的slave
mysql> slave start;
關(guān)鍵詞標(biāo)簽:配置,數(shù)據(jù)庫,服務(wù)器,日
相關(guān)閱讀
熱門文章 Xbox Game Pass 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 MySQL常用維護(hù)管理工具 MySQL數(shù)據(jù)庫啟動失敗1067進(jìn)程意外終止的解決辦法總結(jié)
人氣排行 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 MySQL數(shù)據(jù)庫啟動失敗1067進(jìn)程意外終止的解決辦法總結(jié) Mysql 1045錯誤解決辦法 MySQL服務(wù)器進(jìn)程CPU占用100%解決辦法 MySQL導(dǎo)出導(dǎo)入命令的用例 MySQL連接字符串的實際操作步驟匯總 MySQL無法啟動、無法停止各種解決方法總結(jié) 三種常用的MySQL建表語句