MySQL數據庫備份(3)
發(fā)布時間:2008-08-23 閱讀數: 次 來源:網樂原科技
2 使用直接拷貝數據庫的備份和拷貝方法
另一種不涉及mysqldump備份數據庫和表的方式是直接拷貝數據庫表文件。典型地,這用諸如cp、tar或cpio實用程序。本文的例子使用cp。
當你使用一種直接備份方法時,你必須保證表不在被使用。如果服務器在你則正在拷貝一個表時改變它,拷貝就失去意義。
保證你的拷貝完整性的最好方法是關閉服務器,拷貝文件,然后重啟服務器。如果你不想關閉服務器,要在執(zhí)行表檢查的同時鎖定服務器。如果服務器在運行,相同的制約也適用于拷貝文件,而且你應該使用相同的鎖定協(xié)議讓服務器“安靜下來”。
假設服務器關閉或你已經鎖定了你想拷貝的表,下列顯示如何將整個samp_db數據庫備份到一個備份目錄(DATADIR表示服務器的數據目錄):
%cd DATADIR
%cp -r samp_db /usr/archive/mysql
單個表可以如下備份:
%cd DATADIR/samp_db
%cp member.* /usr/archive/mysql/samp_db
%cp score.* /usr/archive/mysql/samp_db
....
當你完成了備份時,你可以重啟服務器(如果關閉了它)或釋放加在表上的鎖定(如果你讓服務器運行)。
要用直接拷貝文件把一個數據庫從一臺機器拷貝到另一臺機器上,只是將文件拷貝到另一臺服務器主機的適當數據目錄下即可。要確保文件是MyIASM格式或兩臺機器有相同的硬件結構,否則你的數據庫在另一臺主機上有奇怪的內容。你也應該保證在另一臺機器上的服務器在你正在安裝數據庫表時不訪問它們。
3 復制數據庫(Replicating Database)
復制(Replication)類似于拷貝數據庫到另一臺服務器上,但它的確切含義是實時地保證兩個數據庫的完全同步。這個功能將在3.23版中出現,而且還不很成熟,因此本文不作詳細介紹。