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

Mysql及時備份完成辦法

編輯:MySQL綜合教程

Mysql及時備份完成辦法。本站提示廣大學習愛好者:(Mysql及時備份完成辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Mysql及時備份完成辦法正文


今朝成熟的及時備份為雙機(master/slave),是基於同步日記事宜來完成,那單機若何完成具有增量的備份呢?可以借用雙機的道理,異常簡略,實行步調以下:
Mysql版本:mysql4.0+

1、vi my.cfg


[mysqld]
log-update=/home/backup/update #添加該行

2、service mysql restart

會在/home/backup/update00001文件,內容為數據庫變更的一切SQL(沒有select)

3、天天的全備,mysql4.0+最簡略就是備份data目次。


service mysql stop
tar -czf data(日期).tar.gz mysql/data
service mysql start

當mysql啟動時體系會主動在/home/backup/創立update0000*的文件,那我們可以用該文件作為當天全備的增量及時備份。

4、數據復原

service mysql stop
tar -zxvf data(日期).tar.gz mysql/
service mysql start
mysqladmin -u -p /home/backup/update0000*

如想復原昨天、前天的數據只須要找響應的update0000*來復原便可:)

以下是彌補:

1、MYSQL數據庫供給了一種主從備份的機制,其實就是把主數據庫的一切的數據同時寫到備份數據庫外面,從而完成MYSQL數據庫的及時備份。
2、版本請求,起首要包管主辦事器和從辦事器的MYSQL版本都高於3.2,別的,從數據庫的版本可以高於主辦事器,但不克不及低於主辦事器。
3、主辦事器設置:
A、先修正MY.INI中有關log-bin的設置,這是記載數據庫更改的日記,因為MYSQL的復制機制,是基於日記的,所以主辦事器必需要支撐更改日記才可以。
接著設置要寫入日記的數據庫,或許不要寫入日記的數據庫,這是為了告知MYSQL,誰人庫須要備份,哪一個不須要。
上面是設置裝備擺設概況:

server-id=1 //數據庫的id這個應當默許是1就不消修改
log-bin=log_name //日記文件的稱號,這裡可以制訂日記到其余目次 假如沒有設置則默許主機名的一個日記稱號
binlog-do-db=db_name //記載日記的數據庫
binlog-ignore-db=db_name //不記載日記的數據庫

下面的binlog-do-db和binlog-ignore-db可以設置成多個數據庫,每一個數據庫稱號之間用“,”朋分開。
下一步是設置同步數據庫的用戶賬號
mysql> GRANT REPLICATION SLAVE ON *.*
-> TO ‘備份用戶名'@'只能從這個IP登錄' IDENTIFIED BY ‘備份用戶暗碼';

設置好今後,重啟一下數據庫辦事。
B、鎖定現有的數據,並將數據備份
數據庫鎖定的敕令是:
mysql> FLUSH TABLES WITH READ LOCK;
然落後入mysql的data目次,然後打包你須要備份的數據庫目次。
C、如今可以檢查主辦事器的狀況了:
敕令以下:
mysql> show master status\G;
前往成果會是如許的
+—————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+—————+———-+————–+——————+
| mysql-bin.003 | 73 | test | manual,mysql |
+—————+———-+————–+——————+
固然,這個表,顯示了你適才在MY.INI中寫入的設置裝備擺設。
然後解鎖數據庫:
mysql> UNLOCK TABLES;

4、從辦事器設置
照樣和適才一樣,修正數據庫設置裝備擺設文件,即MY.INI
設置裝備擺設概況以下:
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 //申報毛病的辦事器

然後將你適才打包的數據庫文件拷貝到你的從數據庫目次中。
重啟從數據庫辦事器。
然後停滯SLAVE的辦事

mysql> slave stop; //停滯slave的辦事

停滯以後,照樣在mysql提醒符下,設置主辦事器的各類參數
敕令以下:
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; //日記文件的開端地位(後面請求記住的參數)

然後啟動同步數據庫的過程
mysql> slave start;

沒成心外的話根本上到這一步,雙庫同步就曾經完成了。

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