12

私のチームには、(Google Cloud SQL でホストされている) データベースのバックアップを取得し、そのデータベースをローカルでホストされている MySQL のインスタンスに復元できるという要件があります。

Google Cloud SQL にはバックアップをスケジュールする機能があることは知っていますが、これらはどこにもダウンロードできないようです。

また、データベースを Google Cloud Storage に「エクスポート」できることも知っていますが、「エクスポート」をスケジュールできるようにしたいと考えています。

ここでの最終目標は、何らかの管理スクリプトで次の手順を実行することです。

  1. Google Cloud SQL でホストされているデータベースを自動的にバックアップします。
  2. バックアップをローカル (クラウドではない) サーバーにダウンロードします。
  3. バックアップを MySQL のローカル インスタンスに復元します。

何か案は?

4

5 に答える 5

13

gcloud sdk コマンドでインポート / エクスポート機能が提供されるようになりました。

gcloud sql export sql <DATABASE_INSTANCE> \
    gs://<CLOUD_STORAGE_BUCKET>/cloudsql/export.sql.gz \
    --database <DATABASE_NAME>

このエクスポートは、 を使用してダウンロードできますgsutil。を使用してインポートすることもできますmysqlimport

于 2016-02-29T18:05:57.853 に答える
4

それが私が遭遇した問題であり、私の解決策は次のとおりです。

  1. IAM サービス アカウント管理に移動
  2. 新しいサービス アカウント (私はそれを と呼びますsql-backuper) を作成し、そのアクセス キーを JSON でダウンロードします。
  3. メインの IAM ページでビューアー、ストレージ オブジェクト作成者の役割を付与します (現在、GCloud には SQL 用の個別の読み取り専用の役割はありません)。
  4. バックアップを行うマシンにセットアップします: gcloud auth activate-service-account sql-backuper@project-name-123.iam.gserviceaccount.com --key-file /home/backuper/gcloud-service-account.json( gcloud auth documentation )
  5. GCloud Storage Browserで新しいバケットを作成します
  6. これで、バックアップ マシンで次を実行できます: gcloud sql instances export [sql-instance-name] gs://[bucket-name]/[file-name].gz --database [your-db-name]( gcloud sql ドキュメント) および gsutil cp gs://[bucket-name]/[file-name].gz [local-file-name].gz( gsutil cp ドキュメント)
  7. これで、必要に応じて使用できるローカル DB コピーが作成されました
于 2016-08-09T18:54:04.783 に答える
2

バックアップ (手動または自動) をダウンロードする場合は、別の CloudSQL インスタンスを起動してから、次の操作を実行できます。

  1. バックアップされたインスタンスからバックアップ オプション (復元) をクリックします。
  2. 以前に起動したインスタンスで復元することを選択します
  3. 新しく復元された CloudSQL からデータをエクスポートする
  4. Cloud Storage で .sql または .csv を取得する
于 2016-11-09T16:03:21.287 に答える
2

申し訳ありませんが、現在 Cloud SQL にはこの機能がありません。将来的にはこれを簡単にしたいと考えています。当面は、Selenium (またはその他の UI スクリプト フレームワーク) を cron ジョブと組み合わせて使用​​できます。

于 2013-01-02T19:37:44.510 に答える