什么是 MySQL 熱備份以及如何在 Windows 中執(zhí)行它?
熱備份是在數(shù)據(jù)庫(kù)運(yùn)行和應(yīng)用程序讀寫(xiě)數(shù)據(jù)庫(kù)時(shí)進(jìn)行的,因此不會(huì)中斷 MySQL 事務(wù)。從此頁(yè)面了解如何高效運(yùn)行 MySQL 熱備份。
熱備份是在數(shù)據(jù)庫(kù)運(yùn)行和應(yīng)用程序讀寫(xiě)數(shù)據(jù)庫(kù)時(shí)進(jìn)行的,因此不會(huì)中斷 MySQL 事務(wù)。從此頁(yè)面了解如何高效運(yùn)行 MySQL 熱備份。
MySQL 熱備份是指在數(shù)據(jù)庫(kù)運(yùn)行、應(yīng)用程序讀寫(xiě)的過(guò)程中對(duì)MySQL 數(shù)據(jù)庫(kù)進(jìn)行備份。 MySQL 熱備份的優(yōu)點(diǎn)是它不會(huì)阻塞正常的數(shù)據(jù)庫(kù)操作,它甚至可以捕獲備份發(fā)生時(shí)發(fā)生的更改。 在以下情況下,您會(huì)希望進(jìn)行熱備份:
數(shù)據(jù)足夠大以至于備份需要很長(zhǎng)時(shí)間,并且您不希望在備份過(guò)程中停止數(shù)據(jù)庫(kù)操作。
這些數(shù)據(jù)對(duì)您的業(yè)務(wù)非常重要,您必須在不使您的應(yīng)用程序、網(wǎng)站或 Web 服務(wù)脫機(jī)的情況下捕獲每一個(gè)最后的更改。
MySQL熱備份是一種復(fù)制實(shí)際數(shù)據(jù)文件的物理備份。 它不同于重現(xiàn)表結(jié)構(gòu)和數(shù)據(jù)的邏輯備份。 其他 MySQL 物理備份類(lèi)型包括 冷備份 和 熱備份 .
要制作 MySQL 熱備份,您可以使用 mysqlbackup命令,它是 MySQL Enterprise Backup 組件的一部分。 它允許您備份正在運(yùn)行的 MySQL 實(shí)例,包括 InnoDB 表。 為了完整起見(jiàn),它還可以從 MyISAM 和其他存儲(chǔ)引擎?zhèn)浞荼怼?按照以下說(shuō)明創(chuàng)建 MySQL 數(shù)據(jù)庫(kù)的熱備份:
1. 下載 并安裝 MySQL Enterprise Backup。
“提示:”MySQL Enterprise Backup 可以使用單獨(dú)的 .msi 安裝程序或 .zip 文件單獨(dú)安裝。 使用 .msi 安裝程序安裝時(shí),選擇Windows PATH 中的包含目錄選項(xiàng) ,以便您可以從任何目錄運(yùn)行 mysqlbackup。
2. 指定備份目錄的位置。 您可以指定兩個(gè)路徑 - 一個(gè)用于備份圖像,一個(gè)用于臨時(shí)輸出、狀態(tài)和元數(shù)據(jù)文件。 對(duì)于我來(lái)說(shuō),我將 D:\MySQLBackup\Backups 和 D:\MySQLBackup\Backup-tmp 指定為備份目錄。
3. 以管理員身份運(yùn)行命令提示符并輸入以下命令以在運(yùn)行時(shí)備份整個(gè) MySQL 實(shí)例。
mysqlbackup -u root -p --backup-image=D:\MySQLBackup\Backups\my.mbi --backup-dir=D:\MySQLBackup\Backup-tmp 備份到圖像
“[密碼]”
“注意:”
● backup-to-image:創(chuàng)建單個(gè)文件備份。
● --backup-image:指定單個(gè)文件備份的位置和文件名。
● --backup-dir:提供一個(gè)空文件夾的位置來(lái)存儲(chǔ)臨時(shí)文件。
4. 當(dāng)您看到“mysqlbackup completed OK!”時(shí),鍵入 exit并按 Enter 鍵關(guān)閉命令提示符。
為確保在出現(xiàn)問(wèn)題時(shí)能夠成功恢復(fù)數(shù)據(jù),您可以使用以下命令檢查備份的完整性:
mysqlbackup --backup-image=D:\MySQLBackup\Backups\my.mbi 驗(yàn)證
如果您的 MySQL 數(shù)據(jù)庫(kù)出現(xiàn)嚴(yán)重問(wèn)題,您可以按照以下步驟恢復(fù) MySQL 實(shí)例:
1. 在服務(wù)窗口中關(guān)閉數(shù)據(jù)庫(kù)服務(wù)器。 您可以按 Win + R鍵并在“運(yùn)行”窗口中鍵入 services.msc以進(jìn)入該窗口。
2. 刪除服務(wù)器數(shù)據(jù)目錄和您使用--backup-dir 選項(xiàng)指定的目錄中的所有文件。
“提示:”如果您要通過(guò) --innodb_data_home_dir、--innodb_log_group_home_dir 和 --innodb_undo_directory 選項(xiàng)指定其他目錄進(jìn)行還原,您還應(yīng)該刪除這些目錄中的所有文件,否則還原操作將失敗。
3. 在提升的命令提示符中執(zhí)行以下命令以啟動(dòng)恢復(fù)過(guò)程。
mysqlbackup --datadir=“C:\ProgramData\MySQL\MySQL Server 8.0\Data” --backup-image=D:\MySQLBackup\Backups\my.mbi --backup-dir=D:\MySQLBackup\Backup-tmp 復(fù)制-返回并應(yīng)用日志
“注意事項(xiàng):”
● copy-back-and-apply-log:“copy-back”從鏡像文件中提取備份,復(fù)制到服務(wù)器上待恢復(fù)的數(shù)據(jù)目錄中。 “apply-log”對(duì)恢復(fù)的數(shù)據(jù)執(zhí)行應(yīng)用日志操作,使它們保持最新。
● --datadir:提供用于恢復(fù)數(shù)據(jù)的數(shù)據(jù)目錄的位置。 如果數(shù)據(jù)目錄路徑中有空格,請(qǐng)?jiān)诼窂絻蛇吋由弦?hào),否則您會(huì)卡在“錯(cuò)誤:在末尾找到無(wú)關(guān)命令”。
4. 當(dāng)您看到“mysqlbackup completed OK!”時(shí),鍵入 exit并按 Enter 鍵關(guān)閉命令提示符。
5. 重啟MySQL數(shù)據(jù)庫(kù)服務(wù)器。
“提示:”根據(jù)您打算如何啟動(dòng)恢復(fù)的服務(wù)器,您可能需要調(diào)整恢復(fù)的數(shù)據(jù)目錄的所有權(quán)。 例如服務(wù)器要以mysql用戶啟動(dòng),使用 chown -R mysql:mysql /path/to/datadir命令將data目錄及其下文件的owner屬性改為mysql用戶,以及 mysql 組的組屬性。
您可能會(huì)發(fā)現(xiàn)使用 MySQL Enterprise Backup 可以輕松執(zhí)行 MySQL 熱備份和恢復(fù)。 但是,使用 mysqlbackup命令需要非常小心。 多余的空格或遺漏的引號(hào)可能會(huì)導(dǎo)致備份/恢復(fù)失敗。
為了讓MySQL數(shù)據(jù)庫(kù)文件備份和恢復(fù)更簡(jiǎn)單省心,您可以求助于備份軟件- 傲梅企業(yè)備份標(biāo)準(zhǔn)版。 它允許您在數(shù)據(jù)庫(kù)運(yùn)行或不運(yùn)行時(shí)創(chuàng)建備份。
有四種可用的備份類(lèi)型: 系統(tǒng)/磁盤(pán)/分區(qū)/文件備份。 備份MySQL數(shù)據(jù)庫(kù),需要使用文件備份來(lái)備份數(shù)據(jù)目錄。 如果你的數(shù)據(jù)目錄在 C:\ProgramData,它默認(rèn)是隱藏的,你必須在備份前顯示隱藏的項(xiàng)目。 我們來(lái)看看詳細(xì)步驟:
步驟 1.下載傲梅企業(yè)備份標(biāo)準(zhǔn)版試用版。 安裝并運(yùn)行它。
步驟 2.單擊 左側(cè)面板中的 “備份”并選擇“文件備份”。
步驟 3.為任務(wù)命名,選擇 “添加文件夾”,添加MySQL的數(shù)據(jù)目錄。
步驟 4.選擇一個(gè)目標(biāo)路徑來(lái)保存?zhèn)浞輬D像。 它支持各種備份存儲(chǔ)設(shè)備,例如外部硬盤(pán)驅(qū)動(dòng)器、USB 驅(qū)動(dòng)器和 NAS 設(shè)備。
步驟 5.如果需要, 單擊 “計(jì)劃和 “方案”進(jìn)行更多設(shè)置”。點(diǎn)擊 “開(kāi)始備份”,開(kāi)始MySQL熱備份。
轉(zhuǎn)到 “主頁(yè)”并找到 MySQL 備份任務(wù)。 展開(kāi)下拉菜單并選擇 “恢復(fù)”。 然后,按照向?qū)瓿稍撨^(guò)程。
?提示:
如果你想恢復(fù)一個(gè)特定的數(shù)據(jù)庫(kù)而不是整個(gè)MySQL實(shí)例,你可以導(dǎo)航到相應(yīng)的數(shù)據(jù)庫(kù)文件夾并檢查它。
如果要將現(xiàn)有表恢復(fù)到其以前的版本,則需要在單擊“開(kāi)始恢復(fù)”之前選中 “替換現(xiàn)有文件”。
如果提示文件正在使用中,無(wú)法覆蓋,可以關(guān)閉MySQL數(shù)據(jù)庫(kù)服務(wù)器再試。
本文提供了兩種解決方案來(lái)幫助您在 Windows 下執(zhí)行 MySQL 熱備份。 如果您更喜歡命令行操作,您可以選擇 MySQL Enterprise Backup。 如果你想通過(guò)直觀的 GUI 更輕松地操作,那么推薦傲梅企業(yè)備份標(biāo)準(zhǔn)版。 除了備份和恢復(fù)功能外,傲梅企業(yè)備份標(biāo)準(zhǔn)版還擁有克隆功能,您可以使用它克隆物理服務(wù)器!