メンテナンスの時間枠を検索、設定する

このページでは、Cloud SQL インスタンスのメンテナンスの時間枠の検索と設定の手順を説明します。Cloud SQL がメンテナンスを行う方法とその理由の詳細は、Cloud SQL インスタンスでのメンテナンスの概要をご覧ください。

始める前に

  1. 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.
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Google Cloud CLI をインストールします。
  5. gcloud CLI を初期化するには:

    gcloud init
  6. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  7. Google Cloud プロジェクトで課金が有効になっていることを確認します

  8. Google Cloud CLI をインストールします。
  9. gcloud CLI を初期化するには:

    gcloud init

インスタンスのメンテナンスに優先時間枠を設定する

コンソール

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  3. [メンテナンス] セクションで [メンテナンスの設定を編集] をクリックします。
  4. [構成オプション] セクションで、[メンテナンス] を開きます。
  5. 次のオプションを構成します。
    • 優先ウィンドウ。このインスタンスで更新の実施が可能な曜日と時間の範囲を設定します。
    • 更新の順序。このインスタンスを更新する順序を他のインスタンスの更新との関連で設定します。タイミングを [任意]、[早め]、[遅め] のいずれかで設定します。同じ場所にあるインスタンスを比較した場合、[早め] の設定を使用するインスタンスは、[遅め] 設定を使用するインスタンスの 1 週間前までに更新を受信します。

gcloud

下の gcloud コマンドを使用する前に、次のように置き換えます。

  • instance-id: 再スケジュールするインスタンス
  • day: メンテナンスが実施されるよう指定する曜日。SUNMONTUEWEDTHUFRISAT のいずれかに設定します。
  • 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 週間前にメンテナンス通知を送信します。

メンテナンス通知をオプトインする

メンテナンス通知を有効にする前に、インスタンスのメンテナンスに優先時間枠を設定する必要があります。

  1. [通信] ページに移動します。[通信] に移動
  2. [Cloud SQL]、[メンテナンスの時間枠] の行で、[メール] の下のラジオボタンを選択して [オン] にします。

通知を受け取る必要があるユーザーごとに個別にオプトインする必要があります。

Google Cloud Console でメンテナンス通知を確認する

メンテナンス通知は、Google Cloud Console の複数の場所で確認できます。

  • [アクティビティ] ダッシュボードで、[SQL Maintenance] とマークされたインスタンスを見つけます。
    [アクティビティ] に移動

  • インスタンスのメンテナンスがスケジュールされているときには、メンテナンスの日付が、[インスタンス] ページの [メンテナンス] 列に表示されます。通常、[メンテナンス] 列は非表示ですが、メンテナンスがスケジュールされると、自動的に表示されます。また、列表示オプション列の表示オプションのアイコンは 3 本線です。)の [メンテナンス] を選択することで、[メンテナンス] 列を常に表示することもできます。

  • または、インスタンスを選択して [インスタンスの詳細] ページに移動することもできます。インスタンスのメンテナンスがスケジュールされているときには、[メンテナンス] ペインにメッセージが表示されます。
    Cloud SQL の [インスタンス] に移動

API を使用してスケジュールされたメンテナンスの時間枠を検索する

gcloud

下の gcloud コマンドを使用する前に、次のように置き換えます。

  • instance-id: 再スケジュールするインスタンス
gcloud sql instances describe instance-id
    

レスポンスで scheduledMaintenance セクションを探します。

REST v1

リクエストのデータを使用する前に、次のように置き換えます。

  • project-id: プロジェクト ID
  • instance-id: インスタンス ID

HTTP メソッドと URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "SQLSERVER_2019_STANDARD"
}

レスポンスで scheduledMaintenance セクションを探します。

REST v1beta4

リクエストのデータを使用する前に、次のように置き換えます。

  • project-id: プロジェクト ID
  • instance-id: インスタンス ID

HTTP メソッドと URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "SQLSERVER_2019_STANDARD"
}

レスポンスで scheduledMaintenance セクションを探します。

計画されているメンテナンスのスケジュールを変更する

メンテナンスのスケジュールを変更するには、Google Cloud コンソール、gcloud、または Cloud SQL Admin API を使用します。

