バックアップの概要

このページでは、Cloud SQL インスタンスのバックアップの仕組みについて説明します。バックアップを使用して同じインスタンスまたは別のインスタンスにデータを復元する方法について説明します。

バックアップのスケジュールやオンデマンド バックアップの作成の詳細については、オンデマンド バックアップと自動バックアップの作成と管理をご覧ください。

バックアップからインスタンスにデータを復元する方法の概要については、バックアップからの復元をご覧ください。

バックアップの機能

バックアップにより、失われたデータを Cloud SQL インスタンスに復元できます。また、問題が発生しているインスタンスをバックアップから復元することもできます。必要なデータを含むインスタンスの自動バックアップを有効にします。バックアップはデータの損失や破損を防ぎます。

クローン作成やレプリカ作成などの一部のオペレーションでも、自動バックアップとバイナリ ロギングを有効にする必要があります。

バックアップの費用

Cloud SQL は各インスタンスで最大 7 件のバックアップを保持できます。バックアップ ストレージの料金は、他のタイプのインスタンスの料金よりも低額です。詳しくは料金ページをご覧ください。

バックアップとエクスポート

バックアップは、保持ポリシーに従って Cloud SQL インスタンスで保持されます。Cloud SQL バックアップは、ライフサイクルを管理する Cloud Storage にアップロードされるエクスポートとは異なります。バックアップにはデータベース全体が含まれます。エクスポートでは特定のコンテンツを選択できます。

バックアップ サイズについて

MySQL インスタンスのバックアップは増分で行われます。このバックアップには、前回のバックアップの作成後に変更されたデータのみが含まれます。最も古いバックアップはデータベースと同様のサイズです。その後のバックアップのサイズはデータの変更の割合によって異なります。最も古いバックアップが削除されると、完全なバックアップを維持するために 2 番目に古いバックアップのサイズが増加します。

バックアップの種類

Cloud SQL は、次の 2 種類のバックアップを実行します。

オンデマンド バックアップ

バックアップはいつでも作成できます。データベース上でリスクの高いオペレーションを実行しようとしている場合は、オンデマンド バックアップを使用します。バックアップ時間枠まで待機することなくバックアップを作成したいときも、オンデマンド バックアップを使用してください。オンデマンド バックアップは、インスタンスで自動バックアップが有効であるかどうかにかかわらず、すべてのインスタンスで作成できます。

オンデマンド バックアップは、自動バックアップと異なり、自動的に削除されません。明示的に削除するか、インスタンスが削除されるまで維持されます。オンデマンド バックアップは自動的に削除されないため、明示的に削除しないと請求料金に長期間影響を及ぼす可能性があります。

自動バックアップ

自動バックアップでは 4 時間のバックアップ時間枠が使用されます。バックアップは、バックアップ時間枠内に開始されます。可能な場合は、インスタンスのアクティビティが最も少ない時間帯にバックアップをスケジュールしてください。

自動バックアップは毎日行われ、7 日間保持されます。7 日後に、最も古いバックアップが削除されます。

バックアップが保存される場所

バックアップ ロケーションには、次のものがあります。

デフォルト バックアップ ロケーション

デフォルトでは、Cloud SQL は、冗長性を確保するためにバックアップ データを 2 つのリージョンに保存します。1 つの大陸に 2 つのリージョンがある場合、バックアップ データはどちらも同じ大陸に置かれます。オーストラリアにはリージョンが 1 つしかないため、シドニー リージョンのバックアップ データはアジアに保存されます。サンパウロ リージョンの場合、バックアップ データは米国のロケーションに保存されます。

カスタム バックアップ ロケーション

Cloud SQL では、バックアップ データのカスタム ロケーションを選択できます。これは、バックアップの保管場所を特定の地理的境界内に限定する規制を組織が遵守しなければならない場合に便利です。組織に対してこのような要件がある場合は、リソース ロケーション制限の組織のポリシーが適用される可能性が高くなります。このポリシーでは、ポリシーに適合していない地理的位置を保管場所として使用しようとすると、[バックアップ] ページにアラートが表示されます。このアラートが表示された場合は、バックアップのロケーションをポリシーで許可されているロケーションに変更する必要があります。

