程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql 數據庫雙機熱備的設置裝備擺設辦法

Mysql 數據庫雙機熱備的設置裝備擺設辦法

編輯:MySQL綜合教程

Mysql 數據庫雙機熱備的設置裝備擺設辦法。本站提示廣大學習愛好者:(Mysql 數據庫雙機熱備的設置裝備擺設辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Mysql 數據庫雙機熱備的設置裝備擺設辦法正文


1。mysql數據庫沒有增量備份的機制,當數據量太年夜的時刻備份是一個很年夜的成績。還好mysql數據庫供給了一種主從備份的機制,其實就是把主數據庫的一切的數據同時寫到備份數據庫中。完成mysql數據庫的熱備份。
2。要想完成雙機的熱備起首要懂得主從數據庫辦事器的版本的需求。要完成熱備mysql的版本都要高於3.2,還有一個根本的准繩就是作為從數據庫的數據庫版本可以高於主辦事器數據庫的版本,然則弗成以低於主辦事器的數據庫版本。
3。設置主數據庫辦事器:
a.起首檢查主辦事器的版本能否是支撐熱備的版本。然後檢查my.cnf(類unix)或許my.ini(windows)中mysqld設置裝備擺設塊的設置裝備擺設有無log-bin(記載數據庫更改日記),由於mysql的復制機制是基於日記的復制機制,所以主辦事器必定要支撐更改日記才行。然後設置要寫入日記的數據庫或許不要寫入日記的數據庫。如許只要您感興致的數據庫的更改才寫入到數據庫的日記中。
server-id=1 //數據庫的id這個應當默許是1就不消修改
log-bin=log_name //日記文件的稱號,這裡可以制訂日記到其余目次 假如沒有設置則默許主機名的一個日記稱號
binlog-do-db=db_name //記載日記的數據庫
binlog-ignore-db=db_name //不記載日記的數據庫
以上的假如有多個數據庫用","朋分開
然後設置同步數據庫的用戶帳號
mysql> GRANT REPLICATION SLAVE ON *.*
-> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
4.0.2之前的版本, 由於不支撐REPLICATION 要應用上面的語句來完成這個功效
mysql> GRANT FILE ON *.*
-> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
設置好主辦事器的設置裝備擺設文件後從新啟動數據庫
b.鎖定現有的數據庫並備份如今的數據
鎖定命據庫
mysql> FLUSH TABLES WITH READ LOCK;
備份數據庫有兩種方法一種是直接進入到mysql的data目次然後打包你須要備份數據庫的文件夾,第二種是應用mysqldump的方法來備份數據庫然則要加上"--master-data " 這個參數,建議應用第一種辦法來備份數據庫
c.檢查主辦事器的狀況
mysql> show master status\G;
+---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.003 | 73 | test | manual,mysql |
+---------------+----------+--------------+------------------+
記載File 和 Position 項目標值,今後要用的。
d.然後把數據庫的鎖定翻開
mysql> UNLOCK TABLES;
4。設置從辦事器
a.起首設置數據庫的設置裝備擺設文件
server-id=n //設置數據庫id默許主辦事器是1可以隨意設置然則假如有多台從辦事器則不克不及反復。
master-host=db-master.mycompany.com //主辦事器的IP地址或許域名
master-port=3306 //主數據庫的端標語
master-user=pertinax //同步數據庫的用戶
master-password=freitag //同步數據庫的暗碼
master-connect-retry=60 //假如從辦事器發明主辦事器斷失落,從新銜接的時光差
report-host=db-slave.mycompany.com //申報毛病的辦事器
b.把從主數據庫辦事器備份出來的數據庫導入到從辦事器中
c.然後啟動從數據庫辦事器,假如啟動的時刻沒有加上"--skip-slave-start"這個參數則進入到mysql中
mysql> slave stop; //停滯slave的辦事
d.設置主辦事器的各類參數
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name', //主辦事器的IP地址
-> MASTER_USER='replication_user_name', //同步數據庫的用戶
-> MASTER_PASSWORD='replication_password', //同步數據庫的暗碼
-> MASTER_LOG_FILE='recorded_log_file_name', //主辦事器二進制日記的文件名(後面請求記住的參數)
-> MASTER_LOG_POS=recorded_log_position; //日記文件的開端地位(後面請求記住的參數)
e.啟動同步數據庫的線程
mysql> slave start;
檢查數據庫的同步情形吧。假如可以或許勝利同步那就祝賀了!
檢查主從辦事器的狀況
mysql> SHOW PROCESSLIST\G //可以檢查mysql的過程看看能否有監聽的過程
假如日記太年夜消除日記的步調以下
1.鎖定主數據庫
mysql> FLUSH TABLES WITH READ LOCK;
2.停失落從數據庫的slave
mysql> slave stop;
3.檢查主數據庫的日記文件名和日記文件的position
show master status;
+---------------+----------+--------------+------------------+
| File | Position | Binlog_do_db | Binlog_ignore_db |
+---------------+----------+--------------+------------------+
| louis-bin.001 | 79 | | mysql |
+---------------+----------+--------------+------------------+
4.解開主數據庫的鎖
mysql> unlock tables;
5.更新從數據庫中主數據庫的信息
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name', //主辦事器的IP地址
-> MASTER_USER='replication_user_name', //同步數據庫的用戶
-> MASTER_PASSWORD='replication_password', //同步數據庫的暗碼
-> MASTER_LOG_FILE='recorded_log_file_name', //主辦事器二進制日記的文件名(後面請求記住的參數)
-> MASTER_LOG_POS=recorded_log_position; //日記文件的開端地位(後面請求記住的參數)
6.啟動從數據庫的slave
mysql> slave start;

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