Cloud SQL では、インスタンスをオンデマンドでバックアップすることも、バックアップ スケジュールを使用して自動でバックアップすることもできます。インスタンスで使用できるバックアップ構成は、インスタンスのバックアップ オプションによって異なります。Cloud SQL のバックアップは増分型であり、失われたデータを Cloud SQL インスタンスに復元する場合に有用です。バックアップもデフォルトで Google 管理の暗号鍵または顧客管理の暗号鍵(CMEK)を使って暗号化されます。バックアップを利用すると次のことを行えます。
- インスタンスに問題が発生した場合に、インスタンスを以前の状態に復元できます。
- 別のリージョンまたはゾーンのバックアップを使用して新しいインスタンスを作成し、障害復旧(DR)を設定できます。
- バックアップを使用して複数のインスタンスを作成し、開発、テスト、移行に役立てられます。
このようなバックアップは、インスタンスのバックアップ保持設定を定義することで保持できます。保持設定の内容は、インスタンスの Cloud SQL エディションとバックアップ オプションによって異なる可能性があります。 また、インスタンスを削除した後でも復元できるように、バックアップを保持しておくこともできます。
バックアップ オプション
Cloud SQL には、インスタンスのバックアップを管理する 2 つのバックアップ サービス オプションがあります。
- 拡張バックアップ: バックアップは Backup and DR サービスを利用する一元化されたバックアップ管理プロジェクトで管理および保存され、保持期間の適用、詳細なスケジュール設定、モニタリングが可能です。
- 標準バックアップ: バックアップは Cloud SQL インスタンスと同じプロジェクトで作成、管理、保存されます。これは既存の Cloud SQL バックアップ サービスであり、現在は標準バックアップと呼ばれています。
インスタンスごとにバックアップ オプションを選択する必要があります。各バックアップ オプションとその機能の詳細については、バックアップ方法を選択をご覧ください。
バックアップ リクエストのタイプ
Cloud SQL インスタンスでは、オンデマンド バックアップ、自動バックアップ、最終バックアップを取得できます。どのバックアップ構成を利用できるかは、インスタンスで選択しているバックアップ オプションによって決まります。
オンデマンド バックアップ
オンデマンド バックアップは随時作成できるバックアップです。データベース上でリスクの高いオペレーションを実行しようとしている場合や、バックアップの時間枠まで待たずにバックアップを作成したい場合に便利です。オンデマンド バックアップは、インスタンスで自動バックアップが有効かどうかにかかわらず、すべてのインスタンスで作成できます。
自動バックアップ
自動バックアップは、インスタンスが動作している間に、1 時間ごと、毎日、毎週、毎月などの一定頻度で取得されます。スケジュールの頻度は、インスタンスで選択しているバックアップ オプションと、選択したバックアップ オプションのバックアップ構成で定義した頻度によって決まります。バックアップは、指定したバックアップ ウィンドウの時間帯に開始されます。
インスタンスが停止する前に行われたすべての変更を保護するため、インスタンス停止後に自動バックアップがもう 1 回追加で取得されます。自動バックアップの保持期間は、インスタンスで選択しているバックアップ オプションで構成されている保持ポリシーによって決まります。可能な場合は、インスタンスのアクティビティが少ない時間帯にバックアップをスケジュールすることをおすすめします。
また、自動バックアップはポイントインタイム リカバリに必要となるため、手動で削除しないことが推奨されています。
インスタンスの自動バックアップを構成するには、自動バックアップを構成するをご覧ください。
最終バックアップ
最終バックアップは、Cloud SQL インスタンスを削除する前にバックアップを取得できる機能です。インスタンスを削除した後でもそのインスタンスのデータを保持しておくのに役立ちます。最終バックアップは、新しいインスタンスを作成する際にも、既存のインスタンスに復元する際にも利用できます。最終バックアップのアクセス方法および詳細の表示方法については、最終バックアップのリストの確認についてのページをご覧ください。
インスタンスの最終バックアップを有効にすると、インスタンスを削除するときに最終バックアップを自動的に取得するように設定できます。また、インスタンスの最終バックアップを有効にする際に、最終バックアップの保持期間を設定することも可能です。インスタンスの最終バックアップを有効にしていない場合でも、インスタンスを削除するときに最終バックアップを取ることができます。なお、最終バックアップはプライマリ インスタンスでのみ使用でき、レプリカではサポートされていません。さらに、Cloud SQL カスタム組織のポリシーを設定することで、組織内のすべてのインスタンスに対して、インスタンス削除時に最終バックアップを取得し、標準の保持期間を設定することもできます。詳細については、一般的なユースケースのカスタム組織ポリシーの例をご覧ください。
デフォルトでは、Cloud SQL は最終バックアップを 30 日間保持します。ただし、Cloud SQL によるバックアップの保持期間はカスタマイズできます。標準バックアップの場合は 1 日から 365 日、拡張バックアップの場合は 1 日から 99 年の範囲で指定できます。利用可能である限り、いつでもバックアップからインスタンスを復元できます。最終バックアップは他のバックアップと同様に、保持日数に基づいて料金が発生します。
標準バックアップ オプションを使用して、新しいインスタンスまたは既存のインスタンスで最終バックアップを有効にする方法については、最終バックアップを構成するをご覧ください。拡張バックアップの場合、最終バックアップは関連付けられたバックアップ プランによって管理されます。
インスタンスの削除後に最終バックアップを管理するには、削除されたインスタンスのバックアップを管理するをご覧ください。
バックアップの保持期間
バックアップの保持は、バックアップ リクエストのタイプと、インスタンスで選択したバックアップ オプションによって定義されます。自動バックアップの場合、保持期間はインスタンスのバックアップ オプションに応じて 7 日から 99 年の範囲で指定できます。オンデマンド バックアップの場合、バックアップは削除されるまで無期限に保存されます。インスタンスのバックアップ オプションに関連するバックアップ保持の詳細については、バックアップ オプションを選択するをご覧ください。
インスタンスの削除後もバックアップを保持する
保持されたバックアップは、インスタンスの削除後に Cloud SQL によって保持されるバックアップです。これらのバックアップは、オンデマンド バックアップと、インスタンスが稼働中に作成された自動バックアップで構成されます。インスタンスを削除すると、これらのバックアップはインスタンスから独立し、プロジェクト レベルで保存されます。保持されたバックアップは、インスタンスの削除時に取得された最後のバックアップである最終バックアップとは異なります。
これらのバックアップの説明を更新すると、 Google Cloud プロジェクトでバックアップを簡単に管理できます。保持されたバックアップは、いつでも新しい Cloud SQL インスタンスまたは既存の Cloud SQL インスタンスに復元できます。
これらのバックアップでは、保持期間はバックアップのタイプによって定義され、インスタンスの削除後に変更することはできません。標準バックアップの場合、オンデマンド バックアップはバックアップを手動で削除するか、バックアップを含むプロジェクトを削除するまで、無期限に保持されます。拡張バックアップの場合、オンデマンド バックアップは選択した保持ルールに基づいて保持されます。自動バックアップは、インスタンスの削除後より 1 日 1 つのバックアップが段階的に削除されます。このローリング期間は削除前のインスタンスの保持設定に基づいて定義され、インスタンスで選択したバックアップ オプションに応じて、1 日から 99 年の範囲となります。たとえば、インスタンスの自動バックアップの保持設定が 7 に設定されている場合、最新の自動バックアップはインスタンスの削除から 7 日後に削除されます。
保持されたバックアップはいつでも手動で削除できます。ただし、保持されたバックアップを削除すると、削除されたバックアップは復元できません。
標準バックアップの場合、インスタンス名は Cloud SQL でインスタンスが削除された後に使用できるため、保持されたバックアップは instance_deletion_time というフィールドを使用してGoogle Cloud プロジェクトに保存されます。このフィールドを使用すると、特定のバックアップがライブ インスタンスに属しているか、削除されたインスタンスに属しているかを特定できます。バックアップの説明を更新して、管理を容易にすることもできます。
標準バックアップ オプションを使用して、新しいインスタンスまたは既存のインスタンスで保持されたバックアップを有効にする方法については、保持されたバックアップを構成するをご覧ください。拡張バックアップの場合、保持されたバックアップは関連付けられたバックアップ プランによって管理されます。
インスタンスの削除後に最終バックアップを管理するには、削除されたインスタンスのバックアップを管理するをご覧ください。
バックアップの復元
また、自動バックアップ ポリシーの一部として使用できる正常なバックアップがない場合は、Cloud SQL はすべてのアクティブなインスタンスに対して最後に実施された日次バックアップを少なくとも 1 つ保持しようと試みます。このバックアップを復元目的で使用するには、Google Cloud カスタマーケアにお問い合わせください。
バックアップとデータの完全性チェック
Cloud SQL はバックグラウンドでのデータベース完全性チェックを自動的に実行し、データの完全性の潜在的な問題を特定します。完全性チェックは、お客様が開始したバックアップまたは復元バックアップのサンプリングを復元することで、オフライン プロセスとして行われます。
レプリカのバックアップ
レプリカ インスタンスではバックアップを使用できません。レプリカ インスタンスはプライマリ インスタンスのコピーであるため、バックアップはプライマリ インスタンスで維持されます。フェイルオーバーまたは切り替えによりレプリカ インスタンスがスタンドアロン インスタンスに昇格すると、そのインスタンスでバックアップが有効になり、独自のバックアップ構成が必要になります。昇格したレプリカは、プライマリ インスタンスのバックアップ構成を継承せず、プライマリ インスタンスのバックアップにはアクセスできません。
バックアップとエクスポート
バックアップは、保持ポリシーに従って Cloud SQL によって管理され、Cloud SQL インスタンスとは別に保存されます。Cloud SQL バックアップは、ライフサイクルを管理する Cloud Storage にアップロードされるエクスポートとは異なります。バックアップにはインスタンスのディスク全体が含まれます。エクスポートでは特定のコンテンツを選択できます。
バックアップや復元のオペレーションを使用してデータベースを新しいバージョンにアップグレードすることはできません。バックアップから復元できるのは、バックアップ作成時と同じデータベース バージョンのインスタンスに限られます。
新しいバージョンにアップグレードするには、インプレース メジャー バージョン アップグレードを実行するか、データベースをエクスポートして新しい Cloud SQL インスタンスにインポートします。バックアップ サイズ
Cloud SQL バックアップは最初のバックアップを除きすべての増分バックアップとなります。バックアップには、前回のバックアップの作成後に変更されたデータのみが含まれます。最も古いバックアップはデータベースと同様のサイズですが、その後のバックアップのサイズはデータを変更した割合によって異なります。最も古いバックアップが削除されると、その次に古いバックアップのサイズが増加してフル バックアップになり、バックアップ間の差分を埋めるように調整されます。以降の各増分バックアップも、新しいフル バックアップに合わせて更新されます。
個々のバックアップのサイズを確認できます。バックアップ サイズは、各バックアップの課金対象となるサイズを表します。
トラブルシューティング
| 問題 | トラブルシューティング |
|---|---|
| 現在のオペレーションのステータスを確認できない。 | Google Cloud コンソールでは、オペレーションの完了時に成功または失敗のみが表示されます。警告やその他の情報を表示するように設計されていません。 特定の Cloud SQL インスタンスのすべてのオペレーションを確認するには、 |
| オンデマンド バックアップ オペレーションを開始したユーザーを確認したい。 | オペレーションを開始したユーザーはユーザー インターフェースに表示されません。 ユーザーを特定するには、ログを表示してテキストでフィルタします。個人情報の監査ログが必要になる場合があります。関連するログファイルは次のとおりです。
|
| インスタンスを削除すると、その後インスタンスのバックアップを作成できない。 | データの最終バックアップを作成せずにインスタンスを削除すると、データを復元できなくなります。ただし、インスタンスを復元すると、Cloud SQL はバックアップも復元します。削除されたインスタンスの復元について詳しくは、インスタンスの削除後もバックアップを保持するをご覧ください。 エクスポートを行っていれば、新しいインスタンスを作成してインポートを行い、データベースを再作成できます。エクスポートでは Cloud Storage への書き込みが行われ、インポートでは Cloud Storage からの読み取りが行われます。 |
| 自動バックアップが長時間停止していて、キャンセルできない。 | データベースのサイズによっては、バックアップに時間がかかる可能性があります。 オペレーションをキャンセルする必要がある場合は、カスタマー サポートにインスタンスの |
| SQL ダンプファイルで参照されているユーザーが存在しない場合、復元オペレーションが失敗する可能性があります。 | SQL ダンプを復元する前に、オブジェクトを所有しているデータベース ユーザーか、ダンプされたデータベース内のオブジェクトに対する権限が付与されているデータベース ユーザーが、ターゲット データベース内に存在している必要があります。そうでない場合、復元オペレーションを実行すると、元の所有権または権限でのオブジェクトの再作成に失敗します。 SQL ダンプを復元する前に、データベース ユーザーを作成します。 |
| 自動バックアップの保持日数を 7 日から 30 日以上に増やしたい。 | 保持する自動バックアップ数を構成できますが、デフォルト値(7 件)未満の数は保持できません。自動バックアップは、構成された保持値に基づいて定期的に削除されます。復元可能な自動バックアップは、現在表示されているバックアップだけです。 バックアップを無期限に保持する場合は、オンデマンド バックアップを作成します。オンデマンド バックアップは、自動バックアップと同じ方法では削除されません。オンデマンド バックアップは無期限に維持されます。つまり、削除されるか、所属するインスタンスが削除されるまで保持されます。このタイプのバックアップは自動的に削除されないため、課金に影響する可能性があります。 |
| 自動バックアップが失敗したときにメール通知を受信できない。 | Cloud SQL からバックアップのステータスの通知を受信するには、ログベースのアラートを構成します。 |
| Transact-SQL RESTORE コマンドや SQL Server Management Studio(SSMS)を使用してインスタンスを復元することはできません。 |
Cloud SQL は、SSMS を介したインスタンスの復元をサポートしていません。インスタンスを復元するには、gcloud sql import コマンドを実行します。 |
| ログのバックアップ履歴は表示されません。 | ログのバックアップ履歴は、msdb データベースのバックアップ履歴テーブルに 60 日間のみ保持されます。 |
| インスタンスの削除時に最終バックアップを作成することを選択した場合に、インスタンスを削除できない。 |
インスタンスを削除する際は、削除前にインスタンスの最終バックアップを取得するかどうかを確認する必要があります。final-backup インスタンス設定を使用して最終バックアップを有効にした場合、インスタンスを削除するときに選択する内容は、インスタンスの最終バックアップを有効にしたときに設定した最終バックアップ インスタンス構成と一致する必要があります。この問題を軽減するには、次のいずれかを行います。
|
| 最終バックアップ設定でプライマリ インスタンスを正常に作成した後、レプリカ インスタンスを作成できない。 |
最終バックアップ インスタンスの設定を有効にして新しいインスタンスを作成する場合は、最終バックアップの組織のポリシーを更新して、バックアップ構成をプライマリ インスタンスにのみ適用する必要があります。レプリカ インスタンスでは最終バックアップはサポートされていません。 詳細については、Cloud SQL の組織のポリシーをご覧ください。 |
次のステップ
- Cloud SQL インスタンスのバックアップ オプションを選択する。
- 復元について学習する。
- バックアップからの復元