以下的文章主要介紹的是MySQL數據庫備份的基礎知識,我們大家都知道MySQL數據庫是應用性算是廣泛,所以MySQL數據庫備份的實際應用就隨之變得廣泛,以下就是具體內容的描述,希望在你今後的學習中會有所幫助。
平時我們在使用MySQL數據庫的時候經常會因為操作失誤造成數據丟失,MySQL數據庫備份可以幫助我們避免由於各種原因造成的數據丟失或著數據庫的其他問題。
一、數據備份捷徑
因為這個方法沒有得到官方正式文檔的驗證,我們暫稱為試驗吧。
目的:備份hostA主機中一個MySQL數據庫備份TestA,並恢復到到hostB機中
試驗環境:
操作系統:WinNT4.0,Mysql3.22.34,phpMyAdmin 2.1.0
在hostA中安裝MySQL數據庫備份並建立TestA數據庫
hostB機安裝MySQL數據庫備份,沒有TestA數據庫
方法步驟:
啟動phpMyAdmin察看HostA和HostB中的數據庫列表,在HostB中沒有TestA數據庫
找到HostA中MySQL數據庫備份的安裝目錄,並找到數據庫目錄data
在我的試驗環境中,這個目錄是C:mysqldata
找到對應數據庫名稱的子目錄C:mysqldataTestA
粘貼拷貝到HostB的Data目錄下,是HostA同HostB MySQL數據庫備份數據目錄下的文件相同
刷新HostB的phpMyAdmin察看一下數據庫列表,我們看到TestA已經出現,並且作查詢修改等操作都正常,備份恢復恢復成功
試驗結論:MySQL的數據庫可以通過文件形式保存,備份,恢復只要將相應文件目錄恢復即可,無需使用其它工具備份。
二、正規的方法(官方建議):
導出要用到MySQL數據庫備份的mysqldump工具,基本用法是:
- mysqldump [OPTIONS] database [tables]
如果你不給定任何表,整個數據庫將被導出。
通過執行mysqldump --help,你能得到你mysqldump的版本支持的選項表。
注意,如果你運行mysqldump沒有--quick或--opt選項,mysqldump將在導出結果前裝載整個結果集到內存中,如果你正在導出一個大的數據庫,這將可能是一個問題。
mysqldump支持下列選項:
--add-locks
在每個表導出之前增加LOCK TABLES並且之後UNLOCK TABLE。(為了使得更快地插入到MySQL數據庫備份)。
第三步:創建相互的主從關系
首先在B機上的my.cnf文件中,在[mysqld]部分中加入log-bin,接著重新啟動mysqld,然後創建可在它的上面執行復制功能的用戶帳號,使用:
GRANT FILE ON *.* TO [email protected] IDENTIFIED BY password;
在B機上運行FLUSH PRIVILEGES命令,以便裝入在加入復制用戶後的新的授權表,接著回到A機上,在它的my.cnf中加入下面幾行:
- master-host=10.1.1.2
- master-user=replicate
- master-password=password
在重啟A機的服務程序之後,現在我們一擁有了在A機與B機之間的相互主-從關系。不管在哪個服務器上更新一條記錄或插入一條記錄,都將被復制到另一台服務器上。要注意的是:我不敢確定一個備機合並二進制日志變化的速度有多快,所以用這種方法來進行插入或更新語句的負載平衡可能不是一個好辦法。