Oracle Cloud Infastructure (OCI) Oracle Base Database Service (OBDS) provides single-node Database (DB) systems, deployed on virtual machines, and provides two-node Oracle Real Application Clusters (Oracle RAC) database systems on virtual machines.
The single-node DB systems and Oracle RAC systems on virtual machines are co-managed Oracle Database cloud solutions. To manage the lifecycle of an OCI OBDS system, you can use the OCI Console, the REST API, or the Oracle Cloud Infrastructure command-line interface (CLI). At the granular level, you can use the Oracle Database CLI (DBCLI), Oracle Enterprise Manager, or Oracle SQL Developer.
The Oracle DB Operator Oracle Base Database Service (OBDS) Controller is a feature of the Oracle DB Operator for Kubernetes (OraOperator) which uses OCI's Oracle Base Database Service OBDS service to support lifecycle management of the database systems.
Note: Oracle Base Database Cloud Service (OBDS) was previously known as Database Cloud Service (DBCS).
All single-node OCI Oracle RAC DB systems support the following Oracle Database editions:
- Standard Edition
- Enterprise Edition
- Enterprise Edition - High Performance
- Enterprise Edition - Extreme Performance
Two-node Oracle RAC DB systems require Oracle Enterprise Edition - Extreme Performance.
For standard provisioning of DB systems (using Oracle Automatic Storage Management (ASM) as your storage management software), the following database releases are supported:
- Oracle Database 23ai
- Oracle Database 19c
For fast provisioning of single-node virtual machine database systems (using Logical Volume Manager as your storage management software), the following database releases are supported:
- Oracle Database 23ai
- Oracle Database 19c
To deploy Oracle Database Operator (OraOperator
), use the Oracle Database Operator for Kubernetes step-by-step procedure.
After the Oracle Database Operator is deployed, you can see the DB operator pods running in the Kubernetes Cluster. As part of the OraOperator
deployment, the OBDS Controller is deployed as a CRD (Custom Resource Definition). The following screen output is an example of such a deployment:
[root@test-server oracle-database-operator]# kubectl get ns
NAME STATUS AGE
cert-manager Active 33d
default Active 118d
kube-node-lease Active 118d
kube-public Active 118d
kube-system Active 118d
oracle-database-operator-system Active 10m <<<< namespace to deploy the Oracle Database Operator
[root@test-server oracle-database-operator]# kubectl get all -n oracle-database-operator-system
NAME READY STATUS RESTARTS AGE
pod/oracle-database-operator-controller-manager-678f96f5f4-f4rhq 1/1 Running 0 10m
pod/oracle-database-operator-controller-manager-678f96f5f4-plxcp 1/1 Running 0 10m
pod/oracle-database-operator-controller-manager-678f96f5f4-qgcg8 1/1 Running 0 10m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oracle-database-operator-controller-manager-metrics-service ClusterIP 10.96.197.164 <none> 8443/TCP 11m
service/oracle-database-operator-webhook-service ClusterIP 10.96.35.62 <none> 443/TCP 11m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oracle-database-operator-controller-manager 3/3 3 3 11m
NAME DESIRED CURRENT READY AGE
replicaset.apps/oracle-database-operator-controller-manager-6657bfc664 0 0 0 11m
replicaset.apps/oracle-database-operator-controller-manager-678f96f5f4 3 3 3 10m
[root@test-server oracle-database-operator]# kubectl get crd
NAME CREATED AT
autonomousdatabasebackups.database.oracle.com 2022-02-08T18:28:55Z
autonomousdatabaserestores.database.oracle.com 2022-02-08T18:28:55Z
autonomousdatabases.database.oracle.com 2022-02-22T23:23:25Z
certificaterequests.cert-manager.io 2022-02-22T23:21:35Z
certificates.cert-manager.io 2022-02-22T23:21:36Z
challenges.acme.cert-manager.io 2022-02-22T23:21:36Z
clusterissuers.cert-manager.io 2022-02-22T23:21:36Z
dbcssystems.database.oracle.com 2022-02-22T23:23:25Z <<<< CRD for OBDS Controller
issuers.cert-manager.io 2022-02-22T23:21:36Z
orders.acme.cert-manager.io 2022-02-22T23:21:37Z
shardingdatabases.database.oracle.com 2022-02-22T23:23:25Z
singleinstancedatabases.database.oracle.com 2022-02-22T23:23:25Z
Before you deploy a OBDS system in OCI using the Oracle DB Operator OBDS Controller, complete the following procedure.
CAUTION : You must make the changes specified in this section before you proceed to the next section.
1. Create a Kubernetes Configmap. In this example. we create a Kubernetes Configmap named oci-cred
with the OCI account we are using:
kubectl create configmap oci-cred \
--from-literal=tenancy=<tenancy-ocid> \
--from-literal=user=<user-ocid> \
--from-literal=fingerprint=<fingerprint in xx:xx format> \
--from-literal=region=us-phoenix-1
2. Create a Kubernetes secret oci-privatekey
using the OCI Pem key taken from OCI console for the account you are using:
#---assuming the OCI Pem key to be "/root/.oci/oci_api_key.pem"
kubectl create secret generic oci-privatekey --from-file=privatekey=/root/.oci/oci_api_key.pem
3. Create a Kubernetes secret named admin-password
; This passward must meet the minimum passward requirements for the OCI OBDS Service.
For example:
#-- assuming the passward has been added to a text file named "admin-password":
kubectl create secret generic admin-password --from-file=./admin-password -n default
4. Create a Kubernetes secret named tde-password
; this passward must meet the minimum passward requirements for the OCI OBDS Service.
For example:
# -- assuming the passward has been added to a text file named "tde-password":
kubectl create secret generic tde-password --from-file=./tde-password -n default
5. Create an SSH key pair, and use its public key to create a Kubernetes secret named oci-publickey
; the private key for this public key can be used later to access the OBDS system's host machine using SSH:
[root@test-server OBDS]# ssh-keygen -N "" -C "DBCS_System"-`date +%Y%m` -P ""
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:+SuiES/3m9+iuIVyG/QBQL1x7CfRsxtvswBsaBuW5iE DBCS_System-202203
The key's randomart image is:
+---[RSA 2048]----+
| .o. . . |
| .o + o |
| .O . o |
| E X.*.+ |
| .*.=S+ + |
| +oo oo + |
| + * o .o o |
| *.*...o. |
| ..+o==o.. |
+----[SHA256]-----+
[root@test-server OBDS]# kubectl create secret generic oci-publickey --from-file=publickey=/root/DBCS/id_rsa.pub
For more informatoin about the multiple use cases available to you to deploy and manage the OCI OBDS Service-based database using the Oracle DB Operator OBDS Controller, review this list:
1. Deploy a DB System using OCI OBDS Service with minimal parameters
2. Binding to an existing OBDS System already deployed in OCI Oracle Base Database Service
3. Scale UP the shape of an existing OBDS System
4. Scale DOWN the shape of an existing OBDS System
5. Scale UP the storage of an existing OBDS System
6. Update License type of an existing OBDS System
7. Terminate an existing OBDS System
8. Create OBDS with All Parameters with Storage Management as LVM
9. Create OBDS with All Parameters with Storage Management as ASM
10. Deploy a 2 Node RAC DB System using OCI OBDS Service
11. Create PDB to an existing OBDS System already deployed in OCI OBDS Service
12. Create OBDS with PDB in OCI
13. Create OBDS with KMS Vault Encryption in OCI
14. Migrate to KMS vault from TDE Wallet password encryption of an existing OBDS System already deployed in OCI Base OBDS Service
15. Clone DB System from Existing DB System in OCI OBDS Service
16. Clone DB System from Backup of Existing DB System in OCI OBDS Service
17. Clone DB System from Existing Database of DB System in OCI OBDS Service
After you have deployed the OCI OBDS database with the Oracle DB Operator OBDS Controller, you can connect to the database. To see how to connect and use the database, refer to the steps in Database Connectivity.
If you encounter any issues with deployment, refer to the list of Known Issues for an OCI OBDS System deployed using Oracle DB Operator OBDS Controller.