Backup
Google Cloud Platform 如何使用 –async 標誌處理數據庫備份?
我目前正在為我們公司的 CI/CD 管道添加一個額外的步驟,以便我們在進行可能在我們的數據庫上執行遷移的部署之前備份數據庫。
為了進行備份,我使用以下命令向 Google Cloud Platform 進行身份驗證:
gcloud auth activate-service-account --key-file /path/to/keyfile.json
驗證後我使用命令:
gcloud sql backups create --async --instance instance_name
我的問題是關於添加非同步標誌的含義是什麼。我知道這樣做意味著我的管道不會等待備份完成再繼續下一步,但是,如果下一步涉及執行可能會破壞某些東西的遷移,這是否意味著我在上一步可能最終處於遷移已部分執行的中間狀態?
Google實際上是如何處理備份創建的?他們是否在那個時間點對數據庫進行快照,然後從中進行備份?刪除 –async 標誌以確保在執行任何潛在遷移之前已完成備份是否更安全?
我試過查看文件,但並沒有真正詳細說明這一點。
我認為出於快照目的,最好不要使用*–async*,除非您確實確定 CI/CD 中的下一個操作不會干擾快照操作。
也就是說,我認為快照會完成,但是如果下一個操作與 cloudsql 實例或數據庫有關,那麼如果在快照執行的同時執行它,它將失敗。
只是,作為一個例子:您不能同時通過gcloud sql export sql導出多個數據庫。您必須等待第一次執行完成,否則第二次執行將失敗!
希望這有幫助!