數據庫——(12)數據備份與還原

備份:將當前已有的數據或者紀錄保留
還原:將已經保留的數據恢復到對應的表中

爲什麼要做備份還原?

1.防止數據丟失:被盜、誤操作。
2.保護數據紀錄

數據備份還原的方式有很多種:數據表備份、單表數據備份、SQL備份、增量備份。

數據表備份
不需要通過SQL來備份:直接進入到數據庫文件夾複製對應的表結構以及數據文件,以後還原的時候,直接將備份的內容放進去就行。

前提條件:根據不同的存儲引擎有不同的區別。
比較適合myisam存儲引擎。

單表數據備份
每次只能備份一張表,只能備份數據(表結構不能備份)
通常的使用:將表中數據導出到文件。

備份:從表中選出一部分數據保存到外部的文件中(outfile)
select */字段列表 into outfile 文件所在路徑 from 數據源;(前提:外部文件不存在)

select * into outfile 
'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/a.txt' 
from my_stu;

高級備份:自己制定字段和行的處理方式
select */字段列表 into outfile 文件所在路徑 fields 字段處理 lines 行處理 from 數據源;
fields:字段處理

enclosed by:字段使用什麼內容包裹,默認是 空字符串。
teminated by:字段以什麼結束,默認是 tab鍵。
escaped by:特殊符號用什麼方式處理,默認是‘\\’,使用反斜槓轉義。

lines:行處理

starting by:每行以什麼開始,默認是空字符串。
select * into outfile 
'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/b.txt'
-- 字段處理
fields
enclosed by '"' -- 數據使用雙引號包裹
terminated by '|' -- 數據使用豎線分隔
-- 行處理
lines
starting by 'START:'
from my_class;

數據還原:將一個外部保存的數據重新恢復到表中(需要表結構存在)
load data infile 文件所在路徑 into table 表名[(字段列表)] file 字段處理 lines 行處理; (怎麼備份就怎麼還原)

SQL備份
備份的是SQL語句:系統會對錶結構以及數據進行處理,變成對應的SQL語句,然後進行備份:還原的時候只要執行SQL指令即可(主要針對表結構)。

備份:可惜MySQL沒有提供備份指令,所以需要利用MySQL提供的軟件:mysqldump.exe。
mysqldump.exe也是一種客戶端,需要操作服務器,必須連接認證。
Mysqldump.exe/mysqldump.exe -hPup 數據庫名字[數據表名字1][數據表名字2]>外部文件目錄(建議使用.sql結尾)

mysqldump  -uroot -proot mydatabase my_stu > C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/c.sql

SQL還原數據:兩種方式
方案1:使用mysql.exe客戶端還原
Mysql.exe/mysql.exe -hPup 數據庫名字 < 備份文件路徑

mysql -uroot -proot mydatabase < C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/c.sql

方案2:使用SQL指令還原
source 備份文件路徑

source C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/c.sql;

SQL備份優缺點

1.優點:可以備份結構。
2.缺點:會浪費空間(額外增加SQL指令)。

增量備份
不是針對數據或者SQL指令進行備份,而是針對MySQL服務器的日誌文件進行備份。

增量備份:指定時間段開始進行備份,備份數據不會重複,而且所有的操作都會備份(大項目都用增量備份)。

發佈了38 篇原創文章 · 獲贊 2 · 訪問量 9712
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章