怎樣實現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.MySQL0.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;
檢視資料庫的同步情況吧。如果能夠成功同步完成了。
f.檢視主從伺服器的狀態:
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;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7970627/viewspace-716697/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- golang實現mysql資料庫備份GolangMySql資料庫
- 實現MySQL資料庫的實時備份MySql資料庫
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- mysql 資料庫 備份MySql資料庫
- 雙機熱備與資料備份的關係說明一二
- 【資料庫】MySQL鎖機制、熱備、分表資料庫MySql
- innobackupex 備份MySQL資料庫MySql資料庫
- MySQL資料庫定時備份的幾種實現方法MySql資料庫
- Keepalived雙機熱備實現高可用
- Keepalived - Keepalived 實現 tomcat雙機熱備Tomcat
- BMMySQL定時備份資料庫(全庫備份)的實現meuMySql資料庫
- mysql資料庫-備份與還原實操MySql資料庫
- 定時備份MySQL資料庫MySql資料庫
- mysql資料庫備份命令大全MySql資料庫
- 備份mysql資料庫報告MySql資料庫
- Mysql資料庫自動備份MySql資料庫
- MySQL資料庫的基本備份MySql資料庫
- 1. 備份MySQL資料庫MySql資料庫
- 兩臺Linux完美實現雙機熱備Linux
- postgresql資料庫怎麼備份SQL資料庫
- Mysql資料庫備份及恢復MySql資料庫
- MySQL資料庫常用的備份方法MySql資料庫
- 「MySQL」資料庫備份和還原MySql資料庫
- (7) MySQL資料庫備份詳解MySql資料庫
- Linux實現定時備份MySQL資料庫並刪除30天前的備份檔案LinuxMySql資料庫
- MySQL 主從複製,雙機熱備MySql
- MySQL資料備份MySql
- mysql的冷備份與熱備份MySql
- MySQL雙機互備熱備自動切換KVMySql
- 使用MySQL Workbench進行資料庫備份MySql資料庫
- Mysql備份和還原資料庫-mysqldumpMySql資料庫
- MySQL資料庫備份的shell指令碼MySql資料庫指令碼
- MySql資料庫備份的幾種方式MySql資料庫
- 使用NineData實現企業級資料庫備份, 資料備份告別“拆盲盒” ?資料庫
- 什麼是雙機熱備?實現方式有哪些?
- 資料庫備份資料庫
- 初探MySQL資料備份及備份原理MySql
- 9、雙機熱備
- MySQL-19.資料庫備份與恢復MySql資料庫