在生成環境中,資料的安全性是至關重要的,任何資料的丟失都可能產生嚴重的後果
使用資料庫過程中,有多種原因造成資料的丟失:
1 程式錯誤:指對資料庫操作的程式難免有些錯誤,造成資料丟失
2 人為錯誤:指由於使用人員的誤操作造成的資料破壞,還有可能是黑 客對系統×××造成的資料丟失等
3 計算機失敗:指執行資料庫的伺服器作業系統或軟體破壞,有可能造成資料的損壞
4 磁碟失敗:指硬碟等儲存資料的硬體裝置,長時間執行後可能損壞,造成資料丟失
5 災難:火災,**,偷竊等現象,都有可能造成資料丟失
資料庫備份的分類:
1 物理備份:指對資料庫作業系統的物理檔案(如資料檔案,日誌檔案)的備份。物理備份又可以分為離線備份(冷備份)和聯機備份(熱備份)
冷備份:在關閉資料庫時進行的備份操作,能夠較好的儲存資料庫的完整性
熱備份:在資料庫執行狀態中進行操作,這種備份方法依賴於資料庫的日誌檔案
2 邏輯備份:指對資料庫邏輯元件(如表等資料庫物件)的備份
從資料庫的備份策略角度,備份可以分為完全備份,差異備份和增量備份
(2)差異備份:備份那些自從上次完全備份之後被修改過的檔案,只備份資料庫的部分內容。它比完全備份要小,因為只包含自上次完全備份以來所改變的資料庫。優點是儲存和恢復速度快
(3)增量備份:只有那些在上次完全備份或者增量備份後被修改的檔案才會被備份
下面我將對資料庫進行完全備份
一 使用tar打包資料夾備份
mysql的資料庫檔案預設都是儲存在安裝目錄的data資料夾下面,可以直接儲存data資料夾,但是占用的的空間較大,可以使用tar打包壓縮進行儲存
1在data目錄下可以看到一些資料庫檔案
2檢視系統中有沒有xz工具包,如果沒有可以用yum安裝
3使用tar命令,將data目錄下的檔案打包到/opt目錄下,在/opt目錄下可以看到有乙個壓縮包,如果資料庫檔案損壞,直接把壓縮檔案解壓過去即可
二 使用mysqldump工具備份
1 首先我創了school和school01兩個庫,同時在school的庫中建了一張名為class的表
2 我開始對庫進行備份
備份乙個庫 mysqldump -u 使用者名稱 -p [密碼] [選項] [資料庫名] > /備份路徑/備份檔案名
備份多個庫 mysqldump -u 使用者名稱 -p [密碼] [選項] --databases 庫名1 庫名2... > /備份路徑/備份檔案名
備份所有庫 myqsldump -u 使用者名稱 -p [密碼] [選項] --all-databases > /備份路徑/備份檔案名
3 對class表進行備份
備份一張表 mysqldump -u 使用者名稱 -p [密碼] [選項] [資料庫名] [資料表名] > /備份路徑/備份檔案名
mysqldump -u 使用者名稱 -p [密碼] -d [資料庫名] [資料表名] > /備份路徑/備份檔案名 #-d表示對這張表的結構進行備份
三 恢復整庫
1 刪除兩個資料庫
2使用mysql命令恢復,不登入資料庫,直接 'mysql -u 使用者名稱 -p [密碼] < 庫備份指令碼的路徑',在恢復之前需要將原來的資料庫刪除
3使用source命令恢復,登入資料庫後,輸入命令『source 備份指令碼的路徑』,在恢復前也要刪除原有資料庫
#注意如果在備份資料庫時沒有加上database,那麼在恢復時需要重新建立乙個資料庫
四 恢復表
1 進入資料庫,刪除原有的表
2 在資料庫中使用source命令直接恢復,'source 備份指令碼路徑'
3 使用mysql命令恢復表,『mysql -u 使用者名稱 -p [密碼] 庫名 < 庫備份指令碼的路徑』 #注意這條命令中需要指定庫名
4檢視表,可以看到刪除的表已經被恢復了
MySQL按日備份
經常我們要做一些資料庫的備份,主要的備份有三種 第一種 實時備份,表現為主從備份 第二種 非實時的備份,表現為按日,按星期備份等 第三種 異地備份,表現為災備,這種一般是銀行,大機構使用。今天我們來 下按日備份 我們首先編寫一段這樣的指令碼 mysqldump uroot p666666 safe ...
mysql的備份和還原 mysql備份和還原
一 資料備份 1 使用mysqldump命令備份 mysqldump命令將資料庫中的資料備份成乙個文字檔案。表的結構和表中的資料將儲存在生成的文字檔案中。mysqldump命令的工作原理很簡單。它先查出需要備份的表的結構,再在文字檔案中生成乙個create語句。然後,將表中的所有記錄轉換成一條ins...
mysql 邏輯備份 mysql的邏輯備份和恢復
備份指定的資料庫或此資料庫中的某些表 mysqldump options db name tables backup.sql 備份指定的乙個或多個資料庫 mysqldump databases 資料庫1 資料庫2 資料庫3 backup.sql 備份所有的資料庫 mysqldump all data...