コンソール

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. メンテナンス」でフィルタして、メンテナンスがスケジュールされているすべてのインスタンスを一覧表示します。
  3. [メンテナンス] 列で、[スケジュールを変更] をクリックします。
  4. [スケジュールを変更] ダイアログで、メンテナンスをすぐに適用するか、28 日の延期期間内に発生するようにスケジュールを変更するか、使用可能な次のメンテナンスの時間枠に延期するかを選択します。

gcloud

下の gcloud コマンドを使用する前に、次のように置き換えます。

  • instance-id: 再スケジュールするインスタンス
  • reschedule-type: IMMEDIATENEXT_AVAILABLE_WINDOWSPECIFIC_TIME のいずれかを使用します。

    NEXT_AVAILABLE_WINDOW を選択すると、メンテナンスのスケジュールが現在設定されている時刻から次に使用可能なメンテナンスの時間枠に変更されます。

  • reschedule-time: reschedule-typeSPECIFIC_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: IMMEDIATENEXT_AVAILABLE_WINDOWSPECIFIC_TIME のいずれかを使用します

    NEXT_AVAILABLE_WINDOW を選択すると、メンテナンスのスケジュールが次に使用可能なメンテナンスの時間枠に変更されます。

HTTP メソッドと URL:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rescheduleMaintenance

リクエストの本文(JSON):

{
  "reschedule": {
    "reschedule_type": "reschedule-type"
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": RESCHEDULE_MAINTENANCE,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

リクエストのデータを使用する前に、次のように置き換えます。

  • project-id: プロジェクト ID
  • instance-id: インスタンス ID
  • reschedule-type: IMMEDIATENEXT_AVAILABLE_WINDOWSPECIFIC_TIME のいずれかを使用します

    NEXT_AVAILABLE_WINDOW を選択すると、メンテナンスのスケジュールが次に使用可能なメンテナンスの時間枠に変更されます。

HTTP メソッドと URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rescheduleMaintenance

リクエストの本文(JSON):

{
  "reschedule": {
    "reschedule_type": "reschedule-type"
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": RESCHEDULE_MAINTENANCE,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://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 です。

コンソール

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  3. [メンテナンス] セクションで [メンテナンスの設定を編集] をクリックします。
  4. [メンテナンス拒否期間] セクションで、開始日と終了日を設定します。
  5. 必要に応じて [詳細オプション] セクションで、[繰り返し: 1 年サイクル] を選択します。
  6. [保存] をクリックします。

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 https://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": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": MAINTENANCE_DENY_PERIOD,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://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 https://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": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": MAINTENANCE_DENY_PERIOD,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

メンテナンス拒否期間を削除する

コンソール

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  3. [メンテナンス] セクションで [メンテナンスの設定を編集] をクリックします。
  4. [メンテナンス拒否期間] セクションで、[消去] をクリックします。
  5. [保存] をクリックします。

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 https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

リクエストの本文(JSON):

{
  "settings":
  {
    "denyMaintenancePeriods": []
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": MAINTENANCE_DENY_PERIOD,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

リクエストのデータを使用する前に、次のように置き換えます。

  • project-id: プロジェクト ID
  • instance-id: インスタンス ID

HTTP メソッドと URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

リクエストの本文(JSON):

{
  "settings":
  {
    "denyMaintenancePeriods": []
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": MAINTENANCE_DENY_PERIOD,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

メンテナンス拒否期間の通知

メンテナンスの時間枠の通知は、予定されたメンテナンスの時間枠がメンテナンス拒否期間に達し、メンテナンス拒否期間の設定によって禁止される場合、送信されません。

以前にスケジュールされた時刻にメンテナンスが行われないようにメンテナンス拒否期間の設定を変更すると、Cloud SQL インスタンスはメンテナンスをスキップし、メンテナンスのキャンセルに関する通知を送信します。Cloud SQL は、インスタンスの更新がスケジュールされるたびに、このキャンセル通知を送信します。

定期メンテナンスの通知は、メンテナンスが期間外に行われるようスケジュールされている限り、メンテナンス拒否期間中に送信されます。

次のステップ