首頁 > 資料庫 > mysql教程 > MySQL資料庫完全備份與增量備份怎麼實現

MySQL資料庫完全備份與增量備份怎麼實現

WBOY
發布: 2023-05-27 11:40:23
轉載
2342 人瀏覽過

定義

完全備份就是將資料庫中的資料及所有物件全部備份。

由於 MySQL 伺服器中的資料文件是基於磁碟的文字文件,所以完全備份就是複製資料庫文件,是最簡單也是最快速的方式。

但 MySQL 伺服器的資料檔案在伺服器運作期間,總是處於開啟狀態,為實現真正的完全備份,需要先停止 MySQL 資料庫伺服器。

為了確保資料的完整性,在停止 MySQL 伺服器之前,需要先執行 flush tables 語句將所有資料寫入到資料檔案中。同學只需知道這種方法不可行,因為在生產環境下停止資料庫進行備份是不可取的。

使用mysqldump 指令實作對資料表、資料庫、資料庫系統進行備份:

mysqldump [-h主机名] –u用户名 –p密码 --lock-all-tables --database [tables] > 文件名
登入後複製

-h 主機名,可省略,表示本機伺服器,--lock-all-tables 對要備份的資料庫的所有表施加讀鎖(在這個過程中,資料庫嚴格處於read only 狀態),--database 後面可以加上需要備份的表,沒有指定表名,則表示備份整個資料庫。

完全備份與復原示範

準備一張 student 表,將該表建在 world 資料庫中。

已建表:

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)
    );
登入後複製

插入資料:

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

MySQL資料庫完全備份與增量備份怎麼實現

##使用 

flush tables; 語句將所有資料寫入到資料檔案中:

FLUSH TABLES;
登入後複製

退出mysql 環境,使用mysqldump 指令對資料庫world 進行完全備份:

mysqldump -u root -p --lock-all-tables --databases world > /tmp/world.sql
登入後複製

#進入/tmp 目錄下,查看備份檔:

cd /tmp
ls
登入後複製

現在,我們對world 這個函式庫已經做了完全備份,不怕其資料遺失。

模擬world 資料庫中的student 表格遺失:

DROP TABLE student;
登入後複製

確認表被刪除

SHOW TABLES;
登入後複製
登入後複製

MySQL資料庫完全備份與增量備份怎麼實現

MySQL資料庫完全備份與增量備份怎麼實現

使用mysql 指令恢復資料庫:

mysql -uroot -p < /tmp/world.sql
登入後複製
MySQL資料庫完全備份與增量備份怎麼實現進入mysql 環境,查看復原結果:

SHOW TABLES;
登入後複製
登入後複製

輸出結果:############################################################################################## #########驗證表中資料:######
SELECT * FROM student;
登入後複製
#############增量備份是上次完全備份或增量備份以來改變了的資料進行備份,依賴二進位日誌文件,需要開啟資料庫的binlog 日誌。先對資料庫進行一次全量備份,備份同時將binlog 日誌刷新,在這次備份之後的所有操作都會記錄在新增的binlog 日誌當中,我們只需要對增加的binlog 進行備份,就實現了對不斷增加內容的資料庫的完美備份了。當資料庫出現異常的時候,我們可以先還原最近一次的全量備份,接著將增量備份的檔案一個一個依序還原即可實現資料庫復原。 ###

以上是MySQL資料庫完全備份與增量備份怎麼實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板