You are looking at the documentation of a prior release. To read the documentation of the latest release, please
visit here.
Oracle CRD
What is Oracle CRD?
Oracle is a Kubernetes Custom Resource Definition (CRD) maintained by KubeDB. It provides a declarative configuration for Oracle database instances in your Kubernetes cluster, enabling you to manage Oracle databases using native Kubernetes tools and practices.
Key Features
- Native Kubernetes Integration: Manage Oracle databases using kubectl and Kubernetes APIs
- Flexible Deployment Modes: Support for both Standalone and DataGuard configurations
- High Availability: Built-in support for Oracle DataGuard for disaster recovery
- Resource Management: Fine-grained control over CPU, memory, and storage resources
- Security Controls: Built-in security context configuration for enhanced security
- Automated Operations: Simplified deployment and management of complex Oracle setups
Deployment Modes
KubeDB Oracle supports two primary deployment modes:
1. Standalone Mode
- Single instance Oracle database deployment
- Suitable for development and testing environments
- Simplified configuration and management
2. DataGuard Mode
- High availability configuration with primary and standby databases
- Built-in disaster recovery capabilities
- Support for synchronous and asynchronous replication
- Observer process for automated failover
Oracle CRD Specification
Like any official Kubernetes resource, an Oracle object has standard fields:
apiVersion: Specifies the API version (kubedb.com/v1alpha2)kind: Defines the resource type (Oracle)metadata: Contains name, namespace, and other metadataspec: Defines the desired state of your Oracle instance
Sample Oracle Configuration
1. Standalone Mode Configuration
apiVersion: kubedb.com/v1alpha2
kind: Oracle
metadata:
name: oracle
namespace: demo
spec:
version: 21.3.0
mode: Standalone
edition: enterprise
replicas: 1
storageType: Durable
storage:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30Gi
podTemplate:
spec:
imagePullSecrets:
- name: orclcred
securityContext:
fsGroup: 54321
runAsGroup: 54321
runAsUser: 54321
containers:
- name: oracle
resources:
limits:
cpu: "4"
memory: 10Gi
requests:
cpu: "2"
memory: 3Gi
deletionPolicy: Delete
$ kubectl create -f https://github.com/kubedb/docs/raw/v2026.6.5-rc.1/docs/examples/oracle/quickstart/standalone.yaml
oracle.kubedb.com/oracle created
2. DataGuard Mode Configuration
apiVersion: kubedb.com/v1alpha2
kind: Oracle
metadata:
name: oracle-sample
namespace: demo
spec:
version: 21.3.0
mode: DataGuard
edition: enterprise
replicas: 3
# DataGuard Specific Configuration
dataGuard:
protectionMode: MaximumProtection
standbyType: PHYSICAL
syncMode: SYNC
applyLagThreshold: 0
transportLagThreshold: 0
fastStartFailover:
fastStartFailoverThreshold: 15
observer:
podTemplate:
spec:
imagePullSecrets:
- name: orclcred
containers:
- name: observer
resources:
limits:
cpu: "1"
memory: 2Gi
requests:
cpu: 500m
memory: 2Gi
storage:
resources:
requests:
storage: 1Gi
# Storage Configuration
storageType: Durable
storage:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30Gi
# Pod Configuration
podTemplate:
spec:
imagePullSecrets:
- name: orclcred
securityContext:
fsGroup: 54321
runAsGroup: 54321
runAsUser: 54321
serviceAccountName: oracle-sample
containers:
- name: oracle
resources:
limits:
cpu: "4"
memory: 10Gi
requests:
cpu: "1500m"
memory: 4Gi
- name: oracle-coordinator
resources:
limits:
memory: 256Mi
requests:
cpu: 200m
memory: 256Mi
deletionPolicy: Delete
Configuration Parameters Explained
Core Parameters
version: Oracle database version (e.g., 21.3.0)mode: Deployment mode (Standalone or DataGuard)edition: Oracle edition (enterprise, standard)replicas: Number of database instances
DataGuard Specific Parameters
protectionMode: Defines the data protection mode (MaximumProtection, MaximumAvailability, MaximumPerformance)standbyType: Type of standby database (PHYSICAL)syncMode: Synchronization mode between primary and standby (SYNC, ASYNC)applyLagThreshold: Maximum acceptable lag in applying changestransportLagThreshold: Maximum acceptable transport lagfastStartFailover: Configuration for automated failoverobserver: Configuration for the DataGuard observer process
Storage Configuration
storageType: Type of storage (Durable for persistent storage)storage: Kubernetes PVC configurationaccessModes: Volume mount access modesresources: Storage resource requests and limits
Pod Configuration
podTemplate: Pod customization optionssecurityContext: Security settingscontainers: Resource configurations for various containersserviceAccountName: Kubernetes service account to use
Lifecycle Management
deletionPolicy: Resource cleanup policy on deletion
Best Practices
Deployment Mode Selection:
- Use Standalone mode for development/testing
- Choose DataGuard mode for production environments requiring high availability
Resource Planning:
- Allocate sufficient resources based on workload
- Consider overhead for DataGuard synchronization
- Plan observer resources carefully
Storage Configuration:
- Use enterprise-grade storage for production
- Configure appropriate storage class
- Plan for backup storage
Security:
- Implement proper security contexts
- Use service accounts with minimum required permissions
- Regular security patches and updates
Monitoring and Maintenance:
- Monitor replication lag in DataGuard setups
- Regular backup testing
- Keep track of resource usage patterns
High Availability:
- Configure appropriate FastStart Failover thresholds
- Regular failover testing
- Monitor observer health
⚠️ Legal Notice
Oracle® and Oracle Database® are registered trademarks of Oracle Corporation.
KubeDB is not affiliated with, endorsed by, or sponsored by Oracle Corporation.KubeDB provides only orchestration and management tooling for Kubernetes.
It does not distribute, bundle, ship, or include any Oracle Database software or binaries.Users must provide their own Oracle container images and hold valid Oracle licenses.
Users are solely responsible for compliance with Oracle’s licensing terms, including all rules regarding containers, Docker, and Kubernetes environments.KubeDB makes no representations or warranties regarding Oracle licensing compliance.































