如果您在這里徘徊,那么我不需要向您解釋為什么執行 MySQL 數據庫的定期備份對于防止任何數據丟失至關重要。許多人問的關鍵問題是在哪里存儲這些備份。特別是在處理需要大量存儲空間的大型數據庫時,由于其可擴展性和低成本,對象存儲是首選解決方案。
在本文中,我們將向您展示如何直接從命令行將MySQL 數據庫備份到與Contabo S3 兼容的對象存儲。這要歸功于 Contabo 對象存儲與 AWS CLI(亞馬遜網絡服務命令行界面)兼容。
不要驚訝于本指南比您可以在網上找到的許多其他指南短得多。這要歸功于 AWS CLI,它使 Contabo 對象存儲的配置比使用其他存儲解決方案更容易。
此外,由于上述 S3 兼容性,將備份文件從 Linux 服務器傳輸到對象存儲非常容易。
如果您從未聽說過 Contabo Object Storage,可以在此處了解更多信息。
先決條件/要求
為了執行 MySQL 數據庫的備份,需要以下內容:
- 手頭有這些憑據的 S3 兼容對象存儲:
- 您的訪問密鑰
- 你的秘鑰
- 您的 S3 網址
- AWS CLI 已經安裝(并配置)在運行 MySQL 數據庫的服務器上。
如果您想了解如何在您的服務器上安裝和配置 AWS CLI,請在此處查看我們的文檔。
創建數據庫的備份
在將 MySQL 數據庫的備份上傳到對象存儲之前,您需要先創建一個本地備份。
幸運的是,這可以通過 MySQL 的內置命令來完成:
mysqldump –u [username] -p[password] [database_name] > backup.sql
根據數據庫的大小,此過程可能需要一段時間。
將[username]和[password]替換為您的 MySQL 實例登錄數據。
將[database_name]替換為您要備份的數據庫的名稱。
“?backup.sql?”是您的備份名稱。如果你愿意,你可以給它一個不同的名字。
上傳您的數據庫備份
要將數據庫的本地備份上傳到 Contabo 對象存儲,請使用以下命令:
aws --profile eu2 --region default --endpoint-url [your_s3_url] s3 cp [name_of_your_backup_file] s3://[bucket_name]
使用 Cron 計劃定期數據庫備份
要安排某個數據庫的定期備份,您需要做兩件事:
1.創建一個shell腳本
首先,我們將創建一個 shell 腳本,該腳本將創建某個數據庫的本地備份,并使用 AWS CLI 將此備份上傳到 Contabo 對象存儲。
為此,請使用此命令創建腳本:
nano database-to-os.sh
并粘貼以下內容:
#!/bin/bash? mysqldump –u [username] -p[password] [database_name] > backup.sql? aws --profile eu2 --region default --endpoint-url [your_s3_url] s3 cp [name_of_your_backup_file] s3://[bucket_name]
使用[CTRL]?+?O保存腳本并使用[CTRL]?+?X退出編輯器
現在使用此命令使腳本可執行:
chmod +x database-to-os.sh
2.編輯crontab文件
現在打開 Crontab 文件,您可以在其中使用以下命令安排備份:
crontab -e
并粘貼以下內容:
0 3 * * * /[path_to_script]/databse-to-os.sh
使用此腳本,將在每天凌晨 3:00 執行數據庫備份。如果您想要不同的時間表,只需更改粘貼的內容即可。有關 Cron 語法的更多信息可以在文件本身中找到。
結論
總之,使用 AWS CLI 將 MySQL 數據庫備份到對象存儲是一個簡單高效的過程,可以為重要數據提供額外的保護層。借助 AWS CLI 和本文中概述的命令,用戶可以輕松地自動執行備份過程、安排定期備份并將備份安全地存儲在對象存儲中。