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: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ This release of Oracle Database Operator for Kubernetes (the operator) supports
28
28
* SHARDED: Provision/deploy sharded databases and the shard topology, Add a new shard, Delete an existing shard
29
29
* Oracle Multitenant Database: Bind to a CDB, Create a PDB, Plug a PDB, Unplug a PDB, Delete a PDB, Clone a PDB, Open/Close a PDB
30
30
* Oracle Base Database Cloud Service (BDBCS): Provision, Bind, Scale Up/Down, Liveness Probe, Manual Backup
31
-
* Oracle Data Guard: Provision a Standby for the SIDB resource and setup a Data Guard configuration to enable manual switch over
31
+
* Oracle Data Guard: Provision a Standby for the SIDB resource, Create a Data Guard Configuration, Perform a Switchover, Patch Primary and Standby databases in Data Guard Configuration
32
32
33
33
The upcoming releases will support new configurations, operations and capabilities.
*[Setup Data Guard Configuration for a Single Instance Database (Preview status)](#setup-data-guard-configuration-for-a-single-instance-database-preview-status)
28
28
*[Create a Standby Database](#create-a-standby-database)
29
-
*[Add the Databases in Data Guard Configuration](#add-the-databases-in-data-guard-configuration)
30
-
*[Delete a database configured for Data Guard](#delete-a-database-configured-for-data-guard)
29
+
*[Create a Data Guard Configuration](#create-a-data-guard-configuration)
30
+
*[Perform a Switchover](#perform-a-switchover)
31
+
*[Patch Primary and Standby databases in Data Guard configuration](#patch-primary-and-standby-databases-in-data-guard-configuration)
32
+
*[Delete the Data Guard Configuration](#delete-the-data-guard-configuration)
*[REST Enable a Database](#rest-enable-a-database)
33
35
*[Provision ORDS](#provision-ords)
@@ -179,7 +181,7 @@ To provision a new database instance on the Kubernetes cluster, use the example
179
181
singleinstancedatabase.database.oracle.com/sidb-sample created
180
182
```
181
183
182
-
**NOTE:**
184
+
**Note:**
183
185
- For ease of use, the storage class **oci-bv** is specified in the **[singleinstancedatabase_create.yaml](../../config/samples/sidb/singleinstancedatabase_create.yaml)**. This storage class facilitates dynamic provisioning of the OCI block volumes on the Oracle OKE for persistent storage of the database. The supported access mode for this class is `ReadWriteOnce`. For other cloud providers, you can similarly use their dynamic provisioning storage classes.
184
186
- It is beneficial to have the database replica pods more than or equal to the number of available nodes if`ReadWriteMany` access mode is used with the OCI NFS volume. By doing so, the pods get distributed on different nodes and the database image is downloaded on all those nodes. This helps in reducing timefor the database fail-over if the active database pod dies.
185
187
- Supports Oracle Database Enterprise Edition (19.3.0), and later releases.
@@ -206,7 +208,7 @@ To provision new Oracle Database Express Edition (XE) database, use the sample *
206
208
207
209
This command pulls the XE image uploaded on the [Oracle Container Registry](https://container-registry.oracle.com/).
208
210
209
-
**NOTE:**
211
+
**Note:**
210
212
- Provisioning Oracle Database express edition is supported for release 21c (21.3.0) only.
211
213
- For XE database, only single replica mode (i.e. `replicas: 1`) is supported.
212
214
- For XE database, you **cannot change** the init parameters i.e. `cpuCount, processes, sgaTarget or pgaAggregateTarget`.
@@ -218,7 +220,7 @@ To provision new Oracle Database Free database, use the sample **[config/samples
218
220
219
221
This command pulls the Free image uploaded on the [Oracle Container Registry](https://container-registry.oracle.com/).
220
222
221
-
**NOTE:**
223
+
**Note:**
222
224
- Provisioning Oracle Database Free is supported for release 23c (23.2.0) and later releases.
223
225
- For Free database, only single replica mode (i.e. `replicas: 1`) is supported.
224
226
- For Free database, you **cannot change** the init parameters i.e. `cpuCount, processes, sgaTarget or pgaAggregateTarget`.
@@ -272,13 +274,14 @@ SQL>
272
274
```
273
275
**Note:** The `<.spec.adminPassword>` above refers to the database password for SYS, SYSTEM and PDBADMIN users, which in turn represented by `spec` section's `adminPassword` field of the **[config/samples/sidb/singleinstancedatabase.yaml](../config/samples/sidb/../../../../config/samples/sidb/singleinstancedatabase.yaml)** file.
274
276
275
-
The Oracle Database inside the container also has Oracle Enterprise Manager Express (OEM Express) configured. To access OEM Express, start the browser, and paste in a URL similar to the following example:
277
+
The Oracle Database inside the container also has Oracle Enterprise Manager Express (OEM Express) as a basic observability console. To access OEM Express, start the browser, and paste in a URL similar to the following example:
276
278
277
279
```sh
278
280
$ kubectl get singleinstancedatabase sidb-sample -o "jsonpath={.status.oemExpressUrl}"
279
281
280
282
https://10.0.25.54:5500/em
281
283
```
284
+
**Note:** OEM Express is not available for 23c and later releases
The database persistence can be achieved in the following two ways:
@@ -409,7 +412,7 @@ The following database initialization parameters can be updated after the databa
409
412
410
413
Change their attribute values and apply using `kubectl apply` or `kubectl edit/patch` commands.
411
414
412
-
**NOTE:**
415
+
**Note:**
413
416
The value forthe initialization parameter `sgaTarget` that you provide should be within the range set by [sga_min_size, sga_max_size]. If the value you provide is notin that range, then`sga_target` is not updated to the value you specify for`sgaTarget`.
414
417
415
418
#### Immutable YAML Attributes
@@ -563,7 +566,7 @@ The following steps are required to connect the Database using TCPS:
563
566
```bash
564
567
sqlplus sys@ORCL1 as sysdba
565
568
```
566
-
**NOTE:**
569
+
**Note:**
567
570
- When TCPS is enabled, a self-signed certificate is generated and stored inside the wallets. For users' convenience, a client-side wallet is generated and stored at `/opt/oracle/oradata/clientWallet/$ORACLE_SID` location in the pod.
568
571
- The self-signed certificate used with TCPS has validity for 1 year. After the certificate is expired, it will be renewed by the `OraOperator` automatically. You need to download the wallet again after the auto-renewal.
569
572
- You can set the certificate renew interval with the help of `tcpsCertRenewInterval` field in the **[config/samples/sidb/singleinstancedatabase.yaml](../../config/samples/sidb/singleinstancedatabase.yaml)** file. The minimum accepted value is 24h, and the maximum value is 8760h (1 year). The certificates used with TCPS will automatically be renewed after this interval. If this field is omitted/commented in the yaml file, the certificates will not be renewed automatically.
@@ -581,7 +584,7 @@ If the `LoadBalancer` is enabled, the `listenerPort`, and `tcpsListenerPort` wil
581
584
582
585
In case of `NodePort` service, `listenerPort`, and `tcpsListenerPort` will be the opened ports on the Kubernetes nodes for for normal and TCPS database connections respectively. In this case, the allowed range for the `listenerPort`, and `tcpsListenerPort` is 30000-32767.
583
586
584
-
**NOTE:**
587
+
**Note:**
585
588
- `listenerPort` and `tcpsListenerPort` can not have same values.
586
589
- `tcpsListenerPort` will come into effect only when TCPS connections are enabled (i.e. `enableTCPS` field is set in [config/samples/sidb/singleinstancedatabase.yaml](../../config/samples/sidb/singleinstancedatabase.yaml) file).
587
590
- If TCPS connections are enabled, and `listenerPort` is commented/removed in the [config/samples/sidb/singleinstancedatabase.yaml](../../config/samples/sidb/singleinstancedatabase.yaml) file, only TCPS endpoint will be exposed.
@@ -597,7 +600,7 @@ Before creating a standby, ArchiveLog, FlashBack, and ForceLog on primary Single
597
600
#### Template YAML
598
601
To create a standby database, edit and apply the sample yaml file [config/samples/sidb/singleinstancedatabase_standby.yaml](../../config/samples/sidb/singleinstancedatabase_standby.yaml).
599
602
600
-
**NOTE:**
603
+
**Note:**
601
604
- The `adminPassword` field of the above [config/samples/sidb/singleinstancedatabase_standby.yaml](../../config/samples/sidb/singleinstancedatabase_standby.yaml) contains an admin password secret of the primary database ref for Standby Database creation. This secret will get deleted after the database pod becomes ready if the `keepSecret` attribute of `adminPassword` field is set to `false`. By default `keepSecret` is set to `true`.
602
605
- Mention referred primary database in`.spec.primaryDatabaseRef`in the yaml file.
603
606
- `.spec.createAsStandby` field of the yaml file should be true.
@@ -641,13 +644,14 @@ After creating standbys, setup a dataguard configuration with protection mode an
641
644
642
645
#### Create DataGuardBroker Resource
643
646
644
-
Provision a new DataguardBroker custom resource fora single instance database(`.spec.primaryDatabaseRef`) by specifying appropriate values for the attributesin the example `.yaml` file, and running the following command:
647
+
Provision a new DataguardBroker custom resource fora single instance database(`.spec.primaryDatabaseRef`) by specifying appropriate values for the primary and standby databasesin the example `.yaml` file, and running the following command:
645
648
646
649
```sh
647
650
$ kubectl create -f dataguardbroker.yaml
648
651
649
652
dataguardbroker.database.oracle.com/dataguardbroker-sample created
650
653
```
654
+
**Note:** The following attributes cannot be patched post DataguardBroker resource creation :`primaryDatabaseRef, protectionMode`
651
655
652
656
#### DataguardBroker List
653
657
@@ -729,18 +733,7 @@ To list the DataguardBroker resources, use the following command:
729
733
Normal DG Configuration up to date 24m (x13 over 56m) DataguardBroker
730
734
```
731
735
732
-
#### Connection Information for Primary Database
733
-
734
-
External and internal (running in Kubernetes pods) clients can connect to the primary database using `.status.connectString` and `.status.clusterConnectString`
735
-
respectively in the following command
736
-
737
-
```sh
738
-
$ kubectl get dataguardbroker dataguardbroker-sample -o "jsonpath={.status.externalConnectString}"
739
-
740
-
10.0.25.87:1521/DATAGUARD
741
-
```
742
-
743
-
#### Performing a Switchover
736
+
### Perform a Switchover
744
737
745
738
Specify the approppriate SID (SID of one of `.spec.primaryDatabaseRef` , `.spec.standbyDatabaseRefs[]`) to be set primary in the `.spec.setAsPrimaryDatabase` of [dataguardbroker.yaml](./../../config/samples/sidb/dataguardbroker.yaml) and apply the yaml file.
**NOTE :** The following attributes cannot be patched post DataguardBroker resource Creation :`primaryDatabaseRef, protectionMode`.
764
-
756
+
#### Static Primary Database Connection String
765
757
766
-
#### Delete DataguardBroker Resource
758
+
External and internal (running in Kubernetes pods) clients can connect to the primary database using `.status.connectString` and `.status.clusterConnectString` of the DataguardBroker resource respectively. These connection strings are fixed for the DataguardBroker resource and will not change on switchover. They can be queried using the following command
$ kubectl get dataguardbroker dataguardbroker-sample -o "jsonpath={.status.externalConnectString}"
773
762
774
-
**NOTE :** You can only delete DataGuard broker when role of `.spec.primaryDatabaseRef` is PRIMARY
763
+
10.0.25.87:1521/DATAGUARD
764
+
```
765
+
The above connection string will always automatically route to the Primary database not requiring clients to change the connection string after switchover
775
766
776
-
### Patch primary and standby databases in Data Guard configuration
767
+
### Patch Primary and Standby databases in Data Guard configuration
777
768
778
769
Databases (both primary and standby) running in you cluster and managed by the Oracle Database operator can be patched or rolled back between release updates of the same major release. While patching databases configured with the dataguard broker you need to first patch the Primary database followed by seconday/standby databases in any order.
To delete a standby or primary database configured for Data Guard, delete the dataguardbroker resource first followed by the standby databases and finally the primary database
After this command completes, ORDS is installed in the container database (CDB) of the Single Instance Database.
888
880
889
-
##### NOTE:
881
+
##### Note:
890
882
You are required to specify the ORDS secret in the [oraclerestdataservice_create.yaml](../../config/samples/sidb/oraclerestdataservice_create.yaml) file. The default value mentioned in the `adminPassword.secretName` field is `ords-secret`. You can create this secret manually by using the following command:
891
883
892
884
```bash
@@ -1011,7 +1003,7 @@ Fetch all entries from 'DEPT' table by calling the following API
1011
1003
-d $'select * from dept;'| python -m json.tool
1012
1004
```
1013
1005
1014
-
**NOTE:**`.spec.restEnableSchema[].urlMapping` is optional and is defaulted to `.spec.restEnableSchemas[].schemaName`
1006
+
**Note:**`.spec.restEnableSchema[].urlMapping` is optional and is defaulted to `.spec.restEnableSchemas[].schemaName`
- By default, the full development environment is initialized in APEX. After deployment, you can change it manually to the runtime environment. To change environments, run the script `apxdevrm.sql` after connecting to the primary database from the ORDS pod as the `SYS` user with `SYSDBA` privilege. For detailed instructions, see: [Converting a Full Development Environment to a Runtime Environment](https://docs.oracle.com/en/database/oracle/application-express/21.2/htmig/converting-between-runtime-and-full-development-environments.html#GUID-B0621B40-3441-44ED-9D86-29B058E26BE9).
0 commit comments