Skip to content

Commit dc3a767

Browse files
committed
Merge branch 'sidb-readme-fixes' into 'master'
Sidb readme fixes See merge request rac-docker-dev/oracle-database-operator!266
2 parents 24a90f9 + 9fd9401 commit dc3a767

File tree

2 files changed

+31
-39
lines changed

2 files changed

+31
-39
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ This release of Oracle Database Operator for Kubernetes (the operator) supports
2828
* SHARDED: Provision/deploy sharded databases and the shard topology, Add a new shard, Delete an existing shard
2929
* 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
3030
* 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
3232

3333
The upcoming releases will support new configurations, operations and capabilities.
3434

docs/sidb/README.md

Lines changed: 30 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@ Oracle Database Operator for Kubernetes (`OraOperator`) includes the Single Inst
2626
* [Specifying Custom Ports](#specifying-custom-ports)
2727
* [Setup Data Guard Configuration for a Single Instance Database (Preview status)](#setup-data-guard-configuration-for-a-single-instance-database-preview-status)
2828
* [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)
3133
* [OracleRestDataService Resource](#oraclerestdataservice-resource)
3234
* [REST Enable a Database](#rest-enable-a-database)
3335
* [Provision ORDS](#provision-ords)
@@ -179,7 +181,7 @@ To provision a new database instance on the Kubernetes cluster, use the example
179181
singleinstancedatabase.database.oracle.com/sidb-sample created
180182
```
181183

182-
**NOTE:**
184+
**Note:**
183185
- 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.
184186
- 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 time for the database fail-over if the active database pod dies.
185187
- 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 *
206208
207209
This command pulls the XE image uploaded on the [Oracle Container Registry](https://container-registry.oracle.com/).
208210
209-
**NOTE:**
211+
**Note:**
210212
- Provisioning Oracle Database express edition is supported for release 21c (21.3.0) only.
211213
- For XE database, only single replica mode (i.e. `replicas: 1`) is supported.
212214
- 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
218220
219221
This command pulls the Free image uploaded on the [Oracle Container Registry](https://container-registry.oracle.com/).
220222
221-
**NOTE:**
223+
**Note:**
222224
- Provisioning Oracle Database Free is supported for release 23c (23.2.0) and later releases.
223225
- For Free database, only single replica mode (i.e. `replicas: 1`) is supported.
224226
- For Free database, you **cannot change** the init parameters i.e. `cpuCount, processes, sgaTarget or pgaAggregateTarget`.
@@ -272,13 +274,14 @@ SQL>
272274
```
273275
**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.
274276

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:
276278

277279
```sh
278280
$ kubectl get singleinstancedatabase sidb-sample -o "jsonpath={.status.oemExpressUrl}"
279281
280282
https://10.0.25.54:5500/em
281283
```
284+
**Note:** OEM Express is not available for 23c and later releases
282285

283286
### Database Persistence (Storage) Configuration Options
284287
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
409412

410413
Change their attribute values and apply using `kubectl apply` or `kubectl edit/patch` commands.
411414

412-
**NOTE:**
415+
**Note:**
413416
The value for the 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 not in that range, then `sga_target` is not updated to the value you specify for `sgaTarget`.
414417

415418
#### Immutable YAML Attributes
@@ -563,7 +566,7 @@ The following steps are required to connect the Database using TCPS:
563566
```bash
564567
sqlplus sys@ORCL1 as sysdba
565568
```
566-
**NOTE:**
569+
**Note:**
567570
- 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.
568571
- 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.
569572
- 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
581584
582585
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.
583586
584-
**NOTE:**
587+
**Note:**
585588
- `listenerPort` and `tcpsListenerPort` can not have same values.
586589
- `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).
587590
- 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
597600
#### Template YAML
598601
To create a standby database, edit and apply the sample yaml file [config/samples/sidb/singleinstancedatabase_standby.yaml](../../config/samples/sidb/singleinstancedatabase_standby.yaml).
599602

600-
**NOTE:**
603+
**Note:**
601604
- 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`.
602605
- Mention referred primary database in `.spec.primaryDatabaseRef` in the yaml file.
603606
- `.spec.createAsStandby` field of the yaml file should be true.
@@ -632,7 +635,7 @@ $ kubectl get singleinstancedatabase stdby-1 -o "jsonpath={.status.status}"
632635
Healthy
633636
```
634637

635-
### Add the Databases in Data Guard Configuration
638+
### Create a Data Guard Configuration
636639

637640
#### Template YAML
638641

@@ -641,13 +644,14 @@ After creating standbys, setup a dataguard configuration with protection mode an
641644

642645
#### Create DataGuardBroker Resource
643646

644-
Provision a new DataguardBroker custom resource for a single instance database(`.spec.primaryDatabaseRef`) by specifying appropriate values for the attributes in the example `.yaml` file, and running the following command:
647+
Provision a new DataguardBroker custom resource for a single instance database(`.spec.primaryDatabaseRef`) by specifying appropriate values for the primary and standby databases in the example `.yaml` file, and running the following command:
645648

646649
```sh
647650
$ kubectl create -f dataguardbroker.yaml
648651
649652
dataguardbroker.database.oracle.com/dataguardbroker-sample created
650653
```
654+
**Note:** The following attributes cannot be patched post DataguardBroker resource creation : `primaryDatabaseRef, protectionMode`
651655

652656
#### DataguardBroker List
653657

@@ -729,18 +733,7 @@ To list the DataguardBroker resources, use the following command:
729733
Normal DG Configuration up to date 24m (x13 over 56m) DataguardBroker
730734
```
731735

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
744737

745738
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.
746739

@@ -760,20 +753,18 @@ $ kubectl --type=merge -p '{"spec":{"setAsPrimaryDatabase":"ORCLS1"}}' patch dat
760753
dataguardbroker.database.oracle.com/dataguardbroker-sample patched
761754
```
762755

763-
**NOTE :** The following attributes cannot be patched post DataguardBroker resource Creation : `primaryDatabaseRef, protectionMode`.
764-
756+
#### Static Primary Database Connection String
765757

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
767759

768-
```sh
769-
$ kubectl delete dataguardbroker dgbroker-sample
770-
771-
dataguardbroker.database.oracle.com/dgbroker-sample deleted
772-
```
760+
```sh
761+
$ kubectl get dataguardbroker dataguardbroker-sample -o "jsonpath={.status.externalConnectString}"
773762
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
775766

776-
### Patch primary and standby databases in Data Guard configuration
767+
### Patch Primary and Standby databases in Data Guard configuration
777768

778769
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.
779770

@@ -784,7 +775,7 @@ kubectl --type=merge -p '{"spec":{"image":{"pullFrom":"patched-image:tag","pullS
784775
785776
```
786777

787-
### Delete a database configured for Data Guard
778+
### Delete the Data Guard Configuration
788779

789780
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
790781

@@ -794,6 +785,7 @@ $ kubectl delete dataguardbroker dgbroker-sample
794785
795786
dataguardbroker.database.oracle.com/dgbroker-sample deleted
796787
```
788+
**Note:** Deleting of DataGuardBroker resource is allowed only when role of `.spec.primaryDatabaseRef` is PRIMARY
797789

798790
#### Delete Standby Database
799791
```sh
@@ -886,7 +878,7 @@ $ kubectl apply -f oraclerestdataservice_create.yaml
886878
```
887879
After this command completes, ORDS is installed in the container database (CDB) of the Single Instance Database.
888880

889-
##### NOTE:
881+
##### Note:
890882
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:
891883

892884
```bash
@@ -1011,7 +1003,7 @@ Fetch all entries from 'DEPT' table by calling the following API
10111003
-d $'select * from dept;' | python -m json.tool
10121004
```
10131005

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`
10151007

10161008
##### Database Actions
10171009

@@ -1089,7 +1081,7 @@ password: `.spec.apexPassword`
10891081
10901082
![application-express-admin-home](/images/sidb/application-express-admin-home.png)
10911083
1092-
**NOTE:**
1084+
**Note:**
10931085
- 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).
10941086
10951087
### Delete ORDS

0 commit comments

Comments
 (0)