有効なリージョン値の完全なリストについては、インスタンスのロケーションをご覧ください。マルチリージョン値の完全なリストについては、マルチリージョンのロケーションをご覧ください。

バックアップのカスタム ロケーションの設定バックアップのロケーションの表示をご覧ください。

バックアップをエクスポートできますか?

いいえ、バックアップをエクスポートすることはできません。エクスポートできるのは、インスタンス データのみとなります。Cloud SQL からのデータのエクスポートをご覧ください。

特別なバックアップ ユーザーについて

Cloud SQL は、各インスタンスに特別なデータベース ユーザーである cloudsqladmin を作成し、このユーザーのためにインスタンス固有の一意のパスワードを生成します。 Cloud SQL は、cloudsqladmin ユーザーとしてログインし、自動バックアップを実行します。

バックアップのインスタンス オペレーションへの影響

MySQL インスタンスでは、バックアップに FLUSH TABLES WITH READ LOCK フラグは使用されません。これは、バックアップ オペレーションによって書き込みなどのオペレーションが影響を受けないことを意味します。

通常、バックアップの作成は数秒で完了しますが、直近のバックアップ以降に大量のデータが書き込まれている場合は、さらに長くかかることがあります。

バックアップを作成しようとしたときに保留中のオペレーションがある場合、通常 Cloud SQL はバックアップを完了するための時間枠内に試行を数回繰り返します。バックアップをブロックするオペレーションは、インポート、エクスポート、更新(インスタンス メタデータの変更など)、インスタンスの再起動などの長時間実行オペレーションです。

データの読み込みなど、長時間実行オペレーションの間は、一時的に自動バックアップを無効化できます。

トラブルシューティング

テーブル内のリンクをクリックすると、詳細が表示されます。

この問題については... 次のような問題が考えられます... 次のことを試します...
現在のオペレーションのステータスを確認できない。 ユーザー インターフェースには成功または失敗のみが表示されます。 詳細については、これらのデータベース コマンドをご覧ください。
オペレーションの開始元が見つからない。 ユーザー インターフェースにはオペレーションを開始したユーザーは表示されません。 監査ログを使用して確認します。
自動バックアップ中にディスク容量が不足する。 インスタンスがハードディスク容量の上限に達しました。 ファイル システムのサイズと割り当てを確認します
インスタンスの削除後にバックアップを実行できない。 インスタンスが削除されました。 エクスポートから再作成するか、猶予期間内であればカスタマー サポートにお問い合わせください。
自動バックアップが停止している可能性がある。 バックアップ時間はデータベースのサイズと相関しています。 オペレーションをキャンセルする必要がある場合は、カスタマー サポートお問い合わせください
復元に失敗した。 ダンプファイルに、まだ存在していないデータベース ユーザーが含まれている可能性があります。 復元する前にデータベース ユーザーを作成します
このインスタンスに対するオペレーションが無効。 コピー先インスタンスのサイズがコピー元よりも小さくなります。 宛先インスタンスのサイズを増やします
自動バックアップを保持する日数を増やす。 保持される自動バックアップは 7 つのみです。 手動バックアップを管理します
バックアップ失敗時の不明なエラー。 バックアップがタイムアウトした可能性があります。 これらのフラグを確認します。

現在のオペレーションのステータスを確認できない

Google Cloud Console でオペレーションのステータスを確認することはできません。

次のような問題が考えられます

Google Cloud Console では、完了時に成功または失敗のみが表示され、警告は返されません。

次の方法をお試しください

データベースに接続し、SHOW WARNINGS を実行します。


オペレーションの開始元が見つからない

オンデマンド バックアップ オペレーションを開始したユーザーを確認する場合。

次のような問題が考えられます

Google Cloud Console のインスタンス オペレーション ページには、オペレーションを開始したユーザーは表示されません。

次の方法をお試しください

ログを確認し、テキストでフィルタしてユーザーを見つけます。個人情報の監査ログが必要になる場合があります。関連するログファイルは次のとおりです。

  • cloudsql.googlapis.com/mysql-general.log
  • cloudsql.googleapis.com/mysql.err
  • Cloud Audit Logs が有効になっている場合は、cloudaudit.googleapis.com/activity も使用できます。


