您好,登錄后才能下訂單哦!
數據庫備份的重要性:
在生產環境中,數據的安全性是至關重要的,任何數據的丟失都可能產生嚴重的后果。數據庫備份的重要性主要體現在:
1.提高系統的高可用性的和災難可恢復性,在數據庫系統崩潰時,沒有數據庫備份就沒法找到數據。
2.使用數據庫備份還原數據庫,是數據庫崩潰時提供數據恢復最小代價的最優方案,如果讓用戶重新添加數據,代價未免太大。
3.沒有數據就沒有一切,數據庫備份是一種防范災難的強力手段。
使用數據庫的過程中有多種原因造成數據丟失:
程序錯誤、人為錯誤、計算機失敗、磁盤失敗、災難(地震 火災等)和偷竊
數據庫備份的分類:
示例:
create database school;
create table info (id int,name char(10));
Insert into info (id,name) values (1,‘zs’);
----------------------完整備份----------------------------------------------------
Insert into info (id,name) values (2,’ls’);
------------------------增量備份----------------------------------------------
Insert into info (id,name) values (3,’ww’);
-------------------------增量備份和差異備份----------------------------------
Insert into info (id,name) values (4,’zl’);
---------------------增量備份和差異備份------------------------------
MySQL完全備份概念解讀
MySQL的備份方式主要有完全備份與增量備份。完全備份是對整個數據庫的備份、數據庫結構和文件結構的備份,保存的是備份完成時的數據庫,時增量備份的基礎。
完全備份的優點是備份與恢復操作簡單方便,缺點是數據存在大量重復,占用大量的備份空間,備份的時間長。
在生產環境中,這兩種備份方式都會使用,需要制定合理高效的方案達到備份數據的目的,避免數據丟失造成嚴重的后果。
關于備份這里介紹兩種方式
1.使用tar打包文件夾備份:MySQL的數據庫文件默認都是保存在安裝目錄的data文件夾下面,可以直接保存data文件夾,但是占用空間的空間較大,可以使用tar打包壓縮進行保存。下面介紹一些相關操作命令:
[root@localhost mysql]# yum install xz -y //安裝xz壓縮格式工具
[root@localhost mysql]# date +%F //指定的壓縮文件日期格式
[root@localhost mysql]# tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data //對數據庫文件夾進行壓縮打包到/opt下
[root@localhost ~]# du -sh /opt/mysql-2018-08-30.tar.xz //du查看打包后占用的內存大小
[root@localhost ~]# du -sh /usr/local/mysql/data //du查看打包前原文件夾占用的內存大小
[root@localhost ~]# tar Jxvf /opt/mysql-2018-08-30.tar.xz /usr/local/mysql/data/ //將打包的備份文件恢復到數據庫文件夾
具體操作如下圖:
2.使用mysqldump工具備份:使用mysqldump可以更加靈活地控制備份的內容,比如某幾個表或庫都可以單獨備份。下面介紹一些相關操作命令:
(1)備份表數據:
mysqldump -u 用戶名 -p 密碼 選項 數據庫名 表名 > /備份路徑/備份文件名
mysqldump -u root -p school info > /opt/info.sql
(2)單個庫備份:
mysqldump -u 用戶名 -p 密碼 選項 數據庫名 > /備份路徑/備份文件名
mysqldump -uroot -p school > /opt/school.sql #只會寫庫里所有表的創建和數據記錄
(3)多個庫備份:
mysqldump -u 用戶名 -p 密碼 選項 --databases 庫名1 庫名2 > /備份路徑/備份文件名
mysqldump -uroot -p --databases school kgc > /opt/school_kgc.sql
(4)對所有庫進行完全備份:
mysqldump -u 用戶名 -p 密碼 選項 --all-databases > /備份路徑/備份文件名
mysqldump -uroot -p --all-databases > /opt/all.sql
(5)備份表結構:
mysqldump -u 用戶名 -p 密碼 -d 數據庫名 表名 > /備份路徑/備份文件名
mysqldump -u root -p -d school info > /opt/info-d.sql
MySQL數據完全恢復
當需要恢復數據庫的時候,可以使用source命令和MySQL命令
(1)使用source命令將已經備份的庫school恢復到MySQL中:
mysqldump -u root -p school > /opt/school.sql
(2)使用MySQL命令整庫數據,同樣在庫chool提前已經備份好的情況下進行恢復:
mysqldump -u root -p school > /opt/school.sql
(3)mysqldump -u -root -p --databases school > /opt/school01.sql #連同庫school本身和里面的表都會備份,直接恢復即可:
恢復表:
(1)使用source命令恢復表,在數據表已經備份好的前提下進行恢復操作:
mysqldump -u root -p school info > /opt/info.sql #備份表
(2)使用MySQL恢復數據表,同樣也是在數據表已經備份好的前提下進行恢復操作:
mysqldump -u root -p school info > /opt/info.sql #備份表
mysql -u 用戶名 -p 密碼 庫名 < /庫備份教本的路徑
本篇補充
備份之后的文件是一個sql腳本,sql結尾是固定格式
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。