国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

Mysql數(shù)據(jù)庫怎么實現(xiàn)雙機熱備

2024-07-24 12:38:29
字體:
供稿:網(wǎng)友

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

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ù)庫的日志中,代碼如下:

  1. server-id=1 //數(shù)據(jù)庫的id這個應(yīng)該默認(rèn)是1就不用改動 
  2. log-bin=log_name //日志文件的名稱,這里可以制定日志到別的目錄 如果沒有設(shè)置則默認(rèn)主機名的一個日志名稱 
  3. binlog-do-db=db_name //記錄日志的數(shù)據(jù)庫 
  4. 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),代碼如下:

  1. mysql> show master statusG; 
  2. +---------------+----------+--------------+------------------+ 
  3. | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
  4. +---------------+----------+--------------+------------------+ 
  5. | mysql-bin.003 | 73 | test | manual,mysql | 
  6. +---------------+----------+--------------+------------------+ 

記錄File 和 Position 項目的值,以后要用的.

d.然后把數(shù)據(jù)庫的鎖定打開,代碼如下:

mysql> UNLOCK TABLES;

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

a.首先設(shè)置數(shù)據(jù)庫的配置文件,代碼如下:

  1. server-id=n //設(shè)置數(shù)據(jù)庫id默認(rèn)主服務(wù)器是1可以隨便設(shè)置但是如果有多臺從服務(wù)器則不能重復(fù)。 
  2. master-host=db-master.mycompany.com //主服務(wù)器的IP地址或者域名 
  3. master-port=3306 //主數(shù)據(jù)庫的端口號 
  4. master-user=pertinax //同步數(shù)據(jù)庫的用戶 
  5. master-password=freitag //同步數(shù)據(jù)庫的密碼 
  6. master-connect-retry=60 //如果從服務(wù)器發(fā)現(xiàn)主服務(wù)器斷掉,重新連接的時間差 
  7. report-host=db-slave.Vevb.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ù),代碼如下:

  1. mysql> CHANGE MASTER TO 
  2. -> MASTER_HOST='master_host_name'//主服務(wù)器的IP地址 
  3. -> MASTER_USER='replication_user_name'//同步數(shù)據(jù)庫的用戶 
  4. -> MASTER_PASSWORD='replication_password'//同步數(shù)據(jù)庫的密碼 
  5. -> MASTER_LOG_FILE='recorded_log_file_name'//主服務(wù)器二進(jìn)制日志的文件名(前面要求記住的參數(shù)) 
  6. -> MASTER_LOG_POS=recorded_log_position; //日志文件的開始位置(前面要求記住的參數(shù)) 

e.啟動同步數(shù)據(jù)庫的線程,代碼如下:mysql> slave start;

查看數(shù)據(jù)庫的同步情況吧,如果能夠成功同步那就恭喜了,查看主從服務(wù)器的狀態(tài),代碼如下:

mysql> SHOW PROCESSLISTG //可以查看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,代碼如下:

  1. show master status;  
  2. +---------------+----------+--------------+------------------+  
  3. | File | Position | Binlog_do_db | Binlog_ignore_db |  
  4. +---------------+----------+--------------+------------------+  
  5. | louis-bin.001 | 79 | | mysql |  
  6. +---------------+----------+--------------+------------------+  

4.解開主數(shù)據(jù)庫的鎖:mysql> unlock tables; 

5.更新從數(shù)據(jù)庫中主數(shù)據(jù)庫的信息,代碼如下:

  1. mysql> CHANGE MASTER TO  
  2. -> MASTER_HOST='master_host_name'//主服務(wù)器的IP地址  
  3. -> MASTER_USER='replication_user_name'//同步數(shù)據(jù)庫的用戶  
  4. -> MASTER_PASSWORD='replication_password'//同步數(shù)據(jù)庫的密碼  
  5. -> MASTER_LOG_FILE='recorded_log_file_name'//主服務(wù)器二進(jìn)制日志的文件名(前面要求記住的參數(shù))  
  6. -> MASTER_LOG_POS=recorded_log_position; //日志文件的開始位置(前面要求記住的參數(shù))  

6.啟動從數(shù)據(jù)庫的slave:mysql> slave start;

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 内黄县| 顺昌县| 定南县| 台前县| 云阳县| 广宗县| 青冈县| 马边| 广东省| 申扎县| 庆云县| 泰和县| 怀仁县| 缙云县| 沙洋县| 信宜市| 新余市| 呼和浩特市| 宝山区| 西乡县| 福州市| 香格里拉县| 商丘市| 玉环县| 钦州市| 冕宁县| 安康市| 巴青县| 威信县| 同仁县| 民县| 金华市| 宽城| 锦屏县| 荆州市| 佛学| 珲春市| 拉萨市| 五寨县| 古田县| 靖安县|