數據備份與還原第一篇分享給大家,具體內容如下
基礎概念:
備份,將當前已有的數據或記錄另存一份;
還原,將數據恢復到備份時的狀態。
為什么要進行數據的備份與還原?
防止數據丟失;
保護數據記錄。
數據備份與還原的方式有很多種,具體可以分為:數據表備份、單表數據備份、SQL備份和增量備份。
數據表備份
數據表備份,不需要通過 SQL 來備份,我們可以直接進入到數據庫文件夾復制對應的表結構以及數據;在需要還原數據的時候,直接將備份(復制)的內容放回去即可。
不過想要進行數據表備份是有前提條件的,因為不同的存儲引擎之間是有區別的。
對于存儲引擎,MySQL 主要使用兩種,分別為:InnoDB 和 Myisam,兩者均免費。在這里,咱們可以順便科普一下存儲引擎的知識:

其中,Myisam 和 InnoDB 的數據存儲方法也有所區別:
Myisam:表、數據和索引全部單獨分開存儲;
InnoDB:只有表結構,數據全部存儲到ibd文件中。
執行如下 SQL 語句,測試 Myisam 的數據存儲方式:
-- 創建 Myisam 表
create table my_myisam(
id int
)charset utf8 engine = myisam;
-- 顯示表結構
show create table my_myisam;
-- 插入數據
insert into my_myisam values(1),(2),(3);
-- 顯示數據
select * from my_myisam;

如上圖所示,我們創建了名為my_myisam,存儲引擎為 Myisam 的數據表。為了驗證 Myisam 的存儲特性,我們可以到data文件夾查看具體的數據存儲情況:

如上圖所示,我們僅僅創建了一個表my_myisam,但是 Myisam 對于會生成三個存儲文件,分別為:
my_myisam.frm:存儲表的結構;
my_myisam.MYD:存儲表的數據;
my_myisam.MYI:存儲表的索引。
現在,我們將這三個文件復制到testoo數據庫(至于如何找到 MySQL 數據文件的存儲位置,可以參考詳述查看 MySQL 數據文件存儲位置的方法):

執行如下 SQL 語句,進行測試:
-- 切換數據庫
use testoo;
-- 查看 testoo 數據庫中的表
show tables;
-- 查看表 my_myisam
select * from my_myisam;

如上圖所示,顯然我們已經通過復制文件的方式,完成了數據表的備份工作。
在這里,有一點需要我們注意,那就是:我們可以將通過 InnoDB 存儲引擎產生的.frm和.idb文件復制到另一個數據庫,也可以通過show tables命令查看復制過來的表名稱,但是卻無法獲得數據。

執行如下 SQL 語句,進行測試:
-- 查看 testoo 數據庫中的表
show tables;
-- 查看表 my_class
select * from my_class;

通過以上測試,顯然數據表備份這種備份方式更適用于 Myisam 存儲引擎,而且備份的方式也很簡單,直接復制 Myisam 存儲引擎產生的.frm、.MYD和.MYI三個存儲文件到新的數據庫即可。
溫馨提示:符號[]括起來的內容,表示可選項;符號+,則表示連接的意思。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 史上最簡單的MySQL數據備份與還原教程(中)(三十六)
- 史上最簡單的MySQL數據備份與還原教程(下)(三十七)
- 詳解MySQL數據備份之mysqldump使用方法
- Linux下實現MySQL數據備份和恢復的命令使用全攻略
- 通過實例學習MySQL分區表原理及常用操作