用以備份的工(gōng)具 1. mysqldump 2. mysqlhotcopy 3.mysqlsnapshot 4.ibbackup 聯機備份 .VS. 脫機備份聯機備份通常使用在不能接受數據庫停機的情況下(xià),一(yī)般來說,脫機備份速度快,并且發生(shēng)錯誤的幾率少,我(wǒ)(wǒ)們不用擔心數據庫正在執行事務,鎖表等容易發生(shēng)一(yī)緻性問題的發生(shēng)。如果你幸運的可以停下(xià)數據庫或者有一(yī)個主從方式的數據庫,請使用脫機方式備份。 Data Dump vs Raw backupsData dump 輸出一(yī)系列SQL 語句序列,可以在後來用來重新創建數據庫的結構并恢複數據。mysqldump 是這個領域的首選工(gōng)具,他可以用在任意類型的表上面,無論是本地的還是網絡的。當然,由于要産生(shēng)很多額外(wài)的SQL語句,導出結果将是一(yī)個很大(dà)的文件并且占 用很多CPU資(zī)源,最重要的是,當數據恢複後需要一(yī)次完全的索引重建。 更有效率的方法是是對MySQL數據庫的物(wù)理文件做一(yī)次快照(snapshot)。因爲我(wǒ)(wǒ)們跳過了很多轉化步驟,因此處理起來比較高效。 做一(yī)個MyISM數據表的備份隻要拷貝磁盤上數據文件和索引文件。對InnoDB,需要備份對應表空間和關聯的事務日志(zhì)。 mysqldump / mysqlhotcopy / mysqlsnapshot / ibbackupmysqldump - (online, dump) - 最一(yī)般的工(gōng)具,他會通過鎖表的方式從一(yī)個聯機數據庫中(zhōng)做數據導出并寫到指定的文件中(zhōng)(磁盤或網絡上)。他隻适合小(xiǎo)的數據庫。 # typical mysql dump backup and restore usage mysqldump -u root -pPassword -x –all-databases > db_dump.sql mysql -u root -pPassword < db_dump.sql
# dump into ‘backup’ folder (local machine), into two text files <data, table_structure> mysqldump -T backup –fields-terminated-by=’,’ database-name -u root -pPassword
# compress the dumped data on the fly mysqldump -u root -pPassword –all-databases | bzip2 -c > db_dump.bz2 mysqlhotcopy - (online, raw) 将對由 ISAM或MyISAM 表構成的數據庫做一(yī)個完全的物(wù)理備份。他的操作方式:對所有表獲取一(yī)個隻讀鎖=>做文件拷貝=>釋放(fàng)鎖。 # perform an online backup into /backup/location mysqlhotcopy -u root -p password database_name /backup/location mysqlsnapshot - (online, raw) 一(yī)個非常好的工(gōng)具用來在聯機方式下(xià)獲得MySQL數據庫的一(yī)個快照。可以配置它來壓縮數據,并/或 爲每一(yī)個數據庫提供一(yī)個分(fēn)離(lí)的tar文件。 不過他隻适合 MyISAM 類型數據庫。 # save a full database snapshot of an online database into /backup/location mysqlsnapshot -u root -pPassword -s /backup/location
# restore a snapshot tar -xvf /backup/location/db.tar
ibbackup - (online, raw) 可以對使用InnoDB和MyISAM表的任何數據庫做聯機備份。是一(yī)個很好的工(gōng)具就是要收費(fèi).當然如果你是一(yī)個InnoDB的用戶,還是值得花錢購買的。 # perform online backup of MyISAM / InnoDB tables ibbackup /etc/my.cnf /etc/ibbackup.cnf
# restore recent backup (as configured in ibbackup.cnf) ibbackup –restore /etc/ibbackup.cnf
cp, scp, nc - (offline, raw) 如果你可以停下(xià)數據庫,則可以使用這幾個工(gōng)具直接拷貝數據庫目錄下(xià)的文件。是獲取數據庫快照的最安全方法。 |