溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL數(shù)據(jù)庫完全備份與增量備份怎么實現(xiàn)

發(fā)布時間:2022-08-10 11:01:12 來源:億速云 閱讀:188 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“MySQL數(shù)據(jù)庫完全備份與增量備份怎么實現(xiàn)”,在日常操作中,相信很多人在MySQL數(shù)據(jù)庫完全備份與增量備份怎么實現(xiàn)問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MySQL數(shù)據(jù)庫完全備份與增量備份怎么實現(xiàn)”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

定義

完全備份就是將數(shù)據(jù)庫中的數(shù)據(jù)及所有對象全部備份。

由于 MySQL 服務(wù)器中的數(shù)據(jù)文件是基于磁盤的文本文件,所以完全備份就是復制數(shù)據(jù)庫文件,是最簡單也是最快速的方式。

但 MySQL 服務(wù)器的數(shù)據(jù)文件在服務(wù)器運行期間,總是處于打開狀態(tài),為實現(xiàn)真正的完全備份,需要先停止 MySQL 數(shù)據(jù)庫服務(wù)器。

為了保障數(shù)據(jù)的完整性,在停止 MySQL 服務(wù)器之前,需要先執(zhí)行 flush tables 語句將所有數(shù)據(jù)寫入到數(shù)據(jù)文件中。對于該方法同學們只需了解,因為將生產(chǎn)環(huán)境下的數(shù)據(jù)庫停下來做備份是不可取的。

使用 mysqldump 命令實現(xiàn)對表、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)進行備份:

mysqldump [-h主機名] –u用戶名 –p密碼 --lock-all-tables --database [tables] > 文件名

-h 主機名,可省略,表示本地服務(wù)器,--lock-all-tables 對要備份的數(shù)據(jù)庫的所有表施加讀鎖(在這個過程中,數(shù)據(jù)庫嚴格處于 read only 狀態(tài)),--database 后面可以加上需要備份的表,沒有指定表名,則表示備份整個數(shù)據(jù)庫。

完全備份與恢復演示

準備一張 student 表,將該表建在 world 數(shù)據(jù)庫中。

建表:

CREATE DATABASE world;
USE world;
CREATE TABLE student(
    stuId INT(10) NOT NULL,
    stuName VARCHAR(10) NOT NULL,
    stuAge INT(10) NOT NULL,
    PRIMARY KEY(stuId)
    );

插入數(shù)據(jù):

INSERT INTO student(stuId, stuName, stuAge) VALUES(1, 'zhangsan', 18), (2, 'lisi', 19),(3, 'wangwu', 18);

MySQL數(shù)據(jù)庫完全備份與增量備份怎么實現(xiàn)

使用 flush tables; 語句將所有數(shù)據(jù)寫入到數(shù)據(jù)文件中:

FLUSH TABLES;

退出 mysql 環(huán)境,使用 mysqldump 命令對數(shù)據(jù)庫 world 進行完全備份:

mysqldump -u root -p --lock-all-tables --databases world > /tmp/world.sql

進入 /tmp 目錄下,查看備份文件:

cd /tmp
ls

現(xiàn)在,我們對 world 這個庫已經(jīng)做了完全備份,不怕其數(shù)據(jù)丟失。

模擬 world 數(shù)據(jù)庫中的 student 表丟失:

DROP TABLE student;

確認表被刪除

SHOW TABLES;

MySQL數(shù)據(jù)庫完全備份與增量備份怎么實現(xiàn)

使用 mysql 命令恢復數(shù)據(jù)庫:

mysql -uroot -p < /tmp/world.sql

進入 mysql 環(huán)境,查看恢復結(jié)果:

SHOW TABLES;

輸出結(jié)果:

MySQL數(shù)據(jù)庫完全備份與增量備份怎么實現(xiàn)

驗證表中數(shù)據(jù):

SELECT * FROM student;

MySQL數(shù)據(jù)庫完全備份與增量備份怎么實現(xiàn)

增量備份是對上次完全備份或增量備份以來改變了的數(shù)據(jù)進行備份,依賴二進制日志文件,需要開啟數(shù)據(jù)庫的 binlog 日志。先對數(shù)據(jù)庫進行一次全量備份,備份同時將 binlog 日志刷新,在這次備份之后的所有操作都會記錄在新增的 binlog 日志當中,我們只需要對增加的 binlog 進行備份,就實現(xiàn)了對不斷增加內(nèi)容的數(shù)據(jù)庫的完美備份了。當數(shù)據(jù)庫出現(xiàn)異常的時候,我們可以先恢復最近一次的全量備份,接著將增量備份的文件一個一個按順序恢復即可實現(xiàn)數(shù)據(jù)庫恢復。

到此,關(guān)于“MySQL數(shù)據(jù)庫完全備份與增量備份怎么實現(xiàn)”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI