您好,登錄后才能下訂單哦!
這篇文章主要介紹“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);
使用 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ù)庫:
mysql -uroot -p < /tmp/world.sql
進入 mysql 環(huán)境,查看恢復結(jié)果:
SHOW TABLES;
輸出結(jié)果:
驗證表中數(shù)據(jù):
SELECT * FROM student;
增量備份是對上次完全備份或增量備份以來改變了的數(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>
免責聲明:本站發(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)容。