自動バックアップ中のディスク容量が不足する

エラー メッセージ [ERROR] InnoDB: Write to file ./ibtmp1 failed at offset XXXX, YYYY bytes should have been written, only 0 were written. が表示されます。

次のような問題が考えられます

インスタンスが自動バックアップ中にハードリミットに達しました。一時ファイルは、バックアップ中に使用可能なディスク容量を超える可能性があります。

次の方法をお試しください

ディスクに空きがあること、ディスク割り当てが不足していないことを確認します。 ディスクサイズを手動で増やすか、自動ストレージ増加を有効にします。


インスタンスの削除後にバックアップを実行できない

インスタンスを削除した後はバックアップを実行できません。

次のような問題が考えられます

インスタンスが削除されました。

次の方法をお試しください

  • Cloud SQL インスタンスの削除の猶予期間は 4 日間です。 この間、カスタマー サポートがインスタンスを再作成できます。インスタンスを削除した後は、データを復元できません。
  • エクスポートを行った場合は、新しいインスタンスを作成してからインポートを実行して、データベースを再作成できます。エクスポートでは Cloud Storage への書き込みが行われ、インポートでは Cloud Storage からの読み取りが行われます。

自動バックアップが停止している

自動バックアップが長時間停止していて、キャンセルできません。

次のような問題が考えられます

データベースのサイズによっては、バックアップに時間がかかる可能性があります。

次の方法をお試しください

オペレーションをキャンセルする必要がある場合は、カスタマー サポートにインスタンスの force restart を依頼できます。


バックアップからの復元が失敗した

SQL ダンプファイルで参照されているユーザーが存在しない場合、復元オペレーションが失敗する可能性があります。

次のような問題が考えられます

SQL ダンプを復元する前に、オブジェクトを所有しているか、またはダンプされたデータベース内のオブジェクトに対する権限が付与されているデータベース ユーザーが存在する必要があります。 そうでない場合、復元で、元の所有権や権限でのオブジェクトの再作成に失敗します。

次の方法をお試しください

SQL ダンプから復元する前に、データベース ユーザーを作成します。


このインスタンスに対するオペレーションが無効

instances.restoreBackup に対する API 呼び出しからのエラー メッセージ HTTP Error 400: This operation isn't valid for this instance が表示されます。

次のような問題が考えられます

バックアップ サイズ(XX GB)がストレージ サイズ(YY GB)より小さいインスタンスには、バックアップから復元できません。

次の方法をお試しください

ターゲット インスタンスを編集して、ストレージ サイズを増やします。


自動バックアップを保持する日数を増やす

自動バックアップを保持できる日数を 7 日から 30 日以上に増やす場合。

次のような問題が考えられます

保持されるバックアップは 7 つのみです。バックアップの保持には費用がかかり、ディスク容量が必要となるため、バックアップは定期的に削除されます。残念ながら、現在表示されているバックアップのみが復元可能な自動バックアップです。

次の方法をお試しください

バックアップを無期限に保持する場合、自動バックアップと同じ方法で削除されないので、オンデマンド バックアップを作成します。 オンデマンド バックアップは無期限に維持されます。つまり、削除されるか、そのインスタンスが属しているインスタンスが削除されるまで保持されます。このタイプのバックアップは自動的に削除されないため、課金に影響する可能性があります。


バックアップ失敗時の不明なエラー

バックアップに失敗し、Unknown error が表示されます。

次のような問題が考えられます

バックアップ作成時間が、10 分のタイムアウトに達しています。自動バックアップには 10 分のタイムアウトが設定されており、その時間内にバックアップが終了することになっています。

次の方法をお試しください

バックアップの作成に影響するフラグは checkpoint_timeoutcheckpoint_completion_target の 2 つです。バックアップの開始時に slow チェックポイントが実行され、checkpoint_completion_targetcheckpoint_timeout を乗算します。

たとえば、900 sec * 0.9 sec = 810 sec = 13.5 min となります。このため、タイムアウトが発生します。この場合は、checkpoint_completion_target の値を減らすと問題が解決されます。

次のステップ