---
title: RheoData Blog (4)
description: RheoData Blog Posts (4)
---

[![RheoData - Logo - transparent-1](https://rheodata.com/hs-fs/hubfs/RheoData%20-%20Logo%20-%20transparent-1.png?width=250&height=50&name=RheoData%20-%20Logo%20-%20transparent-1.png "RheoData - Logo - transparent-1")](https://rheodata.com/)

- Who We Are 
    - [About Us](https://rheodata.com/who-we-are)
- Services 
    - Consulting 
          - [The Studio](https://rheodata.com/the-studio)
    - Accelerators 
          - [FrostCore](https://rheodata.com/frostcore)
          - [FrostAI](https://rheodata.com/frostai)
          - [RedCore](https://rheodata.com/redcore)
          - [RedAI](https://rheodata.com/redai)
          - [RedGuard](https://rheodata.com/redguard)
          - [BlueCore](https://rheodata.com/bluecore)
          - [Calypso](https://rheodata.com/calypso)
    - Services 
          - [Data Integration](https://rheodata.com/data-integration)
          - [Analytics](https://rheodata.com/data-analytics)
          - [Multi-Cloud](https://rheodata.com/multi-cloud)
          - [Oracle@Google Cloud](https://rheodata.com/oracle-google-cloud)
          - [Exadata & Oracle Database](https://rheodata.com/exadata-and-oracle-database-26ai)
- Verticals 
    - [Manufacturing](https://rheodata.com/manufacturing)
    - [Retail](https://rheodata.com/retail)
    - [State & Local](https://rheodata.com/sled)
- [Customer Stories](https://rheodata.com/customer-stories) 
    - [Altec](https://rheodata.com/customer-stories/altec-oci-goldengate-data-migration)
    - [Shoe Carnival](https://rheodata.com/customer-stories/shoe-carnival-goldengate-microservices-migration)
    - [Icon](https://rheodata.com/customer-stories/icon-transatlantic-replication)
    - [Inovalon](https://rheodata.com/customer-stories/inovalon-data-pipeline-automation)
- Resources 
    - [Blog](https://rheodata.com/en-us/blog)
    - Books 
          - [Pro Oracle GoldenGate 23ai](https://rheodata.com/pro-oracle-goldengate-23ai-for-the-dba-pdf-landing-page)
- [Contact](https://rheodata.com/contact)

[![](https://rheodata.com/hs-fs/hubfs/Imported_Blog_Media/blog-feature-Logo-Nov-26-2025-07-14-39-7226-PM.png?width=100&height=100&name=blog-feature-Logo-Nov-26-2025-07-14-39-7226-PM.png)](https://rheodata.com/)

<https://rheodata.com/en-us/blog/page/4#minimal-header__mobile-nav__mmenu>

[![RheoData - Logo - transparent-1](https://rheodata.com/hs-fs/hubfs/RheoData%20-%20Logo%20-%20transparent-1.png?width=250&height=50&name=RheoData%20-%20Logo%20-%20transparent-1.png "RheoData - Logo - transparent-1")](https://rheodata.com/)

- Who We Are 
    - [About Us](https://rheodata.com/who-we-are)
- Services 
    - Consulting 
          - [The Studio](https://rheodata.com/the-studio)
    - Accelerators 
          - [FrostCore](https://rheodata.com/frostcore)
          - [FrostAI](https://rheodata.com/frostai)
          - [RedCore](https://rheodata.com/redcore)
          - [RedAI](https://rheodata.com/redai)
          - [RedGuard](https://rheodata.com/redguard)
          - [BlueCore](https://rheodata.com/bluecore)
          - [Calypso](https://rheodata.com/calypso)
    - Services 
          - [Data Integration](https://rheodata.com/data-integration)
          - [Analytics](https://rheodata.com/data-analytics)
          - [Multi-Cloud](https://rheodata.com/multi-cloud)
          - [Oracle@Google Cloud](https://rheodata.com/oracle-google-cloud)
          - [Exadata & Oracle Database](https://rheodata.com/exadata-and-oracle-database-26ai)
- Verticals 
    - [Manufacturing](https://rheodata.com/manufacturing)
    - [Retail](https://rheodata.com/retail)
    - [State & Local](https://rheodata.com/sled)
- [Customer Stories](https://rheodata.com/customer-stories) 
    - [Altec](https://rheodata.com/customer-stories/altec-oci-goldengate-data-migration)
    - [Shoe Carnival](https://rheodata.com/customer-stories/shoe-carnival-goldengate-microservices-migration)
    - [Icon](https://rheodata.com/customer-stories/icon-transatlantic-replication)
    - [Inovalon](https://rheodata.com/customer-stories/inovalon-data-pipeline-automation)
- Resources 
    - [Blog](https://rheodata.com/en-us/blog)
    - Books 
          - [Pro Oracle GoldenGate 23ai](https://rheodata.com/pro-oracle-goldengate-23ai-for-the-dba-pdf-landing-page)
- [Contact](https://rheodata.com/contact)

[![](https://rheodata.com/hs-fs/hubfs/Imported_Blog_Media/blog-feature-Logo-Nov-26-2025-07-14-39-7226-PM.png?width=100&height=100&name=blog-feature-Logo-Nov-26-2025-07-14-39-7226-PM.png)](https://rheodata.com/)

<https://rheodata.com/en-us/blog/page/4#minimal-header__mobile-nav__mmenu>

- Who We Are 
    - [About Us](https://rheodata.com/who-we-are)
- Services 
    - Consulting 
          - [The Studio](https://rheodata.com/the-studio)
    - Accelerators 
          - [FrostCore](https://rheodata.com/frostcore)
          - [FrostAI](https://rheodata.com/frostai)
          - [RedCore](https://rheodata.com/redcore)
          - [RedAI](https://rheodata.com/redai)
          - [RedGuard](https://rheodata.com/redguard)
          - [BlueCore](https://rheodata.com/bluecore)
          - [Calypso](https://rheodata.com/calypso)
    - Services 
          - [Data Integration](https://rheodata.com/data-integration)
          - [Analytics](https://rheodata.com/data-analytics)
          - [Multi-Cloud](https://rheodata.com/multi-cloud)
          - [Oracle@Google Cloud](https://rheodata.com/oracle-google-cloud)
          - [Exadata & Oracle Database](https://rheodata.com/exadata-and-oracle-database-26ai)
- Verticals 
    - [Manufacturing](https://rheodata.com/manufacturing)
    - [Retail](https://rheodata.com/retail)
    - [State & Local](https://rheodata.com/sled)
- [Customer Stories](https://rheodata.com/customer-stories) 
    - [Altec](https://rheodata.com/customer-stories/altec-oci-goldengate-data-migration)
    - [Shoe Carnival](https://rheodata.com/customer-stories/shoe-carnival-goldengate-microservices-migration)
    - [Icon](https://rheodata.com/customer-stories/icon-transatlantic-replication)
    - [Inovalon](https://rheodata.com/customer-stories/inovalon-data-pipeline-automation)
- Resources 
    - [Blog](https://rheodata.com/en-us/blog)
    - Books 
          - [Pro Oracle GoldenGate 23ai](https://rheodata.com/pro-oracle-goldengate-23ai-for-the-dba-pdf-landing-page)
- [Contact](https://rheodata.com/contact)

# RheoData Blog

### Browse By:

Everything Cloud GoldenGate Business Insights AI 19c ai pipelines 18c 21c 12c machine learning 23ai database goldengate 21c artificial intelligence data analytics Google 23ai AI vector search aws ec2 aws ec2 compute ec2 ggs goldengate 19c install nginx 23.4 AI Vector Search analytics classic to microservices cloud-migration data mesh database migration goldengate microservices 11g 19c goldengate Azure Database Modernization Google Cloud Oracle GoldenGate autonomous database cloud management cloud services data engineering data engineers data governance heatwave 12.2.1.x 12.3.x 12c goldengate 18c goldengate 23c AI Integration Database Administration GoldenGate 23c MySQL Oracle Cloud Migration Oracle Database 26ai adminclient architecture of data pipelines automation batch processing big data data cleaning data integration data pipelines data pipelines vs ETL pipelines data science data-replication database-platforms enterprise data replication gcp hashicorp vault enterprise Agentic AI Bring Your Own License (BYOL) Oracle Cloud Database Cloud modernization strategy Docker EnterpriseDB Flask Google Cloud for Oracle workloads Legacy Oracle systems Oracle AI Vector Search Oracle Cloud Infrastructure Oracle DBA skills in the cloud Oracle GoldenGate 23ai Oracle migration assessment Oracle on GCP Snowflake Snowflake cost optimization aws azure ai studio build mysql heatwave cloud dba cloud ready cohere generate documentation data-pipeline database replication security deployment docker adminclient golden gate goldengate cloud goldengate migrations goldengate parameter files google postgresql migration ml real-time data replication 0.12upgrade 11.2.0.4 11g to 19c 11g to 21c 11g to 23c 11g to OCI 19.1.0.0.0 19.1.0.0.1 2024 5.7 5.7 to 8.0 8.0 AI Agents AI Data Platform AI Infrastructure Management AI Machine Learning AI blog writing AI business productivity AI content creation AI data infrastructure AI data management AI data platform optimization AI database administration AI database management tools AI ethics content AI governance AI inference bottlenecks AI model deployment strategies AI security AI writing tools AI-Driven-Revenue-Growth AI-Native Applications AI-ROI AI-Ready Data AI-accuracy AI-compliance AI-hallucination-prevention AI-powered database replication management API authentication AWS S3 Apache Iceberg Apache Spark data platform Atlanta database consultants Azure Data Lake Big Query BigQuery Integration Business-Intelligence-Modernization CLOB to VARCHAR Change Data Capture GoldenGate Extract Cloud Data Platform Cloud database migration Coordinated Replicat Cortex Agents Cosine distance Oracle Cross-platform data monitoring Customer-Experience-Optimization DBA burnout prevention DBA productivity DBA skills AI Data Modernization Data Pipeline Architecture Data Pipeline Management Data Streaming Data Transformation Data pipeline troubleshooting Database Security Database lag monitoring Database migration strategy Database migration vs. replication Database replication blind spots Database replication monitoring Database replication performance monitoring Databricks comparison Delta Lake integration Digital-Transformation-ROI EXTFILE EXTRAIL Edge computing AI Enterprise AI Strategy Enterprise AI scalability Enterprise cloud migration Enterprise data migration Enterprise database replication monitoring Forward Deployed Engineering GPU memory optimization GUI Gemini Enterprise GoldenGate 21c upgrade GoldenGate 23ai to 26ai GoldenGate 26ai new features GoldenGate 26ai release notes GoldenGate 26ai upgrade GoldenGate AI integration GoldenGate CDC configuration GoldenGate DAA GoldenGate Extract user permissions GoldenGate Yugabyte support GoldenGate certificate authentication GoldenGate cutover planning GoldenGate deployment automation GoldenGate granular permissions setup GoldenGate least privilege security GoldenGate lifecycle management GoldenGate migration guide GoldenGate migration sizing GoldenGate monitoring and lag management GoldenGate operational ownership GoldenGate password management GoldenGate port configuration GoldenGate replication lag detection GoldenGate response file GoldenGate trail file management GoldenGate troubleshooting solutions GoldenGate unified console GoldenGateMCP Google Cloud Platform Google Cloud Storage Google-AlloyDB HashiCorp Hybrid queries Oracle IT cost optimization IT infrastructure simplification IT leadership mental health Initial Load Inventory management data lag LLM inference optimization Large language model performance MCP Server for Oracle MCP Server, Mental Health Awareness Month tech industry Migration readiness Model Context Protocol Model inference costs OMA assessment ONNX embedding model Oracle Operating Model Oracle 23ai features Oracle 26ai features Oracle AI Data Platform Oracle AI Solutions Oracle Autonomous Database migration Oracle CPAT vs OMA comparison Oracle Database 23ai vectors Oracle Database 26ai vectors Oracle EBS migration Oracle Exadata on Google Cloud

This is a search field with an auto-suggest feature attached.

- There are no suggestions because the search field is empty.

<https://rheodata.com/en-us/blog/upgrading-oci-modules-for-terraform>

## [Upgrading OCI Modules for Terraform](https://rheodata.com/en-us/blog/upgrading-oci-modules-for-terraform)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:30:54 PM

Automation is all the rage now; yet I’ve though automation has been the key to a lot of...

[CONTINUE READING](https://rheodata.com/en-us/blog/upgrading-oci-modules-for-terraform)

<https://rheodata.com/en-us/blog/mysql-8-0-and-beyond-lifecycle-support>

## [MySQL 8.0 and beyond: Lifecycle Support](https://rheodata.com/en-us/blog/mysql-8-0-and-beyond-lifecycle-support)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:30:53 PM

MySQL has long been the number two database in the world! Initially MySQL started as one of the...

[CONTINUE READING](https://rheodata.com/en-us/blog/mysql-8-0-and-beyond-lifecycle-support)

<https://rheodata.com/en-us/blog/deploying-oracle-goldengate-21c-with-ansible>

## [Deploying Oracle GoldenGate 21c with Ansible](https://rheodata.com/en-us/blog/deploying-oracle-goldengate-21c-with-ansible)

Posted by [Fame](https://rheodata.com/en-us/blog/author/fame) | Nov 10, 2025 9:30:52 PM

Ansible has become a standard configuration tool for many enterprises and is used is many CI/CD...

[CONTINUE READING](https://rheodata.com/en-us/blog/deploying-oracle-goldengate-21c-with-ansible)

<https://rheodata.com/en-us/blog/sqlcl-connection-to-oci-dbaas>

## [SQLcl connection to OCI DBaaS](https://rheodata.com/en-us/blog/sqlcl-connection-to-oci-dbaas)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:30:51 PM

Just a quick post on how to connect Oracle SQL Developer SQLcl to an OCI database.

[CONTINUE READING](https://rheodata.com/en-us/blog/sqlcl-connection-to-oci-dbaas)

<https://rheodata.com/en-us/blog/retrieval-augmented-generation-rag-technical-guide>

## [What is Retrieval Augmentation Generation (RAG)?](https://rheodata.com/en-us/blog/retrieval-augmented-generation-rag-technical-guide)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:30:50 PM

Retrieval Augmented Generation (RAG) represents a significant advancement in natural language...

[CONTINUE READING](https://rheodata.com/en-us/blog/retrieval-augmented-generation-rag-technical-guide)

<https://rheodata.com/en-us/blog/exception_table>

## [Basic error handling with Exception Table](https://rheodata.com/en-us/blog/exception_table)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:30:50 PM

### Introduction

Exception handling is one of the basic yet advance features that Oracle GoldenGate...

[CONTINUE READING](https://rheodata.com/en-us/blog/exception_table)

<https://rheodata.com/en-us/blog/capturing-stats-by-time>

## [Capturing Stats by time](https://rheodata.com/en-us/blog/capturing-stats-by-time)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:30:49 PM

With Oracle GoldenGate there are times when you want to know the number of DML that is being pushed...

[CONTINUE READING](https://rheodata.com/en-us/blog/capturing-stats-by-time)

<https://rheodata.com/en-us/blog/harnessing-ai>

## [Harnessing the Power of AI and Machine Learning with RheoData: A Path to Success](https://rheodata.com/en-us/blog/harnessing-ai)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:30:48 PM

In the dynamic landscape of modern technology, few fields hold as much promise and potential as...

[CONTINUE READING](https://rheodata.com/en-us/blog/harnessing-ai)

<https://rheodata.com/en-us/blog/oracle-gcp-vs-cloud-sql-migration>

## [Oracle to GCP Migration: Oracle@GCP vs. Cloud SQL – The Strategic Choice That Drives Results](https://rheodata.com/en-us/blog/oracle-gcp-vs-cloud-sql-migration)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:30:47 PM

The partnership between Oracle and Google Cloud represents one of the most significant...

[CONTINUE READING](https://rheodata.com/en-us/blog/oracle-gcp-vs-cloud-sql-migration)

<https://rheodata.com/en-us/blog/access-oracle-dbcs-pluggable-database-via-bastion-connection>

## [Access Oracle DBCS Pluggable Database via Bastion Connection](https://rheodata.com/en-us/blog/access-oracle-dbcs-pluggable-database-via-bastion-connection)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:30:47 PM

What is a Bastion?

[CONTINUE READING](https://rheodata.com/en-us/blog/access-oracle-dbcs-pluggable-database-via-bastion-connection)

### Recent Posts

#### [Coordinated Replicats: Faster, Lower-Risk GoldenGate Loads](https://rheodata.com/en-us/blog/coordinated-replicats-initial-load)

Posted at Jun 26, 2026 11:08:13 AM

![Post Featured Image](https://rheodata.com/hubfs/Gemini_Generated_Image_509fjc509fjc509f.png)

#### [Forward Deployed Engineering: The Operating Model the Agentic Era Demands](https://rheodata.com/en-us/blog/forward-deployed-engineering-agentic-era)

Posted at May 30, 2026 11:46:34 AM

![Post Featured Image](https://rheodata.com/hubfs/Gemini_Generated_Image_r8vpntr8vpntr8vp.png)

#### [The Bowl Is Broken: A CEO's Note on Mental Health Month and Tech Team Burnout](https://rheodata.com/en-us/blog/tech-team-burnout-mental-health-month-2026)

Posted at May 12, 2026 7:23:33 AM

![Post Featured Image](https://rheodata.com/hubfs/IMG_2142.jpg)

### Posts by Tag

- [Cloud (88)](https://rheodata.com/en-us/blog/tag/cloud)
- [GoldenGate (73)](https://rheodata.com/en-us/blog/tag/goldengate)
- [Business Insights (51)](https://rheodata.com/en-us/blog/tag/business-insights)
- [AI (36)](https://rheodata.com/en-us/blog/tag/ai)
- [19c (22)](https://rheodata.com/en-us/blog/tag/19c)
- [ai pipelines (17)](https://rheodata.com/en-us/blog/tag/ai-pipelines)
- [18c (15)](https://rheodata.com/en-us/blog/tag/18c)
- [21c (14)](https://rheodata.com/en-us/blog/tag/21c)
- [12c (11)](https://rheodata.com/en-us/blog/tag/12c)
- [machine learning (10)](https://rheodata.com/en-us/blog/tag/machine-learning)
- [23ai (9)](https://rheodata.com/en-us/blog/tag/23ai)
- [database (9)](https://rheodata.com/en-us/blog/tag/database)
- [goldengate 21c (9)](https://rheodata.com/en-us/blog/tag/goldengate-21c)
- [artificial intelligence (8)](https://rheodata.com/en-us/blog/tag/artificial-intelligence)
- [data analytics (8)](https://rheodata.com/en-us/blog/tag/data-analytics)
- [Google (7)](https://rheodata.com/en-us/blog/tag/google)
- [23ai AI vector search (6)](https://rheodata.com/en-us/blog/tag/23ai-ai-vector-search)
- [aws ec2 (6)](https://rheodata.com/en-us/blog/tag/aws-ec2)
- [aws ec2 compute (6)](https://rheodata.com/en-us/blog/tag/aws-ec2-compute)
- [ec2 (6)](https://rheodata.com/en-us/blog/tag/ec2)
- [ggs (6)](https://rheodata.com/en-us/blog/tag/ggs)
- [goldengate 19c (6)](https://rheodata.com/en-us/blog/tag/goldengate-19c)
- [install nginx (6)](https://rheodata.com/en-us/blog/tag/install-nginx)
- [23.4 (5)](https://rheodata.com/en-us/blog/tag/23-4)
- [AI Vector Search (5)](https://rheodata.com/en-us/blog/tag/ai-vector-search)
- [analytics (5)](https://rheodata.com/en-us/blog/tag/analytics)
- [classic to microservices (5)](https://rheodata.com/en-us/blog/tag/classic-to-microservices)
- [cloud-migration (5)](https://rheodata.com/en-us/blog/tag/cloud-migration)
- [data mesh (5)](https://rheodata.com/en-us/blog/tag/data-mesh)
- [database migration (5)](https://rheodata.com/en-us/blog/tag/database-migration)
- [goldengate microservices (5)](https://rheodata.com/en-us/blog/tag/goldengate-microservices)
- [11g (4)](https://rheodata.com/en-us/blog/tag/11g)
- [19c goldengate (4)](https://rheodata.com/en-us/blog/tag/19c-goldengate)
- [Azure (4)](https://rheodata.com/en-us/blog/tag/azure)
- [Database Modernization (4)](https://rheodata.com/en-us/blog/tag/database-modernization)
- [Google Cloud (4)](https://rheodata.com/en-us/blog/tag/google-cloud)
- [Oracle GoldenGate (4)](https://rheodata.com/en-us/blog/tag/oracle-goldengate)
- [autonomous database (4)](https://rheodata.com/en-us/blog/tag/autonomous-database)
- [cloud management (4)](https://rheodata.com/en-us/blog/tag/cloud-management)
- [cloud services (4)](https://rheodata.com/en-us/blog/tag/cloud-services)
- [data engineering (4)](https://rheodata.com/en-us/blog/tag/data-engineering)
- [data engineers (4)](https://rheodata.com/en-us/blog/tag/data-engineers)
- [data governance (4)](https://rheodata.com/en-us/blog/tag/data-governance)
- [heatwave (4)](https://rheodata.com/en-us/blog/tag/heatwave)
- [12.2.1.x (3)](https://rheodata.com/en-us/blog/tag/12-2-1-x)
- [12.3.x (3)](https://rheodata.com/en-us/blog/tag/12-3-x)
- [12c goldengate (3)](https://rheodata.com/en-us/blog/tag/12c-goldengate)
- [18c goldengate (3)](https://rheodata.com/en-us/blog/tag/18c-goldengate)
- [23c (3)](https://rheodata.com/en-us/blog/tag/23c)
- [AI Integration (3)](https://rheodata.com/en-us/blog/tag/ai-integration)
- [Database Administration (3)](https://rheodata.com/en-us/blog/tag/database-administration)
- [GoldenGate 23c (3)](https://rheodata.com/en-us/blog/tag/goldengate-23c)
- [MySQL (3)](https://rheodata.com/en-us/blog/tag/mysql)
- [Oracle Cloud Migration (3)](https://rheodata.com/en-us/blog/tag/oracle-cloud-migration)
- [Oracle Database 26ai (3)](https://rheodata.com/en-us/blog/tag/oracle-database-26ai)
- [adminclient (3)](https://rheodata.com/en-us/blog/tag/adminclient)
- [architecture of data pipelines (3)](https://rheodata.com/en-us/blog/tag/architecture-of-data-pipelines)
- [automation (3)](https://rheodata.com/en-us/blog/tag/automation)
- [batch processing (3)](https://rheodata.com/en-us/blog/tag/batch-processing)
- [big data (3)](https://rheodata.com/en-us/blog/tag/big-data)
- [data cleaning (3)](https://rheodata.com/en-us/blog/tag/data-cleaning)
- [data integration (3)](https://rheodata.com/en-us/blog/tag/data-integration)
- [data pipelines (3)](https://rheodata.com/en-us/blog/tag/data-pipelines)
- [data pipelines vs ETL pipelines (3)](https://rheodata.com/en-us/blog/tag/data-pipelines-vs-etl-pipelines)
- [data science (3)](https://rheodata.com/en-us/blog/tag/data-science)
- [data-replication (3)](https://rheodata.com/en-us/blog/tag/data-replication)
- [database-platforms (3)](https://rheodata.com/en-us/blog/tag/database-platforms)
- [enterprise data replication (3)](https://rheodata.com/en-us/blog/tag/enterprise-data-replication)
- [gcp (3)](https://rheodata.com/en-us/blog/tag/gcp)
- [hashicorp vault enterprise (3)](https://rheodata.com/en-us/blog/tag/hashicorp-vault-enterprise)
- [Agentic AI (2)](https://rheodata.com/en-us/blog/tag/agentic-ai)
- [Bring Your Own License (BYOL) Oracle (2)](https://rheodata.com/en-us/blog/tag/bring-your-own-license-byol-oracle)
- [Cloud Database (2)](https://rheodata.com/en-us/blog/tag/cloud-database)
- [Cloud modernization strategy (2)](https://rheodata.com/en-us/blog/tag/cloud-modernization-strategy)
- [Docker (2)](https://rheodata.com/en-us/blog/tag/docker)
- [EnterpriseDB (2)](https://rheodata.com/en-us/blog/tag/enterprisedb)
- [Flask (2)](https://rheodata.com/en-us/blog/tag/flask)
- [Google Cloud for Oracle workloads (2)](https://rheodata.com/en-us/blog/tag/google-cloud-for-oracle-workloads)
- [Legacy Oracle systems (2)](https://rheodata.com/en-us/blog/tag/legacy-oracle-systems)
- [Oracle AI Vector Search (2)](https://rheodata.com/en-us/blog/tag/oracle-ai-vector-search)
- [Oracle Cloud Infrastructure (2)](https://rheodata.com/en-us/blog/tag/oracle-cloud-infrastructure)
- [Oracle DBA skills in the cloud (2)](https://rheodata.com/en-us/blog/tag/oracle-dba-skills-in-the-cloud)
- [Oracle GoldenGate 23ai (2)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-23ai)
- [Oracle migration assessment (2)](https://rheodata.com/en-us/blog/tag/oracle-migration-assessment)
- [Oracle on GCP (2)](https://rheodata.com/en-us/blog/tag/oracle-on-gcp)
- [Snowflake (2)](https://rheodata.com/en-us/blog/tag/snowflake)
- [Snowflake cost optimization (2)](https://rheodata.com/en-us/blog/tag/snowflake-cost-optimization)
- [aws (2)](https://rheodata.com/en-us/blog/tag/aws)
- [azure ai studio (2)](https://rheodata.com/en-us/blog/tag/azure-ai-studio)
- [build mysql heatwave (2)](https://rheodata.com/en-us/blog/tag/build-mysql-heatwave)
- [cloud dba (2)](https://rheodata.com/en-us/blog/tag/cloud-dba)
- [cloud ready (2)](https://rheodata.com/en-us/blog/tag/cloud-ready)
- [cohere generate documentation (2)](https://rheodata.com/en-us/blog/tag/cohere-generate-documentation)
- [data-pipeline (2)](https://rheodata.com/en-us/blog/tag/data-pipeline)
- [database replication security (2)](https://rheodata.com/en-us/blog/tag/database-replication-security)
- [deployment (2)](https://rheodata.com/en-us/blog/tag/deployment)
- [docker adminclient (2)](https://rheodata.com/en-us/blog/tag/docker-adminclient)
- [golden gate (2)](https://rheodata.com/en-us/blog/tag/golden-gate)
- [goldengate cloud (2)](https://rheodata.com/en-us/blog/tag/goldengate-cloud)
- [goldengate migrations (2)](https://rheodata.com/en-us/blog/tag/goldengate-migrations)
- [goldengate parameter files (2)](https://rheodata.com/en-us/blog/tag/goldengate-parameter-files)
- [google postgresql migration (2)](https://rheodata.com/en-us/blog/tag/google-postgresql-migration)
- [ml (2)](https://rheodata.com/en-us/blog/tag/ml)
- [real-time data replication (2)](https://rheodata.com/en-us/blog/tag/real-time-data-replication)
- [0.12upgrade (1)](https://rheodata.com/en-us/blog/tag/0-12upgrade)
- [11.2.0.4 (1)](https://rheodata.com/en-us/blog/tag/11-2-0-4)
- [11g to 19c (1)](https://rheodata.com/en-us/blog/tag/11g-to-19c)
- [11g to 21c (1)](https://rheodata.com/en-us/blog/tag/11g-to-21c)
- [11g to 23c (1)](https://rheodata.com/en-us/blog/tag/11g-to-23c)
- [11g to OCI (1)](https://rheodata.com/en-us/blog/tag/11g-to-oci)
- [19.1.0.0.0 (1)](https://rheodata.com/en-us/blog/tag/19-1-0-0-0)
- [19.1.0.0.1 (1)](https://rheodata.com/en-us/blog/tag/19-1-0-0-1)
- [2024 (1)](https://rheodata.com/en-us/blog/tag/2024)
- [5.7 (1)](https://rheodata.com/en-us/blog/tag/5-7)
- [5.7 to 8.0 (1)](https://rheodata.com/en-us/blog/tag/5-7-to-8-0)
- [8.0 (1)](https://rheodata.com/en-us/blog/tag/8-0)
- [AI Agents (1)](https://rheodata.com/en-us/blog/tag/ai-agents)
- [AI Data Platform (1)](https://rheodata.com/en-us/blog/tag/ai-data-platform)
- [AI Infrastructure Management (1)](https://rheodata.com/en-us/blog/tag/ai-infrastructure-management)
- [AI Machine Learning (1)](https://rheodata.com/en-us/blog/tag/ai-machine-learning)
- [AI blog writing (1)](https://rheodata.com/en-us/blog/tag/ai-blog-writing)
- [AI business productivity (1)](https://rheodata.com/en-us/blog/tag/ai-business-productivity)
- [AI content creation (1)](https://rheodata.com/en-us/blog/tag/ai-content-creation)
- [AI data infrastructure (1)](https://rheodata.com/en-us/blog/tag/ai-data-infrastructure)
- [AI data management (1)](https://rheodata.com/en-us/blog/tag/ai-data-management)
- [AI data platform optimization (1)](https://rheodata.com/en-us/blog/tag/ai-data-platform-optimization)
- [AI database administration (1)](https://rheodata.com/en-us/blog/tag/ai-database-administration)
- [AI database management tools (1)](https://rheodata.com/en-us/blog/tag/ai-database-management-tools)
- [AI ethics content (1)](https://rheodata.com/en-us/blog/tag/ai-ethics-content)
- [AI governance (1)](https://rheodata.com/en-us/blog/tag/ai-governance)
- [AI inference bottlenecks (1)](https://rheodata.com/en-us/blog/tag/ai-inference-bottlenecks)
- [AI model deployment strategies (1)](https://rheodata.com/en-us/blog/tag/ai-model-deployment-strategies)
- [AI security (1)](https://rheodata.com/en-us/blog/tag/ai-security)
- [AI writing tools (1)](https://rheodata.com/en-us/blog/tag/ai-writing-tools)
- [AI-Driven-Revenue-Growth (1)](https://rheodata.com/en-us/blog/tag/ai-driven-revenue-growth)
- [AI-Native Applications (1)](https://rheodata.com/en-us/blog/tag/ai-native-applications)
- [AI-ROI (1)](https://rheodata.com/en-us/blog/tag/ai-roi)
- [AI-Ready Data (1)](https://rheodata.com/en-us/blog/tag/ai-ready-data)
- [AI-accuracy (1)](https://rheodata.com/en-us/blog/tag/ai-accuracy)
- [AI-compliance (1)](https://rheodata.com/en-us/blog/tag/ai-compliance)
- [AI-hallucination-prevention (1)](https://rheodata.com/en-us/blog/tag/ai-hallucination-prevention)
- [AI-powered database replication management (1)](https://rheodata.com/en-us/blog/tag/ai-powered-database-replication-management)
- [API authentication (1)](https://rheodata.com/en-us/blog/tag/api-authentication)
- [AWS S3 (1)](https://rheodata.com/en-us/blog/tag/aws-s3)
- [Apache Iceberg (1)](https://rheodata.com/en-us/blog/tag/apache-iceberg)
- [Apache Spark data platform (1)](https://rheodata.com/en-us/blog/tag/apache-spark-data-platform)
- [Atlanta database consultants (1)](https://rheodata.com/en-us/blog/tag/atlanta-database-consultants)
- [Azure Data Lake (1)](https://rheodata.com/en-us/blog/tag/azure-data-lake)
- [Big Query (1)](https://rheodata.com/en-us/blog/tag/big-query)
- [BigQuery Integration (1)](https://rheodata.com/en-us/blog/tag/bigquery-integration)
- [Business-Intelligence-Modernization (1)](https://rheodata.com/en-us/blog/tag/business-intelligence-modernization)
- [CLOB to VARCHAR (1)](https://rheodata.com/en-us/blog/tag/clob-to-varchar)
- [Change Data Capture GoldenGate Extract (1)](https://rheodata.com/en-us/blog/tag/change-data-capture-goldengate-extract)
- [Cloud Data Platform (1)](https://rheodata.com/en-us/blog/tag/cloud-data-platform)
- [Cloud database migration (1)](https://rheodata.com/en-us/blog/tag/cloud-database-migration)
- [Coordinated Replicat (1)](https://rheodata.com/en-us/blog/tag/coordinated-replicat)
- [Cortex Agents (1)](https://rheodata.com/en-us/blog/tag/cortex-agents)
- [Cosine distance Oracle (1)](https://rheodata.com/en-us/blog/tag/cosine-distance-oracle)
- [Cross-platform data monitoring (1)](https://rheodata.com/en-us/blog/tag/cross-platform-data-monitoring)
- [Customer-Experience-Optimization (1)](https://rheodata.com/en-us/blog/tag/customer-experience-optimization)
- [DBA burnout prevention (1)](https://rheodata.com/en-us/blog/tag/dba-burnout-prevention)
- [DBA productivity (1)](https://rheodata.com/en-us/blog/tag/dba-productivity)
- [DBA skills AI (1)](https://rheodata.com/en-us/blog/tag/dba-skills-ai)
- [Data Modernization (1)](https://rheodata.com/en-us/blog/tag/data-modernization)
- [Data Pipeline Architecture (1)](https://rheodata.com/en-us/blog/tag/data-pipeline-architecture)
- [Data Pipeline Management (1)](https://rheodata.com/en-us/blog/tag/data-pipeline-management)
- [Data Streaming (1)](https://rheodata.com/en-us/blog/tag/data-streaming)
- [Data Transformation (1)](https://rheodata.com/en-us/blog/tag/data-transformation)
- [Data pipeline troubleshooting (1)](https://rheodata.com/en-us/blog/tag/data-pipeline-troubleshooting)
- [Database Security (1)](https://rheodata.com/en-us/blog/tag/database-security)
- [Database lag monitoring (1)](https://rheodata.com/en-us/blog/tag/database-lag-monitoring)
- [Database migration strategy (1)](https://rheodata.com/en-us/blog/tag/database-migration-strategy)
- [Database migration vs. replication (1)](https://rheodata.com/en-us/blog/tag/database-migration-vs-replication)
- [Database replication blind spots (1)](https://rheodata.com/en-us/blog/tag/database-replication-blind-spots)
- [Database replication monitoring (1)](https://rheodata.com/en-us/blog/tag/database-replication-monitoring)
- [Database replication performance monitoring (1)](https://rheodata.com/en-us/blog/tag/database-replication-performance-monitoring)
- [Databricks comparison (1)](https://rheodata.com/en-us/blog/tag/databricks-comparison)
- [Delta Lake integration (1)](https://rheodata.com/en-us/blog/tag/delta-lake-integration)
- [Digital-Transformation-ROI (1)](https://rheodata.com/en-us/blog/tag/digital-transformation-roi)
- [EXTFILE (1)](https://rheodata.com/en-us/blog/tag/extfile)
- [EXTRAIL (1)](https://rheodata.com/en-us/blog/tag/extrail)
- [Edge computing AI (1)](https://rheodata.com/en-us/blog/tag/edge-computing-ai)
- [Enterprise AI Strategy (1)](https://rheodata.com/en-us/blog/tag/enterprise-ai-strategy)
- [Enterprise AI scalability (1)](https://rheodata.com/en-us/blog/tag/enterprise-ai-scalability)
- [Enterprise cloud migration (1)](https://rheodata.com/en-us/blog/tag/enterprise-cloud-migration)
- [Enterprise data migration (1)](https://rheodata.com/en-us/blog/tag/enterprise-data-migration)
- [Enterprise database replication monitoring (1)](https://rheodata.com/en-us/blog/tag/enterprise-database-replication-monitoring)
- [Forward Deployed Engineering (1)](https://rheodata.com/en-us/blog/tag/forward-deployed-engineering)
- [GPU memory optimization (1)](https://rheodata.com/en-us/blog/tag/gpu-memory-optimization)
- [GUI (1)](https://rheodata.com/en-us/blog/tag/gui)
- [Gemini Enterprise (1)](https://rheodata.com/en-us/blog/tag/gemini-enterprise)
- [GoldenGate 21c upgrade (1)](https://rheodata.com/en-us/blog/tag/goldengate-21c-upgrade)
- [GoldenGate 23ai to 26ai (1)](https://rheodata.com/en-us/blog/tag/goldengate-23ai-to-26ai)
- [GoldenGate 26ai new features (1)](https://rheodata.com/en-us/blog/tag/goldengate-26ai-new-features)
- [GoldenGate 26ai release notes (1)](https://rheodata.com/en-us/blog/tag/goldengate-26ai-release-notes)
- [GoldenGate 26ai upgrade (1)](https://rheodata.com/en-us/blog/tag/goldengate-26ai-upgrade)
- [GoldenGate AI integration (1)](https://rheodata.com/en-us/blog/tag/goldengate-ai-integration)
- [GoldenGate CDC configuration (1)](https://rheodata.com/en-us/blog/tag/goldengate-cdc-configuration)
- [GoldenGate DAA (1)](https://rheodata.com/en-us/blog/tag/goldengate-daa)
- [GoldenGate Extract user permissions (1)](https://rheodata.com/en-us/blog/tag/goldengate-extract-user-permissions)
- [GoldenGate Yugabyte support (1)](https://rheodata.com/en-us/blog/tag/goldengate-yugabyte-support)
- [GoldenGate certificate authentication (1)](https://rheodata.com/en-us/blog/tag/goldengate-certificate-authentication)
- [GoldenGate cutover planning (1)](https://rheodata.com/en-us/blog/tag/goldengate-cutover-planning)
- [GoldenGate deployment automation (1)](https://rheodata.com/en-us/blog/tag/goldengate-deployment-automation)
- [GoldenGate granular permissions setup (1)](https://rheodata.com/en-us/blog/tag/goldengate-granular-permissions-setup)
- [GoldenGate least privilege security (1)](https://rheodata.com/en-us/blog/tag/goldengate-least-privilege-security)
- [GoldenGate lifecycle management (1)](https://rheodata.com/en-us/blog/tag/goldengate-lifecycle-management)
- [GoldenGate migration guide (1)](https://rheodata.com/en-us/blog/tag/goldengate-migration-guide)
- [GoldenGate migration sizing (1)](https://rheodata.com/en-us/blog/tag/goldengate-migration-sizing)
- [GoldenGate monitoring and lag management (1)](https://rheodata.com/en-us/blog/tag/goldengate-monitoring-and-lag-management)
- [GoldenGate operational ownership (1)](https://rheodata.com/en-us/blog/tag/goldengate-operational-ownership)
- [GoldenGate password management (1)](https://rheodata.com/en-us/blog/tag/goldengate-password-management)
- [GoldenGate port configuration (1)](https://rheodata.com/en-us/blog/tag/goldengate-port-configuration)
- [GoldenGate replication lag detection (1)](https://rheodata.com/en-us/blog/tag/goldengate-replication-lag-detection)
- [GoldenGate response file (1)](https://rheodata.com/en-us/blog/tag/goldengate-response-file)
- [GoldenGate trail file management (1)](https://rheodata.com/en-us/blog/tag/goldengate-trail-file-management)
- [GoldenGate troubleshooting solutions (1)](https://rheodata.com/en-us/blog/tag/goldengate-troubleshooting-solutions)
- [GoldenGate unified console (1)](https://rheodata.com/en-us/blog/tag/goldengate-unified-console)
- [GoldenGateMCP (1)](https://rheodata.com/en-us/blog/tag/goldengatemcp)
- [Google Cloud Platform (1)](https://rheodata.com/en-us/blog/tag/google-cloud-platform)
- [Google Cloud Storage (1)](https://rheodata.com/en-us/blog/tag/google-cloud-storage)
- [Google-AlloyDB (1)](https://rheodata.com/en-us/blog/tag/google-alloydb)
- [HashiCorp (1)](https://rheodata.com/en-us/blog/tag/hashicorp)
- [Hybrid queries Oracle (1)](https://rheodata.com/en-us/blog/tag/hybrid-queries-oracle)
- [IT cost optimization (1)](https://rheodata.com/en-us/blog/tag/it-cost-optimization)
- [IT infrastructure simplification (1)](https://rheodata.com/en-us/blog/tag/it-infrastructure-simplification)
- [IT leadership mental health (1)](https://rheodata.com/en-us/blog/tag/it-leadership-mental-health)
- [Initial Load (1)](https://rheodata.com/en-us/blog/tag/initial-load)
- [Inventory management data lag (1)](https://rheodata.com/en-us/blog/tag/inventory-management-data-lag)
- [LLM inference optimization (1)](https://rheodata.com/en-us/blog/tag/llm-inference-optimization)
- [Large language model performance (1)](https://rheodata.com/en-us/blog/tag/large-language-model-performance)
- [MCP Server for Oracle (1)](https://rheodata.com/en-us/blog/tag/mcp-server-for-oracle)
- [MCP Server, (1)](https://rheodata.com/en-us/blog/tag/mcp-server)
- [Mental Health Awareness Month tech industry (1)](https://rheodata.com/en-us/blog/tag/mental-health-awareness-month-tech-industry)
- [Migration readiness (1)](https://rheodata.com/en-us/blog/tag/migration-readiness)
- [Model Context Protocol (1)](https://rheodata.com/en-us/blog/tag/model-context-protocol)
- [Model inference costs (1)](https://rheodata.com/en-us/blog/tag/model-inference-costs)
- [OMA assessment (1)](https://rheodata.com/en-us/blog/tag/oma-assessment)
- [ONNX embedding model Oracle (1)](https://rheodata.com/en-us/blog/tag/onnx-embedding-model-oracle)
- [Operating Model (1)](https://rheodata.com/en-us/blog/tag/operating-model)
- [Oracle 23ai features (1)](https://rheodata.com/en-us/blog/tag/oracle-23ai-features)
- [Oracle 26ai features (1)](https://rheodata.com/en-us/blog/tag/oracle-26ai-features)
- [Oracle AI Data Platform (1)](https://rheodata.com/en-us/blog/tag/oracle-ai-data-platform)
- [Oracle AI Solutions (1)](https://rheodata.com/en-us/blog/tag/oracle-ai-solutions)
- [Oracle Autonomous Database migration (1)](https://rheodata.com/en-us/blog/tag/oracle-autonomous-database-migration)
- [Oracle CPAT vs OMA comparison (1)](https://rheodata.com/en-us/blog/tag/oracle-cpat-vs-oma-comparison)
- [Oracle Database 23ai vectors (1)](https://rheodata.com/en-us/blog/tag/oracle-database-23ai-vectors)
- [Oracle Database 26ai vectors (1)](https://rheodata.com/en-us/blog/tag/oracle-database-26ai-vectors)
- [Oracle EBS migration (1)](https://rheodata.com/en-us/blog/tag/oracle-ebs-migration)
- [Oracle Exadata on Google Cloud (1)](https://rheodata.com/en-us/blog/tag/oracle-exadata-on-google-cloud)
- [Oracle GoldenGate 26ai (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-26ai)
- [Oracle GoldenGate AI diagnostics (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-ai-diagnostics)
- [Oracle GoldenGate Azure (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-azure)
- [Oracle GoldenGate Management (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-management)
- [Oracle GoldenGate REST API automation (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-rest-api-automation)
- [Oracle GoldenGate SQL Server permissions (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-sql-server-permissions)
- [Oracle GoldenGate automation (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-automation)
- [Oracle GoldenGate heartbeat (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-heartbeat)
- [Oracle GoldenGate least privilege security (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-least-privilege-security)
- [Oracle GoldenGate managed services (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-managed-services)
- [Oracle GoldenGate migration strategy (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-migration-strategy)
- [Oracle GoldenGate monitoring tools (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-monitoring-tools)
- [Oracle GoldenGate replication best practices (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-replication-best-practices)
- [Oracle and Google Cloud AI (1)](https://rheodata.com/en-us/blog/tag/oracle-and-google-cloud-ai)
- [Oracle cloud cost optimization (1)](https://rheodata.com/en-us/blog/tag/oracle-cloud-cost-optimization)
- [Oracle cloud migration assessment (1)](https://rheodata.com/en-us/blog/tag/oracle-cloud-migration-assessment)
- [Oracle data replication 2026 (1)](https://rheodata.com/en-us/blog/tag/oracle-data-replication-2026)
- [Oracle data replication compliance (1)](https://rheodata.com/en-us/blog/tag/oracle-data-replication-compliance)
- [Oracle database migration to OCI (1)](https://rheodata.com/en-us/blog/tag/oracle-database-migration-to-oci)
- [Oracle replication governance (1)](https://rheodata.com/en-us/blog/tag/oracle-replication-governance)
- [Oracle replication lag diagnosis (1)](https://rheodata.com/en-us/blog/tag/oracle-replication-lag-diagnosis)
- [Oracle to cloud migration (1)](https://rheodata.com/en-us/blog/tag/oracle-to-cloud-migration)
- [Oracle vs Databricks (1)](https://rheodata.com/en-us/blog/tag/oracle-vs-databricks)
- [Oracle workload analysis (1)](https://rheodata.com/en-us/blog/tag/oracle-workload-analysis)
- [Oracle@Google Cloud (1)](https://rheodata.com/en-us/blog/tag/oraclegoogle-cloud)
- [Parallel Replicat (1)](https://rheodata.com/en-us/blog/tag/parallel-replicat)
- [Parquet (1)](https://rheodata.com/en-us/blog/tag/parquet)
- [RAG pipeline database (1)](https://rheodata.com/en-us/blog/tag/rag-pipeline-database)
- [REST API (1)](https://rheodata.com/en-us/blog/tag/rest-api)
- [Real-time AI processing (1)](https://rheodata.com/en-us/blog/tag/real-time-ai-processing)
- [SQL Server replication security best practices (1)](https://rheodata.com/en-us/blog/tag/sql-server-replication-security-best-practices)
- [Semantic search database (1)](https://rheodata.com/en-us/blog/tag/semantic-search-database)
- [Similarity search Oracle (1)](https://rheodata.com/en-us/blog/tag/similarity-search-oracle)
- [Snowflake Optima indexing (1)](https://rheodata.com/en-us/blog/tag/snowflake-optima-indexing)
- [Snowflake Search Optimization Service (1)](https://rheodata.com/en-us/blog/tag/snowflake-search-optimization-service)
- [Snowflake alternatives (1)](https://rheodata.com/en-us/blog/tag/snowflake-alternatives)
- [Snowflake automatic clustering (1)](https://rheodata.com/en-us/blog/tag/snowflake-automatic-clustering)
- [Snowflake budget monitoring (1)](https://rheodata.com/en-us/blog/tag/snowflake-budget-monitoring)
- [Snowflake cloud data warehouse performance (1)](https://rheodata.com/en-us/blog/tag/snowflake-cloud-data-warehouse-performance)
- [Snowflake cost governance (1)](https://rheodata.com/en-us/blog/tag/snowflake-cost-governance)
- [Snowflake cost management (1)](https://rheodata.com/en-us/blog/tag/snowflake-cost-management)
- [Snowflake cost reduction strategies (1)](https://rheodata.com/en-us/blog/tag/snowflake-cost-reduction-strategies)
- [Snowflake credit usage (1)](https://rheodata.com/en-us/blog/tag/snowflake-credit-usage)
- [Snowflake materialized views (1)](https://rheodata.com/en-us/blog/tag/snowflake-materialized-views)
- [Snowflake migration staffing (1)](https://rheodata.com/en-us/blog/tag/snowflake-migration-staffing)
- [Snowflake performance optimization (1)](https://rheodata.com/en-us/blog/tag/snowflake-performance-optimization)
- [Snowflake query acceleration service (1)](https://rheodata.com/en-us/blog/tag/snowflake-query-acceleration-service)
- [Snowflake query performance tuning (1)](https://rheodata.com/en-us/blog/tag/snowflake-query-performance-tuning)
- [Snowflake resource monitors (1)](https://rheodata.com/en-us/blog/tag/snowflake-resource-monitors)
- [Snowflake serverless compute costs (1)](https://rheodata.com/en-us/blog/tag/snowflake-serverless-compute-costs)
- [Snowflake spend attribution (1)](https://rheodata.com/en-us/blog/tag/snowflake-spend-attribution)
- [Snowflake warehouse optimization (1)](https://rheodata.com/en-us/blog/tag/snowflake-warehouse-optimization)
- [Snowflake warehouse right-sizing (1)](https://rheodata.com/en-us/blog/tag/snowflake-warehouse-right-sizing)
- [Token generation latency (1)](https://rheodata.com/en-us/blog/tag/token-generation-latency)
- [VECTOR datatype Oracle (1)](https://rheodata.com/en-us/blog/tag/vector-datatype-oracle)
- [VECTOR\_DISTANCE function (1)](https://rheodata.com/en-us/blog/tag/vector_distance-function)
- [Vector embeddings Oracle (1)](https://rheodata.com/en-us/blog/tag/vector-embeddings-oracle)
- [What's new GoldenGate 26ai (1)](https://rheodata.com/en-us/blog/tag/whats-new-goldengate-26ai)
- [access control (1)](https://rheodata.com/en-us/blog/tag/access-control)
- [activepass (1)](https://rheodata.com/en-us/blog/tag/activepass)
- [adb (1)](https://rheodata.com/en-us/blog/tag/adb)
- [add (1)](https://rheodata.com/en-us/blog/tag/add)
- [add credentials (1)](https://rheodata.com/en-us/blog/tag/add-credentials)
- [adminclient add credentials (1)](https://rheodata.com/en-us/blog/tag/adminclient-add-credentials)
- [administration (1)](https://rheodata.com/en-us/blog/tag/administration)
- [adw (1)](https://rheodata.com/en-us/blog/tag/adw)
- [ai failures 2024 (1)](https://rheodata.com/en-us/blog/tag/ai-failures-2024)
- [ai stratgies (1)](https://rheodata.com/en-us/blog/tag/ai-stratgies)
- [ai-architecture (1)](https://rheodata.com/en-us/blog/tag/ai-architecture)
- [all or nothing (1)](https://rheodata.com/en-us/blog/tag/all-or-nothing)
- [allowPublicKeyRetrieval (1)](https://rheodata.com/en-us/blog/tag/allowpublickeyretrieval)
- [alloydb (1)](https://rheodata.com/en-us/blog/tag/alloydb)
- [alter extract 21c (1)](https://rheodata.com/en-us/blog/tag/alter-extract-21c)
- [amazon (1)](https://rheodata.com/en-us/blog/tag/amazon)
- [ansible (1)](https://rheodata.com/en-us/blog/tag/ansible)
- [approximate-nearest-neighbor (1)](https://rheodata.com/en-us/blog/tag/approximate-nearest-neighbor)
- [automl (1)](https://rheodata.com/en-us/blog/tag/automl)
- [azure-cloud (1)](https://rheodata.com/en-us/blog/tag/azure-cloud)
- [azure-native (1)](https://rheodata.com/en-us/blog/tag/azure-native)
- [bastion (1)](https://rheodata.com/en-us/blog/tag/bastion)
- [bastion host configuartion (1)](https://rheodata.com/en-us/blog/tag/bastion-host-configuartion)
- [bastion setup oracle (1)](https://rheodata.com/en-us/blog/tag/bastion-setup-oracle)
- [bug 30193036 (1)](https://rheodata.com/en-us/blog/tag/bug-30193036)
- [bugs (1)](https://rheodata.com/en-us/blog/tag/bugs)
- [build a compute node in oci (1)](https://rheodata.com/en-us/blog/tag/build-a-compute-node-in-oci)
- [business-continuity (1)](https://rheodata.com/en-us/blog/tag/business-continuity)
- [certificate-based authentication (1)](https://rheodata.com/en-us/blog/tag/certificate-based-authentication)
- [change data capture (1)](https://rheodata.com/en-us/blog/tag/change-data-capture)
- [changing ssh keys (1)](https://rheodata.com/en-us/blog/tag/changing-ssh-keys)
- [channels (1)](https://rheodata.com/en-us/blog/tag/channels)
- [cloud cost control (1)](https://rheodata.com/en-us/blog/tag/cloud-cost-control)
- [cloud data platform cost control (1)](https://rheodata.com/en-us/blog/tag/cloud-data-platform-cost-control)
- [cloud migration readiness assessment (1)](https://rheodata.com/en-us/blog/tag/cloud-migration-readiness-assessment)
- [cloud-database-setup (1)](https://rheodata.com/en-us/blog/tag/cloud-database-setup)
- [cloud-sql-migration (1)](https://rheodata.com/en-us/blog/tag/cloud-sql-migration)
- [cloud-strategy (1)](https://rheodata.com/en-us/blog/tag/cloud-strategy)
- [cohere command (1)](https://rheodata.com/en-us/blog/tag/cohere-command)
- [compute (1)](https://rheodata.com/en-us/blog/tag/compute)
- [compute portability (1)](https://rheodata.com/en-us/blog/tag/compute-portability)
- [compute-instance (1)](https://rheodata.com/en-us/blog/tag/compute-instance)
- [connect to database via bastion host (1)](https://rheodata.com/en-us/blog/tag/connect-to-database-via-bastion-host)
- [connect to database via bastion host oci (1)](https://rheodata.com/en-us/blog/tag/connect-to-database-via-bastion-host-oci)
- [consultants (1)](https://rheodata.com/en-us/blog/tag/consultants)
- [content strategy (1)](https://rheodata.com/en-us/blog/tag/content-strategy)
- [cost-optimization (1)](https://rheodata.com/en-us/blog/tag/cost-optimization)
- [cryptographic authentication (1)](https://rheodata.com/en-us/blog/tag/cryptographic-authentication)
- [curl (1)](https://rheodata.com/en-us/blog/tag/curl)
- [daemon (1)](https://rheodata.com/en-us/blog/tag/daemon)
- [data encryption (1)](https://rheodata.com/en-us/blog/tag/data-encryption)
- [data fabric (1)](https://rheodata.com/en-us/blog/tag/data-fabric)
- [data governance framework (1)](https://rheodata.com/en-us/blog/tag/data-governance-framework)
- [data lake architecture (1)](https://rheodata.com/en-us/blog/tag/data-lake-architecture)
- [data lakehouse platform (1)](https://rheodata.com/en-us/blog/tag/data-lakehouse-platform)
- [data pipeline security (1)](https://rheodata.com/en-us/blog/tag/data-pipeline-security)
- [data platform selection (1)](https://rheodata.com/en-us/blog/tag/data-platform-selection)
- [data team workload management (1)](https://rheodata.com/en-us/blog/tag/data-team-workload-management)
- [database AI transformation (1)](https://rheodata.com/en-us/blog/tag/database-ai-transformation)
- [database administrators (1)](https://rheodata.com/en-us/blog/tag/database-administrators)
- [database capacity planning tools (1)](https://rheodata.com/en-us/blog/tag/database-capacity-planning-tools)
- [database certificate authentication (1)](https://rheodata.com/en-us/blog/tag/database-certificate-authentication)
- [database compliance audit replication (1)](https://rheodata.com/en-us/blog/tag/database-compliance-audit-replication)
- [database consolidation strategy (1)](https://rheodata.com/en-us/blog/tag/database-consolidation-strategy)
- [database credential management (1)](https://rheodata.com/en-us/blog/tag/database-credential-management)
- [database migration planning tools (1)](https://rheodata.com/en-us/blog/tag/database-migration-planning-tools)
- [database modernization AI (1)](https://rheodata.com/en-us/blog/tag/database-modernization-ai)
- [database replication management (1)](https://rheodata.com/en-us/blog/tag/database-replication-management)
- [database transformation consulting (1)](https://rheodata.com/en-us/blog/tag/database-transformation-consulting)
- [database-failover (1)](https://rheodata.com/en-us/blog/tag/database-failover)
- [database-vectors (1)](https://rheodata.com/en-us/blog/tag/database-vectors)
- [db\_owner risk SQL Server replication (1)](https://rheodata.com/en-us/blog/tag/db_owner-risk-sql-server-replication)
- [dba\_capture (1)](https://rheodata.com/en-us/blog/tag/dba_capture)
- [dba\_queues (1)](https://rheodata.com/en-us/blog/tag/dba_queues)
- [dbms\_aqadm.drop\_queue\_table (1)](https://rheodata.com/en-us/blog/tag/dbms_aqadm-drop_queue_table)
- [dbms\_comparison (1)](https://rheodata.com/en-us/blog/tag/dbms_comparison)
- [ddl (1)](https://rheodata.com/en-us/blog/tag/ddl)
- [direct initial load (1)](https://rheodata.com/en-us/blog/tag/direct-initial-load)
- [dml (1)](https://rheodata.com/en-us/blog/tag/dml)
- [docker goldengate (1)](https://rheodata.com/en-us/blog/tag/docker-goldengate)
- [docker images (1)](https://rheodata.com/en-us/blog/tag/docker-images)
- [dynamic (1)](https://rheodata.com/en-us/blog/tag/dynamic)
- [edb database (1)](https://rheodata.com/en-us/blog/tag/edb-database)
- [elephant database (1)](https://rheodata.com/en-us/blog/tag/elephant-database)
- [eliminate database password authentication (1)](https://rheodata.com/en-us/blog/tag/eliminate-database-password-authentication)
- [emd360 (1)](https://rheodata.com/en-us/blog/tag/emd360)
- [enable ddl (1)](https://rheodata.com/en-us/blog/tag/enable-ddl)
- [enterprise (1)](https://rheodata.com/en-us/blog/tag/enterprise)
- [enterprise AI (1)](https://rheodata.com/en-us/blog/tag/enterprise-ai)
- [enterprise AI implementation (1)](https://rheodata.com/en-us/blog/tag/enterprise-ai-implementation)
- [enterprise AI infrastructure (1)](https://rheodata.com/en-us/blog/tag/enterprise-ai-infrastructure)
- [enterprise data governance (1)](https://rheodata.com/en-us/blog/tag/enterprise-data-governance)
- [enterprise data integration (1)](https://rheodata.com/en-us/blog/tag/enterprise-data-integration)
- [enterprise data strategy (1)](https://rheodata.com/en-us/blog/tag/enterprise-data-strategy)
- [enterprise goldengate backup solution (1)](https://rheodata.com/en-us/blog/tag/enterprise-goldengate-backup-solution)
- [enterprise manager (1)](https://rheodata.com/en-us/blog/tag/enterprise-manager)
- [exception handling (1)](https://rheodata.com/en-us/blog/tag/exception-handling)
- [experts in oracle goldengate (1)](https://rheodata.com/en-us/blog/tag/experts-in-oracle-goldengate)
- [extract changes (1)](https://rheodata.com/en-us/blog/tag/extract-changes)
- [extract load transform (1)](https://rheodata.com/en-us/blog/tag/extract-load-transform)
- [extract transform load (1)](https://rheodata.com/en-us/blog/tag/extract-transform-load)
- [failures (1)](https://rheodata.com/en-us/blog/tag/failures)
- [fintech postgreSQL (1)](https://rheodata.com/en-us/blog/tag/fintech-postgresql)
- [firewalld goldengate (1)](https://rheodata.com/en-us/blog/tag/firewalld-goldengate)
- [firewalld microservices (1)](https://rheodata.com/en-us/blog/tag/firewalld-microservices)
- [fivetran (1)](https://rheodata.com/en-us/blog/tag/fivetran)
- [framework (1)](https://rheodata.com/en-us/blog/tag/framework)
- [frameworks (1)](https://rheodata.com/en-us/blog/tag/frameworks)
- [free tools (1)](https://rheodata.com/en-us/blog/tag/free-tools)
- [fresh data (1)](https://rheodata.com/en-us/blog/tag/fresh-data)
- [gemini (1)](https://rheodata.com/en-us/blog/tag/gemini)
- [genai (1)](https://rheodata.com/en-us/blog/tag/genai)
- [general information (1)](https://rheodata.com/en-us/blog/tag/general-information)
- [ggsci (1)](https://rheodata.com/en-us/blog/tag/ggsci)
- [ggsmon (1)](https://rheodata.com/en-us/blog/tag/ggsmon)
- [goldengate active passive (1)](https://rheodata.com/en-us/blog/tag/goldengate-active-passive)
- [goldengate backup automation (1)](https://rheodata.com/en-us/blog/tag/goldengate-backup-automation)
- [goldengate bug (1)](https://rheodata.com/en-us/blog/tag/goldengate-bug)
- [goldengate errors (1)](https://rheodata.com/en-us/blog/tag/goldengate-errors)
- [goldengate experts (1)](https://rheodata.com/en-us/blog/tag/goldengate-experts)
- [goldengate free (1)](https://rheodata.com/en-us/blog/tag/goldengate-free)
- [goldengate github integration (1)](https://rheodata.com/en-us/blog/tag/goldengate-github-integration)
- [goldengate high availiability (1)](https://rheodata.com/en-us/blog/tag/goldengate-high-availiability)
- [goldengate maa (1)](https://rheodata.com/en-us/blog/tag/goldengate-maa)
- [goldengate microservices port (1)](https://rheodata.com/en-us/blog/tag/goldengate-microservices-port)
- [goldengate microservices ports (1)](https://rheodata.com/en-us/blog/tag/goldengate-microservices-ports)
- [goldengate ogg-02028 (1)](https://rheodata.com/en-us/blog/tag/goldengate-ogg-02028)
- [goldengate parameter file backup (1)](https://rheodata.com/en-us/blog/tag/goldengate-parameter-file-backup)
- [google cloudsql (1)](https://rheodata.com/en-us/blog/tag/google-cloudsql)
- [google mysql migration (1)](https://rheodata.com/en-us/blog/tag/google-mysql-migration)
- [heatwave experts (1)](https://rheodata.com/en-us/blog/tag/heatwave-experts)
- [high performance mysql (1)](https://rheodata.com/en-us/blog/tag/high-performance-mysql)
- [human creativity AI (1)](https://rheodata.com/en-us/blog/tag/human-creativity-ai)
- [human vs AI writing (1)](https://rheodata.com/en-us/blog/tag/human-vs-ai-writing)
- [hybrid cloud data architecture (1)](https://rheodata.com/en-us/blog/tag/hybrid-cloud-data-architecture)
- [integrated extract oracle (1)](https://rheodata.com/en-us/blog/tag/integrated-extract-oracle)
- [integrated replicat oracle (1)](https://rheodata.com/en-us/blog/tag/integrated-replicat-oracle)
- [lic (1)](https://rheodata.com/en-us/blog/tag/lic)
- [license (1)](https://rheodata.com/en-us/blog/tag/license)
- [logmnr\_session$ (1)](https://rheodata.com/en-us/blog/tag/logmnr_session)
- [managed service provider (1)](https://rheodata.com/en-us/blog/tag/managed-service-provider)
- [managed services for database teams (1)](https://rheodata.com/en-us/blog/tag/managed-services-for-database-teams)
- [management (1)](https://rheodata.com/en-us/blog/tag/management)
- [migration compatibility validation (1)](https://rheodata.com/en-us/blog/tag/migration-compatibility-validation)
- [monitor oracle goldengate rest api (1)](https://rheodata.com/en-us/blog/tag/monitor-oracle-goldengate-rest-api)
- [monolithic database architecture (1)](https://rheodata.com/en-us/blog/tag/monolithic-database-architecture)
- [move off of oracle (1)](https://rheodata.com/en-us/blog/tag/move-off-of-oracle)
- [multi-cloud data platform (1)](https://rheodata.com/en-us/blog/tag/multi-cloud-data-platform)
- [oci bastion (1)](https://rheodata.com/en-us/blog/tag/oci-bastion)
- [oem emd360 (1)](https://rheodata.com/en-us/blog/tag/oem-emd360)
- [ogg deployments (1)](https://rheodata.com/en-us/blog/tag/ogg-deployments)
- [open table format (1)](https://rheodata.com/en-us/blog/tag/open-table-format)
- [oracle database (1)](https://rheodata.com/en-us/blog/tag/oracle-database)
- [preventing tech employee attrition (1)](https://rheodata.com/en-us/blog/tag/preventing-tech-employee-attrition)
- [reducing on-call burnout (1)](https://rheodata.com/en-us/blog/tag/reducing-on-call-burnout)
- [securing Oracle GoldenGate on SQL Server (1)](https://rheodata.com/en-us/blog/tag/securing-oracle-goldengate-on-sql-server)
- [tech team burnout (1)](https://rheodata.com/en-us/blog/tag/tech-team-burnout)
- [thought leadership (1)](https://rheodata.com/en-us/blog/tag/thought-leadership)
- [vector database consolidation (1)](https://rheodata.com/en-us/blog/tag/vector-database-consolidation)

See all

- <https://rheodata.com/en-us/blog/page/3>
- [2](https://rheodata.com/en-us/blog/page/2)
- [3](https://rheodata.com/en-us/blog/page/3)
- [4](https://rheodata.com/en-us/blog/page/4)
- [5](https://rheodata.com/en-us/blog/page/5)
- [6](https://rheodata.com/en-us/blog/page/6)
- <https://rheodata.com/en-us/blog/page/5>

##### About RheoData

 RheoData is based out of Metro Atlanta, GA and provide expert Oracle, Microsoft, Google, and Snowflake services.  Let us  know how we can help!

##### Links

- [About Us](https://rheodata.com/who-we-are)
- [FrostCore](https://rheodata.com/frostcore)
- [RedCore](https://rheodata.com/redcore)
- [BlueCore](https://rheodata.com/bluecore)

##### Contact us

[hello@rheodata.com](mailto:hello@rheodata.com)

©RheoData2026. All Rights Reserved.

```json
{
  "@context" : "https://schema.org",
  "@type" : "Organization",
  "address" : {
    "@type" : "PostalAddress",
    "addressCountry" : "US",
    "addressRegion" : "GA"
  },
  "description" : "Elite specialist partner for Oracle, Snowflake, BigQuery, and AI-ready data platforms.",
  "email" : "hello@rheodata.com",
  "foundingDate" : "2020",
  "logo" : "https://rheodata.com/hubfs/RheoData%20-%20Logo%20-%20transparent-1.png",
  "name" : "RheoData",
  "sameAs" : [ "https://www.linkedin.com/company/rheodata" ],
  "url" : "https://rheodata.com"
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "WebSite",
  "name" : "RheoData",
  "potentialAction" : {
    "@type" : "SearchAction",
    "query-input" : "required name=search_term_string",
    "target" : "https://rheodata.com/search?q={search_term_string}"
  },
  "url" : "https://rheodata.com"
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "",
    "url" : ""
  },
  "dateModified" : "2026-04-17T17:31:04+0000",
  "datePublished" : "2025-10-30T17:41:53+0000",
  "description" : "RheoData Blog Posts (4)",
  "headline" : "&lt;span id=&quot;hs_cos_wrapper_name&quot; class=&quot;hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text&quot; style=&quot;&quot; data-hs-cos-general-type=&quot;meta_field&quot; data-hs-cos-type=&quot;text&quot; &gt;rheodata_blog listing page&lt;/span&gt;",
  "image" : "",
  "mainEntityOfPage" : {
    "@id" : "https://rheodata.com/en-us/blog/page/4",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://rheodata.com/hubfs/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "Automation is all the rage now; yet I’ve though automation has been the key to a lot of improvements over the years. Part of any automation process is to make the process simple to use and repeatable. When you start looking at cloud platforms the first thing that sticks out to you is all the resources that are available to you. When you start looking at these cloud resources you can very quickly become overwhelmed with all the possibilities for building as well as maintenance. How do you improve and solve these concerns? With the rise of concepts like CI/CD, the staff over at HashiCorp have written a lot of tools that complement the these cloud platforms and allow for continuous automation of the platform while making process human-readable. The tool in question here is Terraform. Terraform provides a lot of great providers that can be use for a lot of cloud platforms. Additionally Terraform can be extended to use modules. Modules are just code blocks that were built to do a defined process and simplify the complexity of the cloud deployment models. As good as modules are they should be used when needed and sparingly. In this blog post, we’re going to cover how to upgrade an existing Oracle Cloud Infrastructure (OCI) module from an earlier version to the 0.12 format for Terraform. Pulling Modules Publicly accessible modules can be found and listed out on the Terraform Registry. By doing a simple search for Oracle, you are listed with all the public modules for OCI. Once the module that is needed is found, click on it and it will take you to a page with more details about the module. On this page there are a few things to pay attention to; version and provision instructions. The version will pull that version of the module and the provision instructions will provide a block of code that can be copied and used within your Terraform file (typically main.tf). Lastly, pay attention to the “inputs” required. Inputs are what is needed to make sure the module has all the required information to build the underlying structures. After identifying the information needed for the module and including the module code block into the terraform file, the module will be pulled when running terraform init. When the module is pulled it will be placed in the .terraform directory. Example of this pull is listed below: Bobbys-MacBook-Pro:OCI bocurtis$ terraform init Initializing modules… Downloading oracle-terraform-modules/compute-instance/oci 2.0.1 for compute-instance… – compute-instance in .terraform/modules/compute-instance/terraform-oci-compute-instance-2.0.1 Initializing the backend… Initializing provider plugins… Terraform has been successfully initialized! You may now begin working with Terraform. Try running “terraform plan” to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary. Bobbys-MacBook-Pro:OCI bocurtis$ At this point, the module is ready to run and can be used to build the resource in the cloud. Running Module (current state) After pulling the module for OCI and attempting to run terraform plan, you may be met with a slew of errors. These errors are mostly related to syntax issues with the module. All of the Oracle provided modules for OCI are written for Terraform 0.11. What this means is that Terraform 0.12 will throw errors. Bobbys-MacBook-Pro:OCI bocurtis$ terraform plan Refreshing Terraform state in-memory prior to plan… The refreshed state will be used to calculate this plan, but will not be persisted to local or remote state storage. module.identity.data.oci_identity_api_keys.test_api_keys: Refreshing state… module.compute-instance.data.oci_core_subnet.this[0]: Refreshing state… Warning: Interpolation-only expressions are deprecated on .terraform/modules/compute-instance/terraform-oci-compute-instance-2.0.1/main.tf line 15, in resource “oci_core_instance” “this”: 15: count = “${var.instance_count}” Terraform 0.11 and earlier required all non-constant expressions to be provided via interpolation syntax, but this pattern is now deprecated. To silence this warning, remove the “${ sequence from the start and the }” sequence from the end of this expression, leaving just the inner expression. Template interpolation syntax is still used to construct strings from expressions when the template includes multiple interpolation sequences or a mixture of literal strings and interpolations. This deprecation applies only to templates that consist entirely of a single interpolation sequence. (and 27 more similar warnings elsewhere) Warning: Quoted type constraints are deprecated on .terraform/modules/compute-instance/terraform-oci-compute-instance-2.0.1/variables.tf line 54, in variable “private_ips”: 54: type = “list” Terraform 0.11 and earlier required type constraints to be given in quotes, but that form is now deprecated and will be removed in a future version of Terraform. To silence this warning, remove the quotes around “list” and write list(string) instead to explicitly indicate that the list elements are strings. (and one more similar warning elsewhere) Error: Error in function call on .terraform/modules/compute-instance/terraform-oci-compute-instance-2.0.1/main.tf line 34, in resource “oci_core_instance” “this”: 34: ssh_authorized_keys = “${file(“${var.ssh_authorized_keys}”)}” |—————- | var.ssh_authorized_keys is “” Call to function “file” failed: failed to read .. Bobbys-MacBook-Pro:OCI bocurtis$ If you read the error messages, you’ll notice that the errors being received are due to the module being written based on Terraform 0.11. How do you fix these errors? Upgrade Module Due to the syntax changes between Terraform 0.11 and 0.12, HashiCorp provided a utility to upgrade terraform files from 0.11 to 0.12. This utility is names 0.12upgrade and it ran by running terraform 0.12upgrade . The utility will rewrite the files in the current working directory in to the 0.12 format. If you need more information on how to use this utility, check out terraform 0.12upgrade -help. To perform the upgrade on the OCI module that was downloaded with the terraform init process, the command looks like this: $ cd /oracle/OCI/ $ terraform 0.12upgrade .terraform/modules/compute-instance/terraform-oci-compute-instance-2.0.1 After running this command, navigate to the sub-directory for the module and verify that it is written in 0.12 format (versions.tf). There may still need to be small things that need to be edited before running your Terraform code, but this eases the development time and enables the use of existing modules that are publicly available. Summary Terraform uses the concepts of modules to enable users to build faster for the cloud provider of their choice. With the use of a public Terraform Registery, many companies and users can product modules for end-user consumption. The downside to this is that they modules have to be maintained and updated on a regular bases. For the short term, HashiCorp has solved this by providing a way for end-users to quickly upgrade the modules to 0.12 format due to changes made within the HCL. Overall, by upgrading the modules to 0.12, users can quickly build their environments using the same code with minor changes.",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "Upgrading OCI Modules for Terraform",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/oci_terraform_registery-2.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/upgrading-oci-modules-for-terraform",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "MySQL has long been the number two database in the world! Initially MySQL started as one of the first open source databases that the world used as an alternative to Oracle and Microsoft’s SQL Server, so much so that sometime in 2009 Oracle purchased the Sun Microsystems which was the parent company for MySQL. Throughout the years, MySQL has been a side play for the Oracle sales teams and many organizations overlooked MySQL; until recently. Back in 2018, Oracle announces the latest revision of MySQL with the release of MySQL 8.0. Since that time, Oracle and the MySQL team has made constant improvments to MySQL through incremental released. Recently, the MySQL team has release 8.0.33. Although this post is not intended to be a feature release, knowing that the MySQL team at Oracle is consistantly improving on MySQL is huge. With the consistent improvements to MySQL, Oracle has started to release its support lifecycle for this product. The long term release of MySQL 8.0 (8.0.33), there is a few dates that need to be kept in mind: Premier Support (PS) ends on 01 April 2025 Extended Support (ES) ends on 01 April 2026 Sustaining Support (SS) will not be available after 01 April 2026 These dates can be seen in the chart below as well. All this becomes important due to the fact that many organizations who are running MySQL are either running the MySQL 5.7 Community Edition or MySQL 5.7 Enterprise Edition. Both of which will be ending Extended Support in October of 2023, leaving companies with a decision on where to go next with their MySQL implementation. Where we can help? RheoData are the experts in helping organizations move mission critical database workloads between versions of MySQL Database. Wether your organization is considering moving on-premises to on-premises or looking to do a lift-n-shift to the cloud, maintaining operational readiness is the key to a successfully migration! RheoData experts can help you evaluate, plan, and implement a data integration/migration strategy to successfully build for the future! Get in touch today to build your migration strategy! —&gt; sales@rheodata.com",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "MySQL 8.0 and beyond: Lifecycle Support",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/mysql_database_lifecycle_support-1.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/mysql-8-0-and-beyond-lifecycle-support",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "Ansible has become a standard configuration tool for many enterprises and is used is many CI/CD pipelines to build standard implementations with the organizations. Ansible is a very powerful tool that leveraged secure shell (ssh) to make connect to target hosts and push to the modules needed to build the platform. Like any tool, Ansible is very flexible and lends itself to the usage of the user. Software packages like Oracle Database and Oracle GoldenGate can be baked into playbooks providing a standard installation process. With the latest release of Oracle GoldenGate 21c, RheoData has built a standard template that allows its consultants to quickly build Oracle GoldenGate 21c into any environment. This blog post, we will look at the playbook and see how Oracle GoldenGate 21c is installed on a Linux host. Variable File The first thing that has to be defined is the variables that are going to be used within playbook. There are different ways of defining variables, but for simplify we used the sub-folder structure (defaults) which house the file main.yml. Within this main.yml file, all variables needed are defined. Below is the current consturct of our variables file: stage_dir: /opt/software/ stage_ogg: /opt/software/ogg19cma oracle_base: /opt/app/oracle oracle_inventory: /opt/app/oraInventory oracle_home_client: /opt/app/oracle/product/client ogg_home: /opt/app/oracle/product/19.1.0/oggcore_21c ogg_deployment_home: /opt/app/oracle/gg_deployment ora_group: oinstall oracle_user: oracle root_user: root ggsoft19c_rsp: oggcore_21c.rsp installation: Oracle GoldenGate zip_files: /Users/bocurtis/Build_Software/zip_files/ response_files: /Users/bocurtis/Build_Software/response_files/ script_files: /Users/bocurtis/Build_Software/scripts/ oracle_client_lite_19c: instantclient-basiclite-linux.x64-19.5.0.0.0dbru.zip oracle_client_lite_18c: instantclient-basiclite-linux.x64-18.5.0.0.0dbru.zip oracle_client_12c: instantclient-basic-linux.x64-12.2.0.1.0.zip gg_services_software: 213000_fbo_ggs_Linux_x64_services_shiphome.zip set_passwords: set_passwd.sh self_sign: ggSelfSignCerts.py nginx_setup: configureNginx.sh sm_start: startServiceManager.sh sm_stop: stopServiceManager.sh As you review the list of variables that are needed for installing Oracle GoldenGate 21c (above), notice that some of these variables reference scripts that can be used to make managing Oracle GoldenGate 21c a bit easier. These scripts do not come with Oracle GoldenGate 21c. Tasks With the variables defined, the next thing to do is define the tasks that must be done in order to install Oracle GoldenGate 21c. Just like the variables file, the tasks are provided in a sub-folder structure (tasks). Within this folder, we only needed another main.yml file, but for step purposes we broke the tasks down further. With the current tasks, we have a main.yml, copy.yml, and install.yml. These three file cover all the steps needed to install Oracle GoldenGate 21c within a single host. Lets take a look at these now: main.yml The main.yml file for Tasks, is the main file that will drive all of the installation. This file uses all variables that was defined earlier. --- - name: Display Pre-Install Message remote_user:  become: yes debug: msg: - ' Installation started at :' - name: Update RPM Packages remote_user:  become: yes yum: name: * state: latest - name: Install Oracle Pre-Requistes remote_user:  become: yes yum: name: oracle-database-preinstall-19c state: latest - name: Create required directories remote_user:  become: yes file: path={{item}} state=directory owner= group= mode=0755 with_items: -  -  -  -  -  -  -  -  tags: - ogg19c_directories - name: tasks/copy.yaml instead of 'main' import_role: name: gg19cSetup tasks_from: copy - name: tasks/install.yaml instead of 'main' import_role: name: gg19cSetup tasks_from: install - name: Display Post-Install Message remote_user:  become: yes debug: msg: - ' Installation finished at :' ... copy.yml The copy task is called from the main.yml file and used to copy the needed binaries and files to the target host. At the same time set the permissions needed on these files. --- - name: Coping required files remote_user:  become: yes copy: src: {{item}} dest:  owner:  group:  mode: 0555 with_items: -  -  -  -  -  -  -  -  -  -  ... install.yml The install task is called from the main.yml file and begins to perform the install Oracle GoldenGate 21c. The task does everything from unzipping the Oracle Client libraries and Oracle GoldenGate 21c, through configuring the .bashrc environment. --- - name: Unzipping/Installing Oracle Database Client 19c remote_user:  become: yes become_user:  unarchive: src:  dest:  extra_opts: - --j remote_src: true - name: Unzipping/Installing Oracle Database Client 18c remote_user:  become: yes become_user:  unarchive: src:  dest:  extra_opts: - --j remote_src: true - name: Unzipping Oracle GoldenGate 21c remote_user:  become: yes become_user:  unarchive: src:  dest:  remote_src: true - name: Installing Oracle GoldenGate 21c for Oracle Database 21c remote_user:  become: yes become_user:  shell: cmd: /fbo_ggs_Linux_x64_services_shiphome/Disk1/runInstaller -silent -showProgress -ignoreSysPrereqs -waitForCompletion -responseFile &gt;&gt; /tmp/ggInstall.log ignore_errors: true - name: Running root script remote_user:  become: yes shell: cmd: /opt/app/oraInventory/orainstRoot.sh &gt;&gt; /tmp/ggInstall.log - name: Setting Passwords remote_user:  become: yes shell: cmd:  - name: Setting .bashrc remote_user:  become: yes blockinfile: dest: /home/oracle/.bashrc block: | export OGG_HOME= export ORACLE_HOME= export ORACLE_BASE= export LD_LIBRARY_PATH=/lib export PATH=$OGG_HOME/bin:$LD_LIBRARY_PATH:$PATH insertbefore: BOF create: yes backup: no ... Once the playbook is done, a fully functioning Oracle GoldenGate 21 environment is installed and ready to use. Aft this point, other Oracle GoldenGate 21c components can be created using either the command line (AdminClient), the HTML pages, or REST api. Summary Through this post, we were showing you how you can use Ansible to install Oracle GoldenGate 21c. Using this process, Oracle GoldenGate 21c can be installed on any platform in an automated fashion.",
  "author" : {
    "@type" : "Person",
    "name" : "Fame",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/fame"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "Deploying Oracle GoldenGate 21c with Ansible",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/blog-feature-Logo-Oct-31-2025-04-57-26-6962-PM.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/deploying-oracle-goldengate-21c-with-ansible",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "Just a quick post on how to connect Oracle SQL Developer SQLcl to an OCI database. With shifting our development environment from localized development machines (laptops, etc.) to Oracle Cloud (OCI), one of the tasks that needed to be done is understanding how to connect to our development database. We build our development database as an DBaaS instance within OCI. With doing this, it required a bit more of security to get items connected. The pre-requisites needed were: Connection details for DBaaS Instance Private SSH key SQLcl Connection Details for DBaaS Instance: Before trying to make a connection to the Oracle Database that is running in OCI, we needed to identify the connection string that we wanted to use. This information can be found under the DB System Details, by clicking the button called DB Connection. At that point, a Database Connection screen opens up from the right. From here, you can copy the connection string of choice; either the Easy Connect or the Long version (TNS Names layout). These connection strings will be used on within SQLcl in a bit. Private SSH Key: When building the OCI DBaaS instance, you are asked for a public SSH key to use. This allows anyone who has the private key to access the host that the database is running on. When attempting to make a connection via SQLcl, this private key will be need to establish an SSH Tunnel. We typically keep our private keys located in the .ssh folder under the current user directory. For this example, that would be in /Users/bocurtis/.ssh. Just confirm that the private key exists. SQLcl: As you pulled together the items needed to make a connection to the OCI DBaaS instance, you may have noticed that the third item is to ensure that you have SQLcl installed. Although this post is not covering how to install SQLcl, you can find those details here. What the focus is however, is how to make the connection from SQLcl into the OCI DBaaS instance. In order to do this, the two items mentioned earlier are needed. Let’s take a look at how to make the connection now. This will be explained in a series of steps: 1. Login to the SQLcl from a terminal window $ cd /Application/sqlcl/bin $ ./sql /nolog This will open SQLcl command prompt and allow you to enter commands. 2. Establish an SSH Tunnel to OCI SQL&gt; sshtunnel opc@:22  -i /Users/bocurtis/.ssh/id_rsa -L 1521::1521 The SSHTUNNEL command will establish a secure tunnel to the OCI instance and open the needed ports for the connection to happen. 3. Connect to the Oracle Database (with a small change) SQL&gt; conn sys/@:1521/ as sysdba What you will notice here, is that the connection string that is identified in the Database Connection details is slightly different. This is due to DNS translation and easier if you just use the IP address. Meaning that the connection string needs to be updated when making the connection. Once connected to the OCI DBaaS instance, it can be tested very quickly by running any type of SQL command needed. In our case, we are just checking a table in the GGATE schema. SQL&gt; desc ggate.rd$hist_stats; Name Null? Type ____________________ ___________ _______________ RD$SRC_TABLE_NAME NOT NULL VARCHAR2(50) RD$OP_DATE NOT NULL TIMESTAMP(6) RD$GG_PROCESS VARCHAR2(10) RD$GG_LAG_SEC VARCHAR2(15) RD$INSERTS NUMBER RD$UPDATES NUMBER RD$DELETES NUMBER RD$TRUNCATES NUMBER RD$RBA NUMBER With that you can now make a quick, command line connection to your databases in OCI. Enjoy!!!",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "SQLcl connection to OCI DBaaS",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/dbaas_db_connection-1.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/sqlcl-connection-to-oci-dbaas",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "Retrieval Augmented Generation (RAG) represents a significant advancement in natural language processing that addresses fundamental limitations in static language models. By combining the generative capabilities of large language models with dynamic information retrieval systems, RAG enables AI systems to access and incorporate external knowledge during inference, resulting in more accurate, current, and verifiable outputs. This architectural approach is particularly valuable in domains where knowledge evolves rapidly or where access to proprietary datasets is essential. RAG systems demonstrate superior performance in reducing confabulation rates while maintaining the fluency and coherence expected from modern language models. What We’ll Be Covering What is Retrieval-Augmented Generation? What are the Benefits of RAG? How Does RAG Work? When to Use RAG Over Retraining and Fine-Tuning Common Use Cases for RAG Implementing Retrieval-Augmented Generation Conclusion What is Retrieval-Augmented Generation? Retrieval Augmented Generation is an architectural pattern that enhances language model outputs by incorporating external knowledge retrieval during the generation process. Unlike traditional language models that rely solely on parametric knowledge encoded during training, RAG systems maintain a dynamic connection to external knowledge bases, enabling real-time information access and integration. The RAG architecture operates through a two-stage process: Retrieval Stage: A query-driven search mechanism identifies and extracts relevant information from external sources Generation Stage: The language model synthesizes retrieved information with its parametric knowledge to produce contextually appropriate responses This dual-stage approach significantly improves output accuracy and reduces hallucination rates – instances where models generate plausible but factually incorrect information. In my research, I’ve observed hallucination rates drop from 15-20% in standard models to 2-3% in well-implemented RAG systems. From a technical perspective, I prefer the term “confabulation” over “hallucination” as it more accurately describes the phenomenon of models generating coherent but false information when attempting to fill knowledge gaps. However, I’ll use the industry-standard term “hallucination” throughout this article for consistency. RAG’s effectiveness stems from its ability to ground responses in retrieved, verifiable information rather than relying solely on learned parameters. This makes it invaluable for applications requiring high accuracy and up-to-date information, such as scientific research, medical diagnosis support, and real-time financial analysis. What are the Benefits of RAG? RAG architectures offer three primary advantages over traditional generative models: Reduced Retraining Requirements: Traditional models require complete retraining cycles to incorporate new knowledge – a computationally expensive process with O(n) complexity relative to dataset size. RAG systems bypass this by maintaining separate, updateable knowledge bases that can be modified without altering model parameters. Computational Efficiency: The computational cost of maintaining current knowledge drops dramatically with RAG. While retraining a 175B parameter model might require thousands of GPU-hours, updating a RAG knowledge base requires only re-encoding new documents into embeddings – typically a matter of minutes on modest hardware. Enhanced Accuracy Through Real-Time Retrieval: RAG systems demonstrate superior performance on factual accuracy benchmarks. In controlled experiments, RAG-enhanced models show: 85% accuracy on time-sensitive queries vs. 42% for static models 91% citation accuracy when referencing source materials 3x reduction in factual errors on domain-specific tasks For instance, in medical applications, a RAG system can retrieve the latest clinical trial data or treatment guidelines during inference, ensuring recommendations align with current best practices rather than potentially outdated training data. How Does RAG Work? RAG systems integrate three core components that work synergistically to produce accurate, contextually relevant outputs. Vector Embeddings At the foundation of RAG systems are vector embeddings – dense numerical representations that capture semantic meaning in high-dimensional space. These embeddings map textual information to points in ℝⁿ (typically n=768 or n=1536) where semantic similarity corresponds to geometric proximity. The embedding process uses transformer-based encoders (e.g., BERT, Sentence-T5) to convert text into vectors where: Cosine similarity between vectors correlates with semantic similarity The embedding space exhibits useful properties like analogical reasoning Contextual nuances are preserved through attention mechanisms The Retrieval Module The retrieval module implements efficient similarity search over large document collections. When processing a query q, the system: Encodes the query: q → v_q ∈ ℝⁿ using the same encoder as the document embeddings Computes similarity scores: sim(v_q, v_d) for all documents d in the corpus Retrieves top-k documents: Returns documents with highest similarity scores Modern implementations use approximate nearest neighbor (ANN) algorithms to achieve sub-linear retrieval complexity: HNSW (Hierarchical Navigable Small World): O(log n) search complexity IVF (Inverted File Index): Clusters vectors for efficient pruning LSH (Locality Sensitive Hashing): Probabilistic approach trading accuracy for speed These methods enable retrieval from billion-scale document collections in milliseconds. Vector Databases Vector databases provide specialized infrastructure for storing and querying embeddings at scale. Key features include: Indexing Strategies: Hierarchical structures for multi-resolution search Quantization techniques to reduce memory footprint Distributed architectures for horizontal scaling Optimization Techniques: Product quantization reduces storage by 90% with minimal accuracy loss Learned indices adapt to data distribution GPU acceleration for similarity computations Popular implementations include Pinecone, Weaviate, and Milvus, each offering different trade-offs between performance, scalability, and features. In the last few years, Oracle has released its enhanced version of Oracle Database that supports vectors (Oracle Database 23ai – OCI or Engineered Systems only) and Google has done the same with AlloyDB (cloud and on-premises). The Generation Module The generation module synthesizes retrieved information with the model’s parametric knowledge. This involves: Context Integration: Retrieved documents are concatenated with the original query Attention Mechanisms: Self-attention layers weight the relevance of retrieved information Conditional Generation: The model generates tokens conditioned on both query and retrieved context Mathematically, this modifies the standard generation probability: P(y|x) → P(y|x, R(x)) where R(x) represents retrieved documents relevant to query x. Example RAG Workflow Consider a biomedical query: “Latest CRISPR applications in treating sickle cell disease” Query Encoding: The query is embedded into a 768-dimensional vector Retrieval: ANN search identifies relevant papers from PubMed embeddings Ranking: Documents are re-ranked using cross-encoder scores Context Formation: Top-5 papers are concatenated with the query Generation: The model synthesizes a response citing specific studies The entire process completes in &lt;2 seconds, providing up-to-date, cited information impossible with static models. When to Use RAG Over Retraining and Fine-Tuning RAG architectures excel in specific scenarios where traditional approaches fall short: Dynamic Knowledge Requirements: When information changes frequently (daily/weekly), RAG’s ability to incorporate updates without retraining becomes invaluable. Time complexity for updates: O(d) for d new documents vs. O(n) for full retraining. Domain-Specific Applications: RAG allows models to access specialized knowledge bases without the catastrophic forgetting associated with fine-tuning. Memory requirements remain constant regardless of knowledge base size. Explainability Requirements: RAG systems provide natural attribution by linking outputs to source documents. This traceability is crucial for applications in regulated industries. Comparative Analysis: Fine-tuning: Lower inference latency (10-20ms) but static knowledge RAG: Higher latency (50-200ms) but dynamic, verifiable knowledge Hybrid approaches: Combine fine-tuned models with RAG for optimal performance Common Use Cases for RAG RAG systems have demonstrated significant impact across multiple domains: Scientific Research: RAG-powered literature review systems process millions of papers, identifying relevant studies with 94% precision. Researchers report 70% time savings in literature surveys. Clinical Decision Support: Integration with electronic health records enables real-time access to patient history, current guidelines, and drug interactions. Studies show 40% reduction in diagnostic errors when physicians use RAG-assisted tools. Financial Analysis:RAG systems analyzing market data, regulatory filings, and news sources demonstrate 2.3x improvement in prediction accuracy for earnings forecasts compared to static models. Legal Research: Automated case law retrieval and analysis reduces research time by 65%. RAG systems identify relevant precedents across jurisdictions with 89% recall. Implementing Retrieval-Augmented Generation Successful RAG implementation requires careful attention to technical details: Document Preprocessing: Chunk documents into semantically coherent segments (typically 200-500 tokens) Implement overlap to preserve context across boundaries Generate embeddings using domain-adapted encoders Retrieval Optimization: Tune similarity metrics for your domain (cosine vs. L2 distance) Implement hybrid search combining dense and sparse retrieval Use query expansion techniques to improve recall System Architecture: “`python # Simplified RAG Pipeline class RAGPipeline:     def __init__(self, encoder, vector_db, generator):         self.encoder = encoder         self.vector_db = vector_db         self.generator = generator     def process_query(self, query):         # Encode query         query_embedding = self.encoder.encode(query)         # Retrieve relevant documents         docs = self.vector_db.search(query_embedding, k=5)         # Generate response with context         context = self.format_context(docs)         response = self.generator.generate(query, context)         return response, docs # Include sources Performance Considerations: Batch encoding for efficiency Implement caching for frequently accessed documents Monitor retrieval quality metrics (MRR, NDCG) Conclusion Retrieval Augmented Generation represents a fundamental shift in how we approach knowledge-grounded language generation. By decoupling knowledge storage from model parameters, RAG enables systems that are simultaneously more accurate, more current, and more interpretable than traditional approaches. The architecture’s elegance lies in its modularity – retrieval and generation components can be optimized independently, allowing for continuous improvement without system-wide changes. As embedding models improve and vector databases become more sophisticated, RAG systems will continue to demonstrate enhanced capabilities. For practitioners, RAG offers a pragmatic solution to the challenges of maintaining current, accurate AI systems. The technical investment required for implementation is offset by dramatic reductions in retraining costs and significant improvements in output quality. As we move toward more specialized AI applications, RAG’s ability to seamlessly integrate domain-specific knowledge while maintaining the fluency of large language models positions it as a critical architecture for the next generation of AI systems.",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "What is Retrieval Augmentation Generation (RAG)?",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/RAG-key-1.jpg",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/retrieval-augmented-generation-rag-technical-guide",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "Introduction Exception handling is one of the basic yet advance features that Oracle GoldenGate can do. This allows the Oracle GoldenGate processes to keep running when errors happen and time for administrators to evaluate the errors. This blog post is meant to show the basics of exception handling by using a macro within the Oracle GoldenGate (Microservices) environment. A word of caution needs to be given though. This approach will not work on Oracle GoldenGate Service (GGS) within OCI. This is due to not having access to the underlying host where the parameter files and trail files are stored. Hopefully, in the coming time, the Oracle GoldenGate Product Team will allow this. Yet, please remember that GGS is a “service”. Exception Table(s) Info An exception table is one of two things: A matching table to the table being replicated. A master exception table that is used to track where the exception happens. Exception Table This version of the exception table (master table approach) will capture details of an error based on the information that is passed in the trail file when the error occurred. This information can be used to identify where and what trail file should be reviewed to identify the data that may not have been processed. accept ggate_user char prompt 'GoldenGate User Name: ' drop table &amp;&amp;ggate_user..exceptions / create table &amp;&amp;ggate_user..exceptions ( EXCEPTION_ID NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY START WITH 100 , EXCEPTION_TS TIMESTAMP(6) default systimestamp , EXCEPTION_STATUS VARCHAR2(15) , REP_NAME VARCHAR2(8) , TABLE_NAME VARCHAR2(61) , BEFORE_AFTER VARCHAR2(32) , OPTYPE VARCHAR2(20) , TRANSIND VARCHAR2(20) , LOGCSN NUMBER , FILESEQNO NUMBER , FILERBA NUMBER , LOGRBA NUMBER , LOGPOSITION NUMBER , COMMITTIMESTAMP TIMESTAMP(6) , ERRTYPE VARCHAR2(20) , ERRNO NUMBER , DBERRMSG VARCHAR2(4000) ,CONSTRAINT exception_pk PRIMARY KEY (EXCEPTION_ID) ) / Show Errors Exception Macro The exceptions macro will be processed by the replicat and used to populate the exceptions table. Within an Oracle GoldenGate (Microservices) deployment (non-OCI), a macro should be placed in a directory where it can be referenced by the replicat. In this instance, the $OGG_ETC_HOME/conf/ogg directory can be used. Simply add a sub-directory called mac or dirmac. Within this directory, add the file “exceptions.mac” and the contents should be as follows: MACRO #exception_handler PARAMS(#ggate_user) BEGIN , TARGET #ggate_user.exceptions , COLMAP ( exception_id = 0 , exception_ts =  , exception_status =  , rep_name = @GETENV (GGENVIRONMENT, GROUPNAME) , table_name = @GETENV (GGHEADER, TABLENAME) , before_after = @GETENV (GGHEADER, BEFOREAFTERINDICATOR) , optype = @GETENV (LASTERR, OPTYPE) , transind = @GETENV ( GGHEADER, TRANSACTIONINDICATOR) , logcsn = @GETENV (TRANSACTION, CSN) , fileseqno = @GETENV (RECORD, FILESEQNO) , filerba = @GETENV (RECORD, FILERBA) , logrba = @GETENV (GGHEADER, LOGRBA) , logposition = @GETENV (GGHEADER, LOGPOSITION) , committimestamp = @GETENV (GGHEADER, COMMITTIMESTAMP) , errtype = @GETENV (LASTERR, ERRTYPE) , errno = @GETENV (LASTERR, DBERRNUM) , dberrmsg = @GETENV (LASTERR, DBERRMSG) ) , INSERTALLRECORDS , EXCEPTIONSONLY END; Update Replicat Once the exception macro is in place; the replicat needs to be updated to reflect the location and how errors should be handled. This is done with the INCLUDE and REPERROR parameters. In the parameter file as example below, this will configure exceptions for all schemas/tables in replication. The last thing that needs to be done is to write corresponding map statements that will use the mac. REPLICAT REPPDB2 USERIDALIAS TargetPDB DOMAIN OracleGoldenGate INCLUDE mac/exceptions.mac REPERROR(DEFAULT, EXCEPTION) REPERROR(DEFAULT2, ABEND) DDLERROR DEFAULT IGNORE DDL DDLOPTIONS UPDATEMETADATA MAP DEVDB_PDB1.TPC.*, TARGET TPC.*; MAP DEVDB_PDB1.TPC.*, #exception_handler(ggate); MAP DEVDB_PDB1.TPC1.*, TARGET TPC1.*; MAP DEVDB_PDB1.TPC1.*, #exception_handler(ggate); Now you can capture errors while processing is on-going without a replicat abending.",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "Basic error handling with Exception Table",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/exception_handling-1.jpg",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/exception_table",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "With Oracle GoldenGate there are times when you want to know the number of DML that is being pushed through the system. Oracle provides this through the STATS command from within AdminClient (new GGSCI); but what if you want to capture this information on the fly while processing is happening. How would you accomplish this? In this post, I’ll outline what I did for a customer to help them achieve this use-case and provide some feedback. The items used are completely customizable and can be used for any environment. As I started to break down this use-case, I wanted to do something that wasn’t tied directly to the replicat process, but would get the information as it was flowing in and then place it into a table called HIST_STATS. The goal was to capture the amount of DML coming in on a timed basis. The table HIST_STATS is setup as follows: create table tpc1.hist_stats ( table_name varchar2(30), op_date timestamp, inserts number, updates number, deletes number, truncates number, primary key (table_name, op_date) ); Notice that the table is in the TPC1 schema, but in reality it can be in any schema that Oracle GoldenGate has access to. I just choose to put it the same schema as the target tables. At the same time, the PK is set to be table_name and operations date (op_date). This is to ensure that I get all the tables at least once and order the stats by date when they come in. Outside of the PK, I’m just capturing the standard DML (inserts, updates, deletes, and truncates). Keep in mind that truncates really are DDL within Oracle GoldenGate; expectation is that this column should always be zero (0) unless DDL is enabled. With the table set, now I need to configure Oracle GoldenGate to apply this information from the trail file that the replicat reads. The easiest way of doing this is to use the header information in the trail file. I have written a previous blog post on this over on dbasolved.com, check it out. In order to read this information and place it into the HIST_STATS table, the approach I took was to use a macro. The macro that I defined was the following: MACRO #stats_handler PARAMS(#user) BEGIN , TARGET #user.hist_stats , COLMAP ( table_name = @GETENV ('GGHEADER', 'TABLENAME') , op_date = @DATE ('YYYYMMDD HH:MI:SS', 'JTS', @GETENV('JULIANTIMESTAMP')) , inserts = @GETENV ('STATS', 'TABLE', '#user.*','INSERT') , updates = @GETENV ('STATS', 'TABLE', '#user.*','UPDATE') , deletes = @GETENV ('STATS', 'TABLE', '#user.*','DELETE') , truncates = @GETENV ('STATS', 'TABLE', '#user.*','TRUNCATE') ) END; Macros are great for compartmentalizing logic needed to do things within Oracle GoldenGate. They allow GoldenGate Administrators to simplify and automate work within the replication stream (more information here). I’m not going to spend a lot of time explain this macro, but the general definition of it is that I’m capturing the information I’m looking for out of the trail file header using the @GETENV command and mapping it to the target table of HIST_STATS. One thing to note is that the #user is a variable that is being passed to the macro. This allows for the macro to be used anywhere with any schema (doesn’t hard code the user information). At the same time, getting the date down to the second to make sure data is unique for the stats captured. With the macro created, it now needs to be mapped directly into the replicat. This is done by using the INCLUDE option, then adding a MAP statement that calls the macro. replicat REP useridalias PDBGGATE domain OracleGoldenGate REPERROR(1403, discard) REPERROR(1, discard) INCLUDE ./dirmac/stats.mac MAP devdb1.tpc.*, #stats_handler(tpc1); MAP devdb1.tpc.*, TARGET tpc1.*; When you looking at the parameter file for the replicat, you see that there is a directory called dirmac. This is a customer directory that I use to store the macros. Within Oracle GoldenGate Microservices, which I was using, this directory needs to be created under $DEPLOYMENT_HOME/etc/conf/ogg. This is the default location for parameter files within the Microservices architecture. Once this is created and the macro located there, then the next line is a MAP statement that tells GoldenGate that for every table coming in insert the DML stats by calling the macro. This happens before data is actually applied to the tables in the second MAP statement. As data is flowing, you will be able to query the HIST_STATS table and validate that data and DML stats are coming in. In the example below, I’m querying the HIST_STATS table to show only a single table: select * from tpc1.hist_stats where table_name like ‘%ORDERS’ order by op_date asc; The results returned are similar to the image: As you can tell, I can quickly tell the number of cumulative inserts and updates that are happening on the Orders table every second. There is more that can be done with this to find out the insert/update differences per second, but for the general use-case purposes this shows how it can be done. Enjoy!!!",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "Capturing Stats by time",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/macro_stats_hist-1.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/capturing-stats-by-time",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "In the dynamic landscape of modern technology, few fields hold as much promise and potential as Artificial Intelligence (AI) and Machine Learning (ML). These innovative technologies have revolutionized industries across the globe, from healthcare to finance, manufacturing to entertainment. The demand for AI and ML expertise is soaring, driven by the quest for efficiency, insights, and competitive advantage. In this fast-paced era, companies striving to stay ahead of the curve recognize the importance of integrating AI and ML into their operations. Whether optimizing processes, personalizing user experiences, or predicting future trends, AI and ML have become indispensable tools for innovation and growth. However, navigating the complexities of AI implementation requires specialized knowledge and expertise. This is where RheoData, as experts in Data Integration, ML, and AI, emerges as a crucial partner in building successful AI projects. The Rising Demand for AI and Machine Learning The digital transformation sweeping across industries has fueled the exponential growth of AI and ML. Organizations increasingly leverage these technologies to unlock value from vast amounts of data, automate tasks, and gain actionable insights. According to industry reports, the global AI market is projected to reach staggering heights, with estimates surpassing hundreds of billions of dollars by the decade’s end. Several factors are driving this surge in demand: Data Deluge: With the proliferation of digital platforms and connected devices, the volume of data generated is growing at an unprecedented rate. AI and ML algorithms thrive on data, making them essential for extracting meaningful insights and patterns from this vast sea of information. Competitive Edge: Companies constantly seek ways to differentiate themselves in today’s hyper-competitive business landscape. AI and ML offer a significant competitive advantage by enabling organizations to streamline processes, enhance decision-making, and deliver personalized experiences to customers. Cost Efficiency: By automating repetitive tasks and optimizing resource allocation, AI and ML solutions help businesses operate more efficiently, reducing operational costs and maximizing profitability. Innovation Catalyst: AI and ML have the potential to drive transformative innovation across various sectors, from healthcare and transportation to retail and agriculture. By pushing the boundaries of what’s possible, these technologies pave the way for groundbreaking discoveries and advancements. Why Choose RheoData for AI Projects? Amidst the growing demand for AI and ML solutions, selecting the right partner to spearhead your projects is paramount to success. Here’s why RheoData stands out as the ideal choice: Expertise and Experience: RheoData boasts a team of seasoned professionals with deep expertise in Data Integration, Machine Learning (ML), Artificial Intelligence (AI), and Data Science. With years of hands-on experience across diverse industries, our experts have the knowledge and skills to effectively tackle your complex AI challenges. Customized Solutions: At RheoData, we understand that every business is unique, with its goals, challenges, and opportunities. That’s why we take a tailored approach to AI project development, crafting bespoke solutions that align with your specific requirements and objectives. Cutting-edge Technologies: Keeping pace with the latest advancements in AI and ML is crucial for delivering innovative solutions that drive tangible results. RheoData leverages cutting-edge technologies and best practices to ensure our clients stay ahead of the curve and capitalize on emerging opportunities. End-to-End Support: From initial concept to deployment and beyond, RheoData provides comprehensive support at every stage of the AI project lifecycle. Whether you need assistance with data collection, model training, or performance monitoring, our dedicated team guides you every step of the way. Focus on Value Delivery: RheoData aims to deliver measurable value to our clients through AI and ML solutions. We prioritize outcomes over outputs, constantly striving to exceed expectations and drive tangible business impact. Conclusion As the demand for Artificial Intelligence (AI) and Machine Learning (ML) continues to soar, organizations must partner with trusted experts to unlock the full potential of these transformative technologies. RheoData stands at the forefront of AI innovation, offering unparalleled expertise, customized solutions, and unwavering support to help businesses thrive in the digital age. By harnessing the power of AI with RheoData, organizations can embark on a journey of discovery, innovation, and success. In a world where data is king, RheoData empowers businesses to reign supreme with AI-driven insights and solutions. Together, let’s embrace the future of technology and pave the way for a smarter, more efficient tomorrow.",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "Harnessing the Power of AI and Machine Learning with RheoData: A Path to Success",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/HarnessingAIwithRD-2-1.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/harnessing-ai",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "The partnership between Oracle and Google Cloud represents one of the most significant collaborative achievements in enterprise technology. Oracle Database@Google Cloud Platform brings together Oracle’s proven database excellence with Google Cloud’s industry-leading infrastructure and AI capabilities, creating unprecedented opportunities for enterprise digital transformation. This strategic alliance enables organizations to leverage Oracle’s advanced database technologies – including Oracle Database 23ai with its revolutionary AI features – while gaining full access to Google Cloud’s comprehensive service portfolio including BigQuery, Vertex AI, and Kubernetes Engine. The result is a unified platform that eliminates the traditional trade-offs between database capability and cloud innovation. As a someone who has led multiple enterprise Oracle migrations and working closely with Google Cloud’s enterprise sales team, we’ve witnessed this partnership deliver exceptional results for organizations seeking to modernize their data infrastructure. While Google Cloud SQL platforms offer solid managed database services for many use cases, Oracle@GCP provides enterprise-grade capabilities that drive competitive advantage and long-term strategic value. Two Paths, One Clear Winner We recently collaborated on evaluating two distinct migration architectures for a client modernizing their Oracle infrastructure on Google Cloud Platform. The contrast illuminated fundamental differences that every IT leader should understand. Path 1: Migration to Google Cloud SQL – A Viable Alternative Google Cloud SQL provides excellent managed database services with PostgreSQL, MySQL, and SQL Server options. These platforms offer strong operational benefits including automated backups, security patching, and high availability configurations. For organizations with simpler database requirements or those looking to standardize on open-source technologies, Cloud SQL represents a solid foundation for cloud operations. However, organizations with complex Oracle workloads may find that Cloud SQL requires additional planning for feature compatibility, performance optimization, and application integration considerations. Path 2: Oracle@GCP with Oracle Database 23ai – The Enterprise Excellence Platform Oracle@GCP deploys Oracle Database through Oracle’s cloud infrastructure services directly within Google Cloud Platform. This architecture provides seamless integration with Google Cloud services while maintaining Oracle’s advanced database capabilities, delivering transformation rather than mere platform conversion. The business case extends beyond technical considerations – it’s about maintaining competitive advantage while achieving cloud benefits. The Oracle 19c Support Reality: A Ticking Clock Based on Oracle’s official Lifetime Support Policy (effective June 10, 2025), Oracle 19c presents significant timeline constraints that both technical and sales perspectives must address: Premier Support ends December 2029 – Only four years of full support remaining from today Extended Support ends December 2032 – Seven-year limited runway with restrictions Java 8 support exclusion after December 2030 – Critical limitation for enterprise environments running integrated Java components Compare this to Oracle 21c (Innovation Release), which offers Premier Support only until July 2027 with no Extended Support available. The pattern is clear: investing in any Oracle release except 23ai means planning replacement before achieving full ROI.Our joint analysis shows that organizations choosing Oracle 19c today will face another migration decision within 3-4 years – creating compounded migration costs and technical debt accumulation. Oracle Database 23ai: Purpose-Built for AI-Powered Enterprise Success Oracle Database 23ai delivers over 300 enterprise-grade features designed for competitive differentiation. From our combined technical and sales perspective, these transformational capabilities drive measurable business outcomes: AI Vector Search integrates semantic search across documents, images, and unstructured data with your private business information – no data movement required, maintaining security while unlocking insights that Google Cloud SQL platforms cannot match. JSON Relational Duality eliminates the traditional document versus relational trade-off by providing unified access through both SQL and JSON APIs, surpassing the capabilities of standard PostgreSQL or MySQL JSON handling. Model Context Protocol (MCP) Integration enables direct AI assistant integration with built-in security, allowing agents to generate and execute SQL queries while maintaining enterprise governance – functionality unavailable in Google Cloud SQL managed services. Oracle True Cache delivers automatically managed, in-memory SQL and key-value caching that accelerates application performance beyond what Cloud SQL memory configurations can achieve. These aren’t incremental improvements – they’re foundational capabilities that position organizations for the next decade of data-driven competition within Google Cloud’s ecosystem. Why Oracle@GCP Wins the Total Cost Analysis Our comprehensive migration assessment reveals the hidden costs of Oracle-to-Cloud SQL conversion that impact bottom-line results: The 80/20 Reality of Database Migration While basic table structures may convert between platforms, they represent only 15-20% of total migration effort. The remaining 80% includes: PL/SQL to stored procedure conversion (60% of effort) – Complete rewriting for PostgreSQL functions or MySQL procedures Application integration changes (20% of effort) – ORM modifications, connection handling, query syntax adjustments Advanced feature reimplementation (10% of effort) – Partitioning, triggers, and constraints require platform-specific approaches Performance optimization (10% of effort) – Completely different tuning methodologies and capabilities Hidden Considerations for Cloud SQL Migration While Google Cloud SQL migration is certainly achievable, organizations should plan for several implementation aspects: Feature adaptation: Some Oracle-specific functionality may require alternative approaches in PostgreSQL, MySQL, or SQL Server environments Application integration updates: Connection handling, query optimization, and ORM configurations may need adjustment for different database engines Performance tuning methodology: Each Cloud SQL platform has unique optimization approaches that teams will need to master Operational procedures: Database administration practices will require updates for the new platform environments Oracle@GCP Advantage Through Partnership Our clients achieve immediate ROI through preserved investments: Zero application rewrite – Existing PL/SQL code base remains fully functional Retained expertise – Current Oracle DBA skills continue delivering value Maintained performance characteristics – No unknown optimization requirements across multiple platforms Preserved advanced features – Partitioning, advanced analytics, and enterprise security remain intact Strategic Positioning for Long-Term Success Oracle@GCP provides the enterprise foundation your organization needs for sustained competitive advantage within Google Cloud’s ecosystem: Google Cloud Integration Excellence – Oracle’s infrastructure services enable seamless connectivity to BigQuery for analytics, AI Platform for machine learning, Kubernetes Engine for containerization, and Vertex AI for advanced AI/ML workloads while maintaining Oracle’s database excellence. AI-Driven Competitive Advantage – Oracle’s built-in AI capabilities complement Google Cloud’s machine learning and analytics services, positioning organizations at the forefront of data-driven decision making. Performance Scalability – Enterprise-grade database performance that surpasses Cloud SQL limitations, particularly for complex analytical workloads and high-concurrency applications that leverage Google Cloud’s compute infrastructure. Operational Excellence – Unified database management with transparent pricing eliminates the complexity of managing multiple Cloud SQL instances for different workload types. The Partnership Perspective: Technical Leadership Meets Sales Excellence From the RheoData View: Oracle@GCP eliminates the technical risks associated with platform conversion while providing immediate access to Google Cloud’s innovation ecosystem. Your team maintains their Oracle expertise while gaining access to best-in-class cloud services. From the Google Cloud Sales Perspective: Oracle@GCP accelerates customer success on Google Cloud Platform by eliminating migration blockers and reducing project risk. Customers achieve faster time-to-value and higher platform adoption rates when database complexity is removed from the equation. Combined Value: This partnership approach ensures both technical success and business objectives align, creating sustainable competitive advantage through proven technology integration. Our Joint Recommendation The data tells a compelling story: Oracle 19c represents a short-term fix when your organization requires long-term strategic advantage. With only four years of Premier Support remaining and Java 8 limitations creating operational constraints, this path misaligns with sustainable operational excellence. Oracle Database 23ai via Oracle@GCP delivers the platform foundation necessary for competitive differentiation over the next 5-10 years. This approach provides true digital transformation – not just database conversion – positioning your organization for sustained success in an AI-powered marketplace while maximizing Google Cloud Platform investments. The Bottom Line for Executive Decision-Making When evaluating Oracle migration options within Google Cloud Platform, consider this strategic question: Does your organization want to invest in a complex multi-platform conversion requiring extensive reengineering, or maintain proven database excellence while gaining cloud benefits? Google Cloud SQL platforms serve specific use cases well, but they cannot match Oracle Database’s enterprise capabilities, advanced analytics features, or AI integration potential. Organizations with significant Oracle investments achieve better ROI by leveraging Oracle@GCP rather than pursuing costly platform conversions. We recommend proceeding with an Oracle@GCP proof of concept to validate performance characteristics and integration capabilities with your specific Google Cloud services. This strategic approach balances innovation with risk management while maintaining business continuity and maximizing both Oracle and GCP investment returns. Contact RheoData at cloud@rheodata.com to discuss how Oracle@GCP can accelerate your organization’s Google Cloud adoption while eliminating the risks and costs associated with heterogeneous database conversion.",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "Oracle to GCP Migration: Oracle@GCP vs. Cloud SQL – The Strategic Choice That Drives Results",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/Gemini_Generated_Image_3gph3a3gph3a3gph-1.jpg",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/oracle-gcp-vs-cloud-sql-migration",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "What is a Bastion? There a three primary definition for the word Bastion. They are: A projecting part of a fortification A fortified area or position A place of security or survival In all three of these definitions, a bastion is a secure place. Within cloud environments security is one of the biggest things to worry about, after all you don’t want to have your databases broadcasting on a public ip address. What is the answer then; well the answer is to keep all items on a private subnet/network and access these resources through a “bastion” host. Below is a simple network architecture that illistrates how to access our testing PDB via a bastion connection. This is a secure way for accessing our database when needed while not broadcasting it publicly. From the network architecture above, it looks pretty straight forward on how to connect to the PDB which is in the Fault Domain 2. In really, to make this connection, we need to create the Bastion host then enable the bastion to connect via ip address to the database. Find the Database Host IP and other information The first thing we need to do is find the database host ip address. This address will be a private IP address of where the database is running. This can easily be found by going to: Overview -&gt; Oracle Base Database -&gt; DB Systems Then select the database which you want to access. In our case, we are going to use RDDEVDB. After clicking on the database that is going to be used, you’ll notice in the lower left-hand side there is a Resources section. To the right of this section is another link of the database name. Select the database name to view the Database Details. After clicking on the database name, you will be on the Database Details page. This great if we wan to get the Container Database information; however, we want to dive a bit deeper to the Pluggable Database. On the left-hand side, you’ll see the Resources section. Under this Resources section, notice that there is a link for Pluggable Databases. After clicking Pluggable Databases, the bottom of the Database Details page will change to show the Pluggable Database. Once this happens, you will see the name of the Pluggable Database that we want to connect to. Clicking on the Pluggable Database link, will bring you to the Pluggable Database Details page. On this page, there is a series of buttons at the top of the page. These buttons allow you to review a variety of items for the Pluggable Database. Where you are most interested in is the button that says “PDB Connection”. By clicking the “PDB Connection” button, opens the details we need to make a connection from the Bastion host. When reviewing the connection strings, it is best to use the “Long” version of the connection string. Within this connection string, you will want to use the “Host” information. The contents of the “Host” should be a private ip address on your VCN. In our case the IP address is 10.0.0.233 and listening on port 1521. Also make note of the service name for the PDB. This will be used later as well. Now that we have the connection information we need to connect to the Pluggable Database, lets take a look at how to build the Bastion Host. Building a Bastion Host The Bastion host is considered a security feature of the OCI framework. When looking for the Bastion configuration pages, it will be found under Identity &amp; Security of the OCI pages. After accessing the Bastions page, there will be a “Create Bastion” button. This will open the dialog where you can name the Bastion host, provide the VNC and subnet, and what CIDER block can access the Bastion. In this example, I’m allowing access from anywhere by using a cider of 0.0.0.0/0. After filling in all the required information, click the Create button at the bottom of the dialog. This will kick off the creation process. Once the Bastion host is create, the Bastions page in OCI will show that the bastion host is active. With the Bastion host active, click on the name of the bastion to access the Details page. On the detail page, you can see the specific details of the host. On this page is a “Sessions” section where you can define the allowed sessions for connecting to the DBCS Pluggable database. Defining a Bastion Session When you are on the Bastion details page, a session can be created by clicking the “Create session” button. This action will bring up the dialog for creating a session. There are a few items that need to be either edited or selected on this page. Since we are going to connect to a DBCS instance, the session type should be “SSH port forwarding session”. Then provide a session name and select connect via IP address. Next provide the IP address which was identified earlier – which was 10.0.0.233. Change the port number from 22 to 1521. Lastly, select the RSA public key you want to use. In this case, I’m using a key that I previously created – id_rsa1.pub. If you click the link at the bottom for “Show Advanced options”, you will get the maximum time-to-live settings. One-hundred and eighty (180) minutes is the max that can be set. If you try to add anything higher, the create session process will error out. After setting all this information, click the “Create session” at the bottom of the dialog. At his point, the Bastion detail page will be updated and it make take up to a minute for the session that was created to show active. Database Connection through Bastion Host Up to this point, this blog has been about identifying the needed information for the database that we need to connect to as well as setting up the Bastion host. With both of these items out of the way, now we can establish a connect to the database. In order to make a connection to the database, we have to first open the SSH tunnel needed. Open an SSH tunnel With the Bastion host created and the session for connecting to the a database on port 1521 running, we now have to open the tunnel. In order do this, we have to first find the SSH command to run. This can be viewed by selecting the three vertical dots at the end of the session table. There is an option for “Show SSH command”. When this is selected, a dialog will appear showing the command for establishing an SSH tunnel through the bastion host. This command needs to be copied and then pasted into a command line terminal. The items enclosed in &lt;&gt; need to be updated. These items should point to the matching private RSA key and the local port mapping that will be used to connect to the database – in this case it will be 1521. ssh -i -N -L :10.0.0.233:1521 -p 22 ocid1.bastionsession.oc1.iad.********************************************************************************bxq@host.bastion.us-ashburn-1.oci.oraclecloud.com Update to ssh -i /Users/bcurtis/.ssh/id_rsa1 -N -L 1521:10.0.0.233:1521 -p 22 ocid1.bastionsession.oc1.iad.********************************************************************************bxq@host.bastion.us-ashburn-1.oci.oraclecloud.com If the RSA key requires a password, it will prompt for it. After providing the password, the tunnel will be established. It will be hard to tell, but after the password is entered and the return key struck the tunnel will be intialized and no command prompt will be returned – as illustrated in the below image. Make Database connection With the SSH tunnel established, we can now make a connection to the Oracle database with OCI. Using a sql tool like SQL Developer, we can quickly test a connection and then make a connection. From SQL Developer, open the New/Select Database Connection dialog box. From here, we will provide the details needed for connecting to the Pluggable Database – information gathered earlier in the post. With all the required information filled out, select the “Test” button at the bottom to confirm a successful connection. At this point, the connection to the Pluggable database can be established by clicking the “Connect” button. As you can tell, we have successfully connected to the OCI DBCS Pluggable Database this is on the private network within OCI. This is established through the Bastion host that was configured and accessible from anywhere.",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "Access Oracle DBCS Pluggable Database via Bastion Connection",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/title_image_bastion_1-1024x876-1.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/access-oracle-dbcs-pluggable-database-via-bastion-connection",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```