1. 程式人生 > >MYSQL數據庫備份還原

MYSQL數據庫備份還原

span 方便 不可用 inf 一個數據庫 備份 不一致 root 最簡

MYSQL數據庫備份還原

一、 數據庫備份

備份數據是數據庫管理最常用的操作。為了保證數據庫中數據的安全,數據管理員需要定期地進行數據備份。一旦數據庫遭到破壞,即可通過備份的文件來還原。因此,數據備份是很重要的工作。

1、使用mysqldump 命令備份

mysqldump 命令可以將數據庫中的數據備份成一個文本文件。表的結構和表中的數據將存儲在生成的文本文件中。mysqldump 命令的工作原理很簡單: 它先查出需要備份的表的結構,再在文本文件中生成一個CREATE 語句,然後將表中的所有記錄轉換成一條INSERT 語句。還原數

據時就可以使用其中的CREATE 語句來創建表,使用其中的INSERT 語句來還原數據。

使用mysqldump 命令備份一個數據庫的基本語法如下:

mysqldump –u username –pPassword dbname table1t able2...>BackupName.sql

2、通過復制進行備份

MySQL 有一種最簡單的備份方法,就是將其中的數據庫文件直接復制出來。這種方法最簡單,速度也最快。使用該方法時,最好將服務器先停止,這樣可以保證在復制期間數據庫中的數據不會發生變化。如果在復制數據庫的過程中還有數據寫入,就會造成數據不一致。這種方法雖然簡單快捷,但不是最好的備份方法。因為,實際情況可能不允許停止MySQL服務器。而且,這種方法對InnoDB 存儲引擎的表不適用。對於MyISAM 存儲引擎的表,這樣備份和還原很方便。但是還原時最好是相同版本的MySQL 數據庫,否則可能會出現存儲文件類型不同的情況。

3、使用msqlhotcopy工具快速備份

如果備份時不能停止MySQL 服務器,可以采用msqlhotcopy工具。msqlhotcopy工具的備份 方式比msqlhotcopy命令快。msqlhotcopy工具是一個Perl腳本,主要在Linux操作系統下使用。msqlhotcopy工具使用LOCKTABLES、FLUSTABLES和cp進行快速備份。其工作原理是,先將需要各份的數據IMET-使提作鎖。然後,用FUSHTALES將內存中的數據寫回到硬位上的數據本中。最後,把需要備份的數據庫文件復制到目標目錄下。

技術分享圖片技術分享圖片

二、 數據庫還原

管理員的非法操作和計算機的故障都會破壞數據庫文件。當數據庫遇到這些意外時,可以通過備份文件將數據庫還原到備份時的狀態,這樣可以將損失降低到最小。

  1. 使用mysql還原

通常使用myqdump命令將數據庫的數據備份成一個文本文件,通常這個文件的後綴名是.sql。需要還原時,可以使用mysql 命令來還原備份的數據。備份文件中通常包含CREATE 語句和INSERT 語句。mysql 命令可以執行備份文件中的CREATE 諸句和INSERT 語旬,通過CREATE 語句來創建數據庫和表,通過INSERT 語句來插入備份的數據。mysql 命令的基本語法如下,

mysql –u root –pPassword [dbname] <backup.sql

執行完後,MySQL數據庫中就已經還原了all.sql文件中所有數據庫

2.通過復制進行還原

通過這種方式還原時,必須保證兩個MySQL 數據庫的主版本號是相同的,而且這種方式對MyISAM 類型的表比較有效,對於InnoDB類型的表則不可用,因為InnoDB表的表空間不能直接復制。

技術分享圖片技術分享圖片

MYSQL數據庫備份還原