You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: operations-advisory/customer-operations/oracle-database/Oracle Database @ Google Cloud Operations/Oracle Database @ Google Operations Best Practices/README.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
1
# Operational Best Practices for Oracle Database@Google Cloud
2
2
3
-
Last reviewed: 2026-05-20
3
+
Last reviewed: 2026-05-26
4
4
5
5
This document does not define the overall operating model. The operating model is GitOps: Git remains the source of truth, changes are reviewed through pull requests, pipelines execute approved changes, and the desired state is applied, validated, or reconciled through the appropriate automation layer.
6
6
7
7
This document defines the Oracle Database@Google Cloud operational best practices that fit into that GitOps model. It explains control-plane ownership, Terraform state boundaries, Day 1 and Day 2 tool selection, handoff contracts, and drift handling for OD@GCP.
8
8
9
-
For the implementation runbook, dependency handoff examples, and module wiring patterns, see [OD@GCP Module Handoff Reference](./odgcp-module-handoff-reference.md).
9
+
For the implementation runbook, dependency handoff examples, and module wiring patterns, see [OD@GCP Module Handoff Reference](./handoff-reference.md).
10
10
11
11
## Table Of Contents
12
12
@@ -83,7 +83,7 @@ flowchart LR
83
83
class EXCEPTION exception
84
84
```
85
85
86
-
For the concrete dependency maps, wrapper pattern, direct OCID pattern, and post-handoff checks, see [OD@GCP Module Handoff Reference](./odgcp-module-handoff-reference.md).
86
+
For the concrete dependency maps, wrapper pattern, direct OCID pattern, and post-handoff checks, see [OD@GCP Module Handoff Reference](./handoff-reference.md).
87
87
88
88
## 3. Control-Plane Ownership and State Boundaries
89
89
@@ -116,32 +116,32 @@ This section explains why the ownership split is recommended. The Google provide
116
116
117
117
The Google provider is the Day 1 creation and ownership provider for the Google Cloud-side OD@GCP resources. After deployment, use it for state ownership, outputs, lifecycle/deletion controls, drift visibility, and plan checks.
118
118
119
-
Do not use it for OD@GCP Day 2 operations. Operational changes such as Exadata Infrastructure capacity updates, VM Cluster CPU/ECPU/OCPU scaling, patching, upgrades, maintenance changes, and database lifecycle work belong to OCI-native tooling or to the controlled OCI Terraform exception path where supported.
119
+
Do not use it for OD@GCP Day 2 operations. Operational changes such as Exadata Infrastructure capacity updates, VM Cluster CPU/OCPU scaling, patching, upgrades, maintenance changes, and database lifecycle work belong to OCI-native tooling or to the controlled OCI Terraform exception path where supported.
120
120
121
-
Terraform-managed lifecycle fields (`deletion_protection`, `deletion_policy`, and `timeouts`) can change without replacing the OD@GCP resource because they do not update the OD@GCP service configuration. API-managed fields must be treated as creation-time fields from the Google provider. For `labels`, do not assume update support even if the provider schema looks mutable; existing OD@GCP resources can reject label changes as not updatable.
121
+
Terraform-managed lifecycle fields (`deletion_protection` and `timeouts`) can change without replacing the OD@GCP resource because they do not update the OD@GCP service configuration. API-managed fields must be treated as creation-time fields from the Google provider. For `labels`, do not assume update support even if the provider schema looks mutable; existing OD@GCP resources can reject label changes as not updatable.
122
122
123
123
| Resource | Recommended role | API-managed fields to treat as creation-time |
124
124
|---|---|---|
125
125
|`google_oracle_database_odb_network`| Create and own ODB Network identity on an existing VPC. |`labels`, `network`, `location`, `odb_network_id`, `gcp_oracle_zone`, `project`. |
126
126
|`google_oracle_database_odb_subnet`| Create and own client and backup ODB Subnets. |`labels`, `cidr_range`, `purpose`, `odbnetwork`, `location`, `odb_subnet_id`, `project`. |
|`google_oracle_database_cloud_vm_cluster`| Create Cloud VM Cluster and publish the VM Cluster OCID. |`labels`, `display_name`, network/subnet references, `properties`, CPU/ECPU/OCPU, storage, memory, Grid Infrastructure version, node count, DB servers, SSH keys. |
128
+
|`google_oracle_database_cloud_vm_cluster`| Create Cloud VM Cluster and publish the VM Cluster OCID. |`labels`, `display_name`, network/subnet references, `properties`, CPU (`cpu_core_count`) / OCPU (`ocpu_count`), storage, memory, Grid Infrastructure version, node count, DB servers, SSH keys. |
129
129
130
130
Validate any update assumption with `terraform plan` against the pinned provider version and, where needed, with the documented service behavior before use.
131
131
132
132
`ignore_changes` in the Google Cloud-side module is a drift contract for OCI-side operations. It prevents Terraform from trying to revert or replace resources for changes that the Google provider should not own. It does not make those fields safe to update through the Google provider.
133
133
134
134
### 4.3 OCI Provider Position
135
135
136
-
The OCI provider is the normal Terraform provider for the OCI database layer. It can also be used as a controlled exception path for selected Infrastructure or VM Cluster updates when the customer’s OD@GCP service model, Oracle documentation, and provider schema support the intended field.
136
+
The OCI provider is the normal Terraform provider for the OCI database layer. It can also be used as a controlled exception path for selected Infrastructure or VM Cluster updates when the customer's OD@GCP service model, Oracle documentation, and provider schema support the intended field.
137
137
138
138
| Resource | Recommended role | Update position |
139
139
|---|---|---|
140
140
|`oci_database_db_home`| Normal OCI-side DB Home and initial database resource. | Use for declarative DB Home and initial CDB/database creation when the database layer must be managed through Terraform. |
141
141
|`oci_database_database`| Normal OCI-side CDB/database resource when separated from DB Home lifecycle. | Use for selected declarative database settings, including database-level backup configuration where required and supported. |
142
142
|`oci_database_pluggable_database`| Normal OCI-side PDB resource. | Use for declarative PDB creation and selected supported PDB lifecycle attributes. |
143
143
|`oci_database_cloud_exadata_infrastructure`| Controlled exception only. | Use only for approved and supported Infrastructure fields, such as capacity, maintenance-related settings, display name, tags, or compartment-related changes where valid for the OD@GCP service model. |
144
-
|`oci_database_cloud_vm_cluster`| Controlled exception only. | Use only for approved and supported VM Cluster fields, such as CPU/ECPU/OCPU, storage, memory, NSGs, license model, SSH keys, diagnostics, tags, or display name where valid for the OD@GCP service model. |
144
+
|`oci_database_cloud_vm_cluster`| Controlled exception only. | Use only for approved and supported VM Cluster fields, such as CPU/OCPU, storage, memory, NSGs, license model, SSH keys, diagnostics, tags, or display name where valid for the OD@GCP service model. |
145
145
146
146
The OCI provider has resource support for selected Terraform-driven changes that the Google provider should not own. However, it must not become a second long-lived owner for Google-created Infrastructure or VM Cluster resources.
147
147
@@ -182,7 +182,7 @@ This is not the default Day 2 operations path. Use it only for approved Infrastr
182
182
1. The customer requires or has approved Terraform-driven Day 2 updates.
183
183
2. The OD@GCP resource is exposed through the OCI control plane.
184
184
3. The OCI provider supports the target field as updatable.
185
-
4. Oracle documentation, the official provider schema, or Oracle Support confirms that the operation is valid for the customer’s OD@GCP service model.
185
+
4. Oracle documentation, the official provider schema, or Oracle Support confirms that the operation is valid for the customer's OD@GCP service model.
186
186
5. The matching Google Cloud-side `ignore_changes` contract is already in place.
187
187
6. The change is evidenced with a ticket, work request where applicable, plan output, command output where applicable, and final state.
188
188
@@ -204,9 +204,9 @@ The two reference module families share a single contract: the Google Cloud-side
204
204
| Google Cloud networking |`modules/odb-networking`| Owns ODB Network and ODB Subnets. |
205
205
| Google Cloud Exadata |`modules/exadb`| Owns Cloud Exadata Infrastructure and Cloud VM Cluster identity. |
206
206
| OCI database layer |`exadata-database`| Owns DB Homes, CDBs, PDBs, and backups when that layer must be declarative. |
207
-
| Handoff example |`oci-dbhome-handoff`| Resolves `vm_cluster_key` from the Google Cloud-side VM Cluster output and passes the OCI VM Cluster OCID to the OCI Exadata Database module. |
207
+
| Handoff example |`oci-dbhome-handoff`| Resolves `vm_cluster_id` — either a direct OCI Cloud VM Cluster OCID or a lookup key from `gcp_cloud_vm_clusters_dependency` — and passes the resolved OCI OCID to the OCI Exadata Database module. |
208
208
209
-
Use [OD@GCP Module Handoff Reference](./odgcp-module-handoff-reference.md) for the practical wiring details: dependency maps, direct OCID handoff, wrapper-based handoff, post-handoff checks, and common mistakes.
209
+
Use [OD@GCP Module Handoff Reference](./handoff-reference.md) for the practical wiring details: dependency maps, direct OCID handoff, wrapper-based handoff, post-handoff checks, and common mistakes.
0 commit comments