---
title: Oracle RAC with Dataguard
slug: oracle-rac-with-dataguard
docTags: 
createdAt: 2026-10-05T13:23:09.002Z
---

# Overview

This document outlines the technical solution guide integration for integrating the Kyndryl Bridge AIOps-based Resiliency platform. It provides multiple IT applications and databases business continuity and Cyber Resiliency option to manage from a single platform as a service.

Kyndryl Bridge (AIOps) platform will automate various tasks and configurations, improving efficiency, scalability, and reliability. This document is focused on Oracle solution integration with the Kyndryl Bridge platform.

# Objective

The primary objectives of Oracle Disaster Recovery (DR) solutions, such as Oracle RAC with DataGuard, are to ensure the availability, reliability, and continuity of critical databases in the event of a disaster or unexpected failure.&#x20;

The key objectives include:

## Business Continuity

- **Minimize Downtime:** Ensure minimal disruption to business operations by minimizing the downtime associated with database failures.
- **Continuous Access:** Provide continuous access to data and services even during unexpected incidents.

## Data Protection

- **Data Integrity**: Maintain the integrity of data across primary and standby databases to prevent data loss or corruption.
- **Data Consistency:** Synchronize changes made to the primary database with standby databases to ensure consistent data across all sites.

## Disaster Recovery

- **Fast Recovery:** Facilitate quick recovery in a disaster by enabling failover to standby databases.
- **Redundancy:&#x20;**&#x45;stablish redundant databases in geographically separated locations to protect against natural disasters, hardware failures or other catastrophic events.

## High Availability

- **Fault Tolerance:&#x20;**&#x45;nhance fault tolerance by configuring multiple standby databases and leveraging Oracle Real Application Clusters (RAC) for load balancing and failover capabilities.
- **Load Distribution:** Distribute database workload across multiple nodes to prevent overloading and ensure optimal performance.

## Scalability

- **Horizontal Scaling:&#x20;**&#x53;cale database resources horizontally by adding standby databases to the configuration, allowing for increased capacity and performance.
- **Vertical Scaling:** Utilize Oracle Real Application Clusters (RAC) to vertically scale by adding nodes to the cluster to handle increased demand.

## Flexibility

- **Snapshot Standby**: Allow temporary read-write access to standby databases for reporting or testing purposes without affecting the primary database.
- **Configuration Options:** Offer flexibility in choosing configurations that suit the specific needs of the organization, such as synchronous or asynchronous replication.

## Automated Management

- **Data Guard Broker:&#x20;**&#x53;treamline the configuration, management, and monitoring of Data Guard environments through the use of the Data Guard Broker, allowing for easier failover and switchover operations.
- **Monitoring Tools**: Provide tools and utilities for monitoring the health and performance of both primary and standby databases.

## Compliance and Security

- **Compliance:** Ensure compliance with regulatory requirements regarding data availability, integrity and security.
- **Security:** Implement secure communication and authentication mechanisms between primary and standby databases to protect against unauthorized access.

# Architecture diagram, explanation with the required port number and network flow

Oracle RAC Archive logs with DataGuard DR Solution provide business continuity for the applications that run on the Oracle database. Data protection is done using DataGuard to copy log files and other DB-related files between Production and DR (remote) sites. Since this whole process is automated using Kyndryl Resiliency Orchestration, the management is simplified and the DR database is continuously updated.

The following diagram explains how Oracle RAC works with DataGuard to protect Oracle data in the Kyndryl Resiliency Orchestration environment.

![](https://api.archbee.com/api/optimize/QU1TIK52ntw5Jsos0uOt5/8esEDmwfJp-npgqZB4CV7_image.png)

## Architecture network flow diagram

![](https://api.archbee.com/api/optimize/QU1TIK52ntw5Jsos0uOt5/Ma7jPJ6kOGFYnn372VKUp_image.png)

# Supported versions

| <font color="#f3f4f6">**Supported Versions of the OS and Platforms**</font>                    | <font color="#f3f4f6">**Supported Versions of Storage (Database/File System)**</font> | <font color="#f3f4f6">**Supported Versions Protection Scheme (Replication)**</font> |
| ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| Windows 2016\*<br />RHEL 7.0/8.0/8.4/8.6/9.2<br />Solaris 10/11\*<br />AIX 7.1(not supported)  | Oracle RAC Logs 19c/21c (64 bits)<br />Dataguard 11g\*/18c<br /><br />                | Oracle RAC Logs 19c/21c (64 bits)<br />Dataguard 11g\*/18c                          |

## Prerequisites

The following are the prerequisites:

- Intelligence added where the playbook automation will automatically pick the active instance out of multiple instances and perform the recovery operations.
- OS user with sudo permissions to execute Oracle tools:&#x20;
  - lsnrctl
  - srvctl
  - dgmgrl
- Create an execution environment with SQLPLUS on CACF Tower. If not created, the customer must have a dedicated SQLPLUS client.
- The user must add the Oracle hosts to the inventory file for both PR and DR.
- Create credentials for each host credential type of the machine.
- On CACF Tower, a new credential type will be created to perform the automation. Follow the instructions given below:
  - Login to CACF Tower.
  - Navigate to Credential type and create a new with the below configuration:
    - Credential Types :\<custID>-resiliency-oracle

# Input configuration

### Fields

| ****<font color="#f3f4f6">**Field ID**</font>**** | ****<font color="#f3f4f6">**Label**</font>**** | ****<font color="#f3f4f6">**Type**</font>**** | ****<font color="#f3f4f6">**Required**</font>**** | ****<font color="#f3f4f6">**Secret**</font>**** |
| ------------------------------------------------- | ---------------------------------------------- | --------------------------------------------- | ------------------------------------------------- | ----------------------------------------------- |
| username                                          | DB Username                                    | String                                        | Yes                                               | No                                              |
| password                                          | DB Password                                    | String                                        | Yes                                               | Yes                                             |
| os\_username                                      | OS Username                                    | String                                        | Yes                                               | No                                              |
| os\_password                                      | OS Password                                    | String                                        | Yes                                               | Yes                                             |

### Required Fields

- username
- password
- os\_username
- os\_password

### Injector Configuration

| <font color="#f3f4f6">**Variable**</font> | <font color="#f3f4f6">**Value**</font> |
| ----------------------------------------- | -------------------------------------- |
| oracle\_user                              | \{\{username}}                         |
| oracle\_password                          | \{\{password}}                         |
| os\_username                              | \{\{os\_username}}                     |
| os\_password                              | \{\{os\_password}}                     |

# Solution Level Privileges

- The user needs admin privileges for this solution.
- Both OS and DB authentication are supported for this solution.

# Features of the Solution

The features of this solution are as follows:

- The following features of Discovery and Config Data Model are supported:
  - Resource Type
  - Data Collection
  - BluePrint
- The following features of Insights are supported:
  - RPO Calculation
  - Datalag Calculation
- The following features of Metrics are supported:
  - Oracle Oracle RAC Dataguard Status
  - Oracle Log Apply status
  - Oracle Oracle RAC DataGuard Mode
  - Oracle Database Status
- The following features of Automation are supported:&#x20;
  - Failover
  - Switchover&#x20;
  - Switchback&#x20;

# Benefits of the Solution

The benefits of this solution are as follows:

- Advanced prechecks on all automation so that automation gets triggered when the system is in the correct state.
- Advanced Post recovery checks of the database on the DR site.
- Automated enabling the Oracle RAC with DataGuard replication in a reverse way.
- Performs DR operations only when there is no gap w\.r.t logs between the primary and the secondary sites.
- Real-time metrics is displayed on the dashboard along with the alerts.

# Known Limitations

## Solution Limitations

- DB user with sys equivalent with sysdba role is only supported.
- Since Oracle provides datalag in sequence. We can only display the sequence in dashbaord. Displaying datalag in MB is not possible.
- The following is the list of unsupported scenarios for the Oracle RAC Dataguard solution.
  - Multi-Site DG environment.
  - Fallback is not supported.
  - Reverse Failover (Failover to PR post Switchover).

## Technology limitations

- Recovery operations in Oracle can only be performed with the user which has the highest roles and privileges.
- Oracle provides datalag in sequence, which can only be displayed in the dashboard. Displaying datalag in MB is not possible.

# Setting up of the Solution

## Inputs for Onboarding&#x20;

**Configure:&#x20;**&#x52;esource type are the properties required to be configured to the existing resource\_type.yml under the DNC-data-model.

| <font color="#f3f4f6">**F**</font>****<font color="#f3f4f6">**ields**</font> | <font color="#f3f4f6">**Description**</font>                 | <font color="#f3f4f6">**Sample Value**</font> | <font color="#f3f4f6">**Fixed**</font> | <font color="#f3f4f6">**Mandatory**</font> | <font color="#f3f4f6">**Recommended Values**</font> |
| ---------------------------------------------------------------------------- | ------------------------------------------------------------ | --------------------------------------------- | -------------------------------------- | ------------------------------------------ | --------------------------------------------------- |
| Oracle sid name                                                              | Enter the Oracle sid name.                                   | orcl                                          | No                                     | Yes                                        |                                                     |
| Automatic Target Host                                                        | Enter the automatic Target Host name.                        | 192.168.6.109<br /><br />172.168.6.109        | No                                     | Yes                                        |                                                     |
| Automatic Execution Environment                                              | Enter the automatic Execution Environment details.           | anisible-ee-sql                               | Yes                                    | No                                         |                                                     |
| Configured RPO in minutes                                                    | Enter the time to Configure RPO in minutes.                  | 15                                            | No                                     | Yes                                        |                                                     |
| Threshold for Acceptable RPO deviation                                       | Enter the threshold for Acceptable RPO deviation.            | 20                                            | No                                     | Yes                                        |                                                     |
| Compute interval in minutes                                                  | Enter the time to compute interval in minutes.               | 5                                             | No                                     | Yes                                        |                                                     |
| Configured datalag deviation in MB                                           | Enter the configured datalag deviation in MB.                | 15                                            | No                                     | Yes                                        |                                                     |
| Configured datalag deviation threshold percentage                            | Enter the configured datalag deviation threshold percentage. | 50                                            | No                                     | Yes                                        |                                                     |

**Automation**: The following table provides the inputs required to execute the automated features.

**Failover:&#x20;**&#x54;his automation performs the failover test for the solution.

| <font color="#f3f4f6">**F**</font>****<font color="#f3f4f6">**ields**</font> | <font color="#f3f4f6">**Description**</font>      | <font color="#f3f4f6">**Sample Value**</font> | <font color="#f3f4f6">**Fixed**</font> | <font color="#f3f4f6">**Mandatory**</font> | <font color="#f3f4f6">**Recommended Values**</font> |
| ---------------------------------------------------------------------------- | ------------------------------------------------- | --------------------------------------------- | -------------------------------------- | ------------------------------------------ | --------------------------------------------------- |
| Credential Label Name                                                        | Enter the Credential Label Name                   | ro1\_cred\_oracle\_dg                         | No                                     | Yes                                        |                                                     |
| Oracle sid name                                                              | Enter the Oracle sid name                         | orcl                                          | No                                     | Yes                                        |                                                     |
| Oracle DR Port Number                                                        | Enter the Oracle DR Port Number                   | 1521                                          | No                                     | Yes                                        |                                                     |
| Oracle DR Server                                                             | Enter the Oracle DR Server                        | 172.168.6.109                                 | No                                     | Yes                                        |                                                     |
| Oracle DB Role                                                               | Enter the Oracle DB Role                          | sysdba                                        | No                                     | Yes                                        |                                                     |
| Oracle PR Server                                                             | Enter the Oracle PR Server                        | 192.168.6.109                                 | No                                     | Yes                                        |                                                     |
| Automatic Target Host                                                        | Enter the Automatic Target Host                   | 192.168.6.109<br /><br />172.168.6.109        | No                                     | Yes                                        |                                                     |
| Automatic Execution Environment                                              | Enter the Automatic Execution Environment details | anisible-ee-sql                               | Yes                                    | No                                         |                                                     |

# Error code and recommendation

| <font color="#f3f4f6">**Return Code Group**</font> | <font color="#f3f4f6">**Return Code**</font> | <font color="#f3f4f6">**Comments**</font>                         |
| -------------------------------------------------- | -------------------------------------------- | ----------------------------------------------------------------- |
| connection\_issue                                  | 8521,8524,8526                               | Unable to connect to the host. Please check the user name and pwd |
| misconfiguration                                   | 8501                                         | dr\_db\_port is not configured                                    |
| misconfiguration                                   | 8502                                         | oracle\_dr\_db\_name is not configured.                           |
| misconfiguration                                   | 8503                                         | oracle\_dr\_db\_role is not configured.                           |
| misconfiguration                                   | 8504                                         | oracle\_db\_role is not configured.                               |
| misconfiguration                                   | 8505                                         | Either PR or DR node group is missing or incorrect.               |
| misconfiguration                                   | 8506                                         | All nodes are not reachable                                       |
| misconfiguration                                   | 8507                                         | Nodes are reachable but none of them is active status.            |
| component\_playbook                                | 8508                                         | ERROR: Oracle RAC database instance is not in running state       |
| component\_playbook                                | 8509                                         | Technical issue in running the srvctl command.                    |
| misconfiguration                                   | 8510                                         | Reachable but not node server is not active.                      |
| component\_playbook                                | 8511                                         | no DataBase is available                                          |
| component\_playbook                                | 8522                                         | DB execution error                                                |
| misconfiguration                                   | 8523                                         | database validation failed                                        |
| component\_playbook                                | 8525                                         | ERROR: database instance failed to stop.                          |
| component\_playbook                                | 8528                                         | ERROR: Failed the backup of the control files.                    |
| component\_playbook                                | 8529                                         | ERROR : Failed to get the resources of RAC.                       |
| component\_playbook                                | 8530                                         | ERROR: Failed to get the database instance state                  |
| component\_playbook                                | 8531                                         | ERROR : Failed to get the status of RAC DB                        |
| component\_playbook                                | 8532                                         | Role in not a expected RAC db role                                |
| component\_playbook                                | 8527                                         | ERROR: database instance failed to start.                         |

