このページでは、Cloud SQL インスタンスのメンテナンスの時間枠の検索と設定の手順を説明します。Cloud SQL がメンテナンスを行う方法とその理由の詳細は、Cloud SQL インスタンスでのメンテナンスの概要をご覧ください。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
インスタンスのメンテナンスに優先時間枠を設定する
コンソール
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- [メンテナンス] セクションで [メンテナンスの設定を編集] をクリックします。
- [構成オプション] セクションで、[メンテナンス] を開きます。
- 次のオプションを構成します。
- 優先ウィンドウ。このインスタンスで更新の実施が可能な曜日と時間の範囲を設定します。
- 更新の順序。このインスタンスを更新する順序を他のインスタンスの更新との関連で設定します。タイミングを [任意]、[早め]、[遅め] のいずれかで設定します。同じ場所にあるインスタンスを比較した場合、[早め] の設定を使用するインスタンスは、[遅め] 設定を使用するインスタンスの 1 週間前までに更新を受信します。
gcloud
下の gcloud コマンドを使用する前に、次のように置き換えます。
- instance-id: 再スケジュールするインスタンス
- day: メンテナンスが実施されるよう指定する曜日。
SUN
、MON
、TUE
、WED
、THU
、FRI
、SAT
のいずれかに設定します。 - hour: メンテナンスの時間枠の UTC タイムゾーンでの時間帯(0~23)。
gcloud sql instances patch instance-id \ --maintenance-window-day=day \ --maintenance-window-hour=hourリファレンス情報については、
gcloud sql instances patch
をご覧ください。
インスタンスがすでにメンテナンス中であるかメンテナンス スケジュールが設定されているときに、メンテナンスの時間枠の設定を変更した場合、変更はすぐには反映されません。これらの変更は、将来のメンテナンス イベントに反映されます。
メンテナンス通知を有効にしている場合、インスタンスのメンテナンスがスケジュールされると、Cloud SQL はメンテナンスが予定されている正確な日時を含む通知を送信します。Cloud SQL は、インスタンスのメンテナンスの時間枠の更新順序設定に基づいてこれらの通知を送信します。
- 更新の順序が
Earlier
に設定されている場合、Cloud SQL は少なくとも 1 週間前にメンテナンス通知を送信します。 - 更新の順序が
Later
に設定されている場合、Cloud SQL は少なくとも 2 週間前にメンテナンス通知を送信します。
メンテナンス通知をオプトインする
メンテナンス通知を有効にする前に、インスタンスのメンテナンスに優先時間枠を設定する必要があります。
- [通信] ページに移動します。[通信] に移動
- [Cloud SQL]、[メンテナンスの時間枠] の行で、[メール] の下のラジオボタンを選択して [オン] にします。
通知を受け取る必要があるユーザーごとに個別にオプトインする必要があります。
Google Cloud Console でメンテナンス通知を確認する
メンテナンス通知は、Google Cloud Console の複数の場所で確認できます。
[アクティビティ] ダッシュボードで、[SQL Maintenance] とマークされたインスタンスを見つけます。
[アクティビティ] に移動インスタンスのメンテナンスがスケジュールされているときには、メンテナンスの日付が、[インスタンス] ページの [メンテナンス] 列に表示されます。通常、[メンテナンス] 列は非表示ですが、メンテナンスがスケジュールされると、自動的に表示されます。また、列表示オプション()の [メンテナンス] を選択することで、[メンテナンス] 列を常に表示することもできます。
または、インスタンスを選択して [インスタンスの詳細] ページに移動することもできます。インスタンスのメンテナンスがスケジュールされているときには、[メンテナンス] ペインにメッセージが表示されます。
Cloud SQL の [インスタンス] に移動
API を使用してスケジュールされたメンテナンスの時間枠を検索する
gcloud
下の gcloud
コマンドを使用する前に、次のように置き換えます。
- instance-id: 再スケジュールするインスタンス
gcloud sql instances describe instance-id
レスポンスで scheduledMaintenance
セクションを探します。
REST v1
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: インスタンスが含まれている Google Cloud プロジェクトの ID またはプロジェクト番号
- INSTANCE_NAME: 高可用性を構成するインスタンスの名前
HTTP メソッドと URL:
GET http://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
レスポンスで scheduledMaintenance
セクションを探します。
REST v1beta4
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: インスタンスが含まれている Google Cloud プロジェクトの ID またはプロジェクト番号
- INSTANCE_NAME: 高可用性を構成するインスタンスの名前
HTTP メソッドと URL:
GET http://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
レスポンスで scheduledMaintenance
セクションを探します。
計画されているメンテナンスのスケジュールを変更する
メンテナンスのスケジュールを変更するには、Google Cloud コンソール、gcloud
、または Cloud SQL Admin API を使用します。
コンソール
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- 「メンテナンス」でフィルタして、メンテナンスがスケジュールされているすべてのインスタンスを一覧表示します。
- [メンテナンス] 列で、[スケジュールを変更] をクリックします。
- [スケジュールを変更] ダイアログで、メンテナンスをすぐに適用するか、28 日の延期期間内に発生するようにスケジュールを変更するか、使用可能な次のメンテナンスの時間枠に延期するかを選択します。
gcloud
下の gcloud
コマンドを使用する前に、次のように置き換えます。
- instance-id: 再スケジュールするインスタンス
- reschedule-type: IMMEDIATE、NEXT_AVAILABLE_WINDOW、SPECIFIC_TIME のいずれかを使用します。
NEXT_AVAILABLE_WINDOW を選択すると、メンテナンスのスケジュールが現在設定されている時刻から次に使用可能なメンテナンスの時間枠に変更されます。
- reschedule-time: reschedule-type に SPECIFIC_TIME を選択する場合は、このフラグを設定して、メンテナンスが実施される新しい日時を指定することも必要となります。ISO 8601 形式を使用します。例: 2020-01-16T16:56:00.000Z
gcloud sql reschedule-maintenance instance-id \ --reschedule-type=reschedule-type \ [--schedule-time=reschedule-time]リファレンス情報については、
gcloud sql reschedule-maintenance
をご覧ください。メンテナンスのスケジュールを延長期間(最大 28 日間)内に変更する場合は、gcloud
のバージョン番号を確認します。バージョン番号が 390.0.0_RC00
より小さい場合は、gcloud
を再インストールしてください。
REST v1
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: インスタンス ID
- reschedule-type: IMMEDIATE、NEXT_AVAILABLE_WINDOW、SPECIFIC_TIME のいずれかを使用します
NEXT_AVAILABLE_WINDOW を選択すると、メンテナンスのスケジュールが次に使用可能なメンテナンスの時間枠に変更されます。
HTTP メソッドと URL:
POST http://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rescheduleMaintenance
リクエストの本文(JSON):
{ "reschedule": { "reschedule_type": "reschedule-type" } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "http://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "PENDING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": RESCHEDULE_MAINTENANCE, "name": "operation-id", "targetId": "instance-id", "selfLink": "http://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: インスタンス ID
- reschedule-type: IMMEDIATE、NEXT_AVAILABLE_WINDOW、SPECIFIC_TIME のいずれかを使用します
NEXT_AVAILABLE_WINDOW を選択すると、メンテナンスのスケジュールが次に使用可能なメンテナンスの時間枠に変更されます。
HTTP メソッドと URL:
POST http://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rescheduleMaintenance
リクエストの本文(JSON):
{ "reschedule": { "reschedule_type": "reschedule-type" } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "http://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "PENDING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": RESCHEDULE_MAINTENANCE, "name": "operation-id", "targetId": "instance-id", "selfLink": "http://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
このタスクで基礎となる REST API リクエストがどのように作成されるかについては、API Explorer の Instances:post ページをご覧ください。
メンテナンス拒否期間を構成する
Cloud SQL インスタンスでは、任意の時点で最大 1 つのメンテナンス拒否期間を構成できます。メンテナンス拒否期間は、予定されたメンテナンスの時間枠よりも優先されます。メンテナンスの時間枠のタイミングとメンテナンス拒否期間の間に矛盾がある場合は、メンテナンスの時間枠よりもメンテナンス拒否期間が優先されます。
発生したかどうかにかかわらず、メンテナンス拒否期間を手動で削除できます。
メンテナンス拒否期間を構成するには、開始日、終了日、期間の開始と終了の時間を設定します。メンテナンス拒否期間の範囲は 1~90 日で設定できます。
開始日と終了日には、次の 2 つの形式があります。
yyyy-mm-dd
: 特定の日付を示します。mm-dd
: 毎年繰り返される日付を示します。
開始日と終了日は UTC です。タイムゾーンを設定するには、時間フィールドを使用して開始時刻を調整します。たとえば、開始日 = 2020-10-10 の時間 = 07:00:00 は、開始時刻が 2020-10-10 07:00:00 UTC(2020-10-10 00:00:00 PST)であることを示します。
時刻の形式は HH:mm:SS
です。
- 時間の範囲は 0~23 です。
- 分と秒の範囲は 0~59 です。
コンソール
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- [メンテナンス] セクションで [メンテナンスの設定を編集] をクリックします。
- [メンテナンス拒否期間] セクションで、開始日と終了日を設定します。
- 必要に応じて [詳細オプション] セクションで、[繰り返し: 1 年サイクル] を選択します。
- [保存] をクリックします。
gcloud
下の gcloud
コマンドを使用する前に、次のように置き換えます。
- instance-id: Cloud SQL インスタンス ID。
- start-date: 期間の開始日です。例: 2021-11-29
- end-date: 期間の終了日です。例: 2021-12-02
- time: 期間の開始と終了の時間。例: 00:00:00
gcloud sql instances patch instance-id\ --deny-maintenance-period-start-date=start-date \ --deny-maintenance-period-end-date=end-date \ --deny-maintenance-period-time=time
REST v1
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: インスタンス ID
- start-date: 毎年の繰り返しの開始日(yyyy-mm-dd)または(mm-dd)
- end-date: 毎年の繰り返しの終了日(yyyy-mm-dd)または(mm-dd)
- time: 開始時間と終了時間(HH:mm:SS)
HTTP メソッドと URL:
POST http://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
リクエストの本文(JSON):
{ "settings": { "denyMaintenancePeriods": [{ "start_date": "start-date", "end_date": "end-date" "time": "time" }] } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "http://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "PENDING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": MAINTENANCE_DENY_PERIOD, "name": "operation-id", "targetId": "instance-id", "selfLink": "http://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: インスタンス ID
- start-date: 毎年の繰り返しの開始日(yyyy-mm-dd)または(mm-dd)
- end-date: 毎年の繰り返しの終了日(yyyy-mm-dd)または(mm-dd)
- time: 開始時間と終了時間(HH:mm:SS)
HTTP メソッドと URL:
POST http://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
リクエストの本文(JSON):
{ "settings": { "denyMaintenancePeriods": [{ "start_date": "start-date", "end_date": "end-date" "time": "time" }] } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "http://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "PENDING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": MAINTENANCE_DENY_PERIOD, "name": "operation-id", "targetId": "instance-id", "selfLink": "http://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
メンテナンス拒否期間を削除する
コンソール
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- [メンテナンス] セクションで [メンテナンスの設定を編集] をクリックします。
- [メンテナンス拒否期間] セクションで、[消去] をクリックします。
- [保存] をクリックします。
gcloud
下の gcloud
コマンドを使用する前に、次のように置き換えます。
- instance-id: Cloud SQL インスタンス ID。
gcloud sql instances patch instance-id \ --remove-deny-maintenance-period
REST v1
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: インスタンス ID
HTTP メソッドと URL:
POST http://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
リクエストの本文(JSON):
{ "settings": { "denyMaintenancePeriods": [] } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "http://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "PENDING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": MAINTENANCE_DENY_PERIOD, "name": "operation-id", "targetId": "instance-id", "selfLink": "http://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: インスタンス ID
HTTP メソッドと URL:
POST http://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
リクエストの本文(JSON):
{ "settings": { "denyMaintenancePeriods": [] } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "http://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "PENDING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": MAINTENANCE_DENY_PERIOD, "name": "operation-id", "targetId": "instance-id", "selfLink": "http://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
メンテナンス拒否期間の通知
メンテナンスの時間枠の通知は、予定されたメンテナンスの時間枠がメンテナンス拒否期間に達し、メンテナンス拒否期間の設定によって禁止される場合、送信されません。
以前にスケジュールされた時刻にメンテナンスが行われないようにメンテナンス拒否期間の設定を変更すると、Cloud SQL インスタンスはメンテナンスをスキップし、メンテナンスのキャンセルに関する通知を送信します。Cloud SQL は、インスタンスの更新がスケジュールされるたびに、このキャンセル通知を送信します。
定期メンテナンスの通知は、メンテナンスが期間外に行われるようスケジュールされている限り、メンテナンス拒否期間中に送信されます。