Non-Terminating Repair

Non-Terminating Repair (NTR) in OCI enables the maintenance and repair of underlying hardware or software components without the need to terminate or evacuate running instances.

Important

NTR is only supported on bare metal shapes.

This approach contrasts with traditional Terminating Repair (TR) methods, which require instance termination before maintenance proceeds. NTR minimizes service disruptions and enhances application availability on OCI. NTR encompasses the following maintenance types:

  • Downtime repairs: Instances are stopped prior to maintenance. The process requires the host to be shut down or rebooted during maintenance.
    • Instance Action: STOP
  • Live repairs: Maintenance occurs while instances remain operational. Instances remain in a running state, with no termination or power-off needed during maintenance.
    • Instance Action: NONE
  • Live background repair: A use case where no user action is needed and OCI creates a maintenance event and executes the repair in the background.
    • Instance Action: NONE
Important

Maintenance Initiation: NTR maintenance begins when the scheduled start time window is reached. Schedule maintenance at the desired time for maintenance initiation.

Maintenance Events

OCI provides maintenance events to manage infrastructure maintenance processes.

Maintenance events are created when your instance/host needs maintenance. The events notify users of upcoming maintenance activities affecting their instances. Maintenance events appear in the Instance Maintenance resource in OCI Console. In addition, maintenance events can be managed using the CLI or SDKs. All interfaces allow users to reschedule maintenance windows, monitor maintenance progress, and perform necessary pre-maintenance or post-maintenance actions.

For example, the following link provides an example of a maintenance event class defined in Python. InstanceMaintenanceEvent: https://docs.oracle.com/iaas/tools/python/latest/api/core/models/oci.core.models.InstanceMaintenanceEvent.html.

Terminating Repair

Historically, Terminating Repair (TR) is the sole method for OCI to perform repairs on the underlying hardware or software of an instance.

This process requires evacuation and termination of the affected instance before repairs can begin. TR maintenance begins when the customer terminates the instance. Then, the maintenance takes place without having to reschedule the maintenance.

Managing NTR Events using the CLI

The following steps provide an example of managing maintenance events through an entire maintenance process using the CLI.

Discover Phase

Identify upcoming Instance Maintenance Events.

List Maintenance Events

oci compute instance-maintenance-event list --compartment-id <compartment-id>

Replace <compartment-id> with your compartment's OCID.

Example:

oci compute instance-maintenance-event list --compartment-id ocid1.tenancy.oc1..

Sample output:

{
  "data": [
    {
      "alternative-resolution-actions": [],
      "can-reschedule": true,
      "compartment-id": "ocid1.tenancy.oc1..",
      "correlation-token": "",
      "created-by": "SYSTEM",
      "defined-tags": {
        "Oracle-Tags": {
          "CreatedBy": "",
          "CreatedOn": "2026-01-29T21:51:09.112Z"
        }
      },
      "description": "Oracle scheduled a maintenance action for your instance that will be performed without any required downtime.",
      "display-name": "LIVE_HOST_MAINTENANCE",
      "estimated-duration": "null",
      "freeform-tags": {},
      "id": "ocid1.instancemaintenanceevent.oc1.ap-sydney-1.",
      "instance-action": "NONE",
      "instance-id": "ocid1.instance.oc1.ap-sydney-1.",
      "lifecycle-state": "SUCCEEDED",
      "maintenance-category": "FLEXIBLE",
      "maintenance-reason": "HARDWARE_REPLACEMENT",
      "start-window-duration": "null",
      "time-created": "2026-01-29T21:48:21.731000+00:00",
      "time-finished": "2026-01-29T23:10:42.551000+00:00",
      "time-hard-due-date": "2036-02-24T21:47:40.815000+00:00",
      "time-started": "2026-01-29T22:20:49.835000+00:00",
      "time-window-start": "2026-01-29T22:10:00+00:00"
    },
    {
      "alternative-resolution-actions": [],
      "can-reschedule": true,
      "compartment-id": "ocid1.tenancy.oc1..",
      "correlation-token": "",
      "created-by": "SYSTEM",
      "defined-tags": {},
      "description": "Oracle scheduled a maintenance action for your instance that will be performed without any required downtime.",
      "display-name": "LIVE_HOST_MAINTENANCE",
      "estimated-duration": "null",
      "freeform-tags": {},
      "id": "ocid1.instancemaintenanceevent.oc1.ap-sydney-1.",
      "instance-action": "NONE",
      "instance-id": "ocid1.instance.oc1.ap-sydney-1.",
      "lifecycle-state": "SCHEDULED",
      "maintenance-category": "FLEXIBLE",
      "maintenance-reason": "HARDWARE_REPLACEMENT",
      "start-window-duration": "null",
      "time-created": "2026-01-30T22:26:28.438000+00:00",
      "time-finished": null,
      "time-hard-due-date": "2036-02-25T22:25:53.697000+00:00",
      "time-started": null,
      "time-window-start": "2036-02-11T22:25:53.697000+00:00"
    }
  ]
}

Get Instance Maintenance Event Details

View a specific maintenance event.

oci compute instance-maintenance-event get --instance-maintenance-event-id <instance-maintenance-event-id>

Replace <instance-maintenance-event-id> with the specific event's OCID.

Example:

oci compute instance-maintenance-event get --instance-maintenance-event-id ocid1.instancemaintenanceevent.oc1.ap-sydney-1...

Sample output:

{
  "data": {
    "additional-details": {
      "faultDetails": "[]",
      "repairDetails": "[]"
    },
    "alternative-resolution-actions": [],
    "can-delete-local-storage": false,
    "can-reschedule": true,
    "compartment-id": "ocid1.tenancy.oc1..",
    "correlation-token": "",
    "created-by": "SYSTEM",
    "defined-tags": {},
    "description": "Oracle scheduled a maintenance action for your instance that will be performed without any required downtime.",
    "display-name": "LIVE_HOST_MAINTENANCE",
    "estimated-duration": "null",
    "freeform-tags": {},
    "id": "ocid1.instancemaintenanceevent.oc1.ap-sydney-1.",
    "instance-action": "NONE",
    "instance-id": "ocid1.instance.oc1.ap-sydney-1.",
    "lifecycle-details": null,
    "lifecycle-state": "SCHEDULED",
    "maintenance-category": "FLEXIBLE",
    "maintenance-reason": "HARDWARE_REPLACEMENT",
    "start-window-duration": "null",
    "time-created": "2026-01-30T22:26:28.438000+00:00",
    "time-finished": null,
    "time-hard-due-date": "2036-02-25T22:25:53.697000+00:00",
    "time-started": null,
    "time-window-start": "2036-02-11T22:25:53.697000+00:00"
  },
  "etag": ""
}

Pre-Maintenance Phase

Reschedule the start time window of an Instance Maintenance Event and perform any necessary pre-maintenance actions.

Reschedule Instance Maintenance Event

oci compute instance-maintenance-event update --instance-maintenance-event-id <instance-maintenance-event-id> --time-window-start "<time-window-start>"

Replace <instance-maintenance-event-id> with the event's OCID and <time-window-start> with the desired start time in ISO 8601 format.

Example:

oci compute instance-maintenance-event update --instance-maintenance-event-id ocid1.instancemaintenanceevent.oc1.ap-sydney-1... --time-window-start "2026-01-30T22:40:53.697000+00:00"

Sample output:

{
    "opc-work-request-id": "ocid1.coreservicesworkrequest.oc1.ap-sydney-1..."
}
Important

Ensure all pre-maintenance actions are completed before the scheduled start time window.

Monitor Phase

Maintenance starts at the scheduled start time. Please wait until maintenance is completed.

Monitor Instance Maintenance Event Status

Monitor the status of a maintenance event during execution.

oci compute instance-maintenance-event get --instance-maintenance-event-id <instance-maintenance-event-id>

Replace <instance-maintenance-event-id> with the event's OCID.

Example:

oci compute instance-maintenance-event get --instance-maintenance-event-id ocid1.instancemaintenanceevent.oc1.ap-sydney-1...

Sample output:

{
  "data": {
    "additional-details": {
      "faultDetails": "[]",
      "repairDetails": "[]"
    },
    "alternative-resolution-actions": [],
    "can-delete-local-storage": false,
    "can-reschedule": true,
    "compartment-id": "ocid1.tenancy.oc1..",
    "correlation-token": "",
    "created-by": "SYSTEM",
    "defined-tags": {
      "Oracle-Tags": {
        "CreatedBy": "",
        "CreatedOn": "2026-01-30T22:39:54.637Z"
      }
    },
    "description": "Oracle scheduled a maintenance action for your instance that will be performed without any required downtime.",
    "display-name": "LIVE_HOST_MAINTENANCE",
    "estimated-duration": "null",
    "freeform-tags": {},
    "id": "ocid1.instancemaintenanceevent.oc1.ap-sydney-1.",
    "instance-action": "NONE",
    "instance-id": "ocid1.instance.oc1.ap-sydney-1.",
    "lifecycle-details": null,
    "lifecycle-state": "PROCESSING",
    "maintenance-category": "FLEXIBLE",
    "maintenance-reason": "HARDWARE_REPLACEMENT",
    "start-window-duration": "null",
    "time-created": "2026-01-30T22:26:28.438000+00:00",
    "time-finished": null,
    "time-hard-due-date": "2036-02-25T22:25:53.697000+00:00",
    "time-started": "2026-01-30T22:42:40.371000+00:00",
    "time-window-start": "2026-01-30T22:40:53.697000+00:00"
  },
  "etag": ""
}

Post-maintenance phase

You can do your own post-maintenance action, if there is any, after the Instance Maintenance Events completed.