メンテナンスの時間枠の検索と設定

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

準備

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

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

    [プロジェクトの選択] ページに移動

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Cloud SDK をインストールして初期化します。

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

優先されるメンテナンスの時間枠を設定するには:

Console

  1. [インスタンス] ページに移動します。

    [インスタンス] ページに移動

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

gcloud

以下の gcloud コマンドを使用する前に、次のように置き換えます。
  • instance-id: 再スケジュールするインスタンス
  • day: メンテナンスが実施されるよう指定する曜日。SUNMONTUEWEDTHUFRISAT のいずれかに設定します。
  • hour: メンテナンスの時間枠の UTC タイムゾーンでの時間帯(1~24)。
    gcloud sql instances patch instance-id
        --maintenance-window-day=day
        --maintenance-window-hour=hour
    
リファレンス情報については、gcloud sql instances patch をご覧ください。

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

通知を受け取るように設定しても、インスタンスのメンテナンスに優先時間枠を設定しない限り、通知は届きません。

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

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

Cloud Console でメンテナンス通知を参照する

メンテナンス通知は、Cloud Console のいくつかの場所で参照できます。

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

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

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

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

計画メンテナンスのスケジュールを変更するには:

Console

  1. [インスタンス] ページに移動します。

    [インスタンス] ページに移動

  2. [メンテナンス] という用語でフィルタして、メンテナンスがスケジュールされているすべてのインスタンスを一覧表示します。
  3. [メンテナンス] 列で、[日時を変更] をクリックします。
  4. [日時を変更] ダイアログで、メンテナンスを即座に適用するか、元のスケジュール日時から 1 週間以内に実施されるようにスケジュールを変更するか、別のスケジュール日時を作成するかを選択します。

gcloud

以下の gcloud コマンドを使用する前に、次のように置き換えます。
  • instance-id: 再スケジュールするインスタンス
  • reschedule-type: IMMEDIATENEXT_AVAILABLE_WINDOWSPECIFIC_TIME のいずれかを使用します
  • NEXT_AVAILABLE_WINDOW を選択した場合は、メンテナンスが元のスケジュール日時から 1 週間以内に実施されるように、再スケジュールされます。
  • 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 をご覧ください。

REST v1beta4

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

  • project-id: プロジェクト ID
  • instance-id: インスタンス ID
  • reschedule-type: IMMEDIATENEXT_AVAILABLE_WINDOWSPECIFIC_TIME のいずれかを使用しますNEXT_AVAILABLE_WINDOW を選択した場合は、メンテナンスが元のスケジュール日時から 1 週間以内に実施されるように、再スケジュールされます。

HTTP メソッドと URL:

POST https://www.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 リクエストがこのタスクでどのように作成されるかについては、instances:post ページの API Explorer をご覧ください。

メンテナンス不要期間を構成する

メンテナンス不要期間を構成するには、開始日、終了日、期間の開始と終了の時間を設定します。メンテナンス不要期間の範囲は 1~90 日で設定できます。

Cloud SQL インスタンスでは、任意の時点で最大 1 つのメンテナンス不要期間を構成できます。発生したかどうかにかかわらず、メンテナンス不要期間を手動で削除できます。

開始日と終了日には、次の 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 です。

gcloud または REST API を使用して、メンテナンス不要期間を構成します。

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 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://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON 本文のリクエスト:

{
  "settings":
  {
    "denyMaintenancePeriod": {
      "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"
}

メンテナンス不要期間を削除する

gcloud または REST API を使用して、メンテナンス不要期間を削除できます。

gcloud

以下の gcloud コマンドを使用する前に、次のように置き換えます。
  • instance-id: Cloud SQL インスタンス ID。
gcloud sql instances patch instance-id \
 --remove-deny-maintenance-period

REST v1beta4

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

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

HTTP メソッドと URL:

POST https://www.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"
}

メンテナンス不要期間の通知

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

インスタンスのメンテナンス不要期間の設定が、以前にスケジュールされた時刻にメンテナンス禁止に変更されると、メンテナンスがスキップされて、メンテナンスのキャンセルの通知が送信されます。このキャンセル通知は、以前にインスタンスが更新をスケジュールされていた場合に送信されます。

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

次のステップ