Sunday, December 21, 2025

Oracle GoldenGate From On-Premises to OCI DBCS – Part 1: Configuring the Source Environment

 


Introduction:

This is Part 1 of a four-part blog series that demonstrates how to replicate data from an on-premises Oracle Database to a database running on Oracle Cloud Infrastructure (OCI) using Oracle GoldenGate.

In this blog, we focus on configuring Oracle GoldenGate in the on-premises source environment, including database prerequisites, user setup, and preparing the source database for change data capture.

Related blogs in this series:

Tuesday, December 9, 2025

OCI Bastion RDP Failure: Troubleshooting Error 0x708 with VNC Console Access by creating local console connection

 

Introduction:

Oracle Cloud Infrastructure (OCI) provides Bastion as a secure and convenient way to access private resources without exposing them directly to the internet. Recently, while trying to connect to a Windows Server 2012 instance via RDP through a Bastion host, I encountered connection issues. Despite setting up SSH port forwarding, the RDP session would not establish. This experience highlighted an important consideration: while Bastion is ideal for many scenarios, there are situations where it may not work, and OCI’s Console Connection (VNC) can be a reliable alternative.

In this blog, I’ll walk you through the root cause of the Bastion failure, explain why it occurs, and guide you on how to use Console connections to access Windows instances.

Wednesday, November 26, 2025

Fixing ORA-30012: Unable to Convert Physical Standby to Snapshot Standby

 


Introduction 

I recently encountered the frustrating "ORA-30012: undo tablespace 'UNDOTBS1' does not exist or is of wrong type" while attempting to convert my Data Guard Physical Standby into a writable Snapshot Standby for an important testing cycle. In my setup, the Primary database was a RAC running on Exadata Database Service on Dedicated Infrastructure, while the Standby was a single-instance deployment on DBCS. This mixed environment introduced subtle configuration differences, and one of those differences caused the ORA-30012 failure during the snapshot conversion. In this post, I’ll walk through how I investigated the issue, identified the undo-related mismatch on the standby, and applied the correct fix to enable the Snapshot Standby conversion successfully.

Tuesday, November 25, 2025

Troubleshooting ORA-29771 on a DBCS Data Guard Standby



Introduction

Recently, I encountered an issue on a DBCS Data Guard standby database where the alert log reported the error ORA-29771. After seeing this error, I checked the Data Guard status and noticed that the standby had developed a significant apply lag, even though redo apply was still running.

In this blog, I’ll explain the symptoms I observed, how I investigated the cause of the ORA-29771 error, and the steps I took to restore normal standby performance.

Monday, November 24, 2025

Fixing a DBCS Startup Failure Caused by ORA-07445

 



Introduction:

Running Oracle databases on Oracle Database Cloud Service (DBCS) usually provides a stable and well-automated environment, but unexpected platform-level issues can still occur—especially when critical OS-level components are modified or removed. Recently, I encountered a serious problem where a DBCS compute node failed to start the database, and the stack repeatedly threw an ORA-07445 error during the startup process.

At first glance, the issue looked like a typical software or patch conflict, but after deeper investigation, it turned out to be something far more fundamental: the swap mount point and related configuration had been cleared or removed on the compute instance. Without an active swap device, several Oracle background processes failed during initialization, resulting in the ORA-07445 crash.

In this blog, I’ll walk you through the symptoms, diagnostic steps, and the exact solution that restored the instance.

Monday, October 13, 2025

Exploring Bigfile Tablespaces with Default Settings in oracle 23ai


BIGFILE Tablespace

A bigfile tablespace is a tablespace with a single, but large datafile. Traditional small file tablespaces, in contrast, typically contain multiple datafiles, but the files cannot be as large. Making SYSUAX, SYSTEM, and USER tablespaces bigfile by default will benefit large databases by reducing the number of datafiles, thereby simplifying datafile, tablespace, and overall global database management for users.

Sunday, October 5, 2025

Oracle 23ai: AI-Driven SELECT – Vector Search

Introduction

For decades, databases have excelled at storing and retrieving structured data, but they struggled when it came to understanding similarity, context, or meaning. Traditional SQL queries rely on exact matches and predefined relationships, which makes searching unstructured or semantically rich data difficult. Oracle 23ai changes this model by introducing native AI Vector Search directly inside the database. With vector embeddings stored and indexed alongside traditional data, Oracle enables similarity-based searches that go beyond keywords and exact values. This allows applications to find results based on meaning, relevance, and proximity in vector space, making it possible to search text, documents, images, and other complex data types in a far more intuitive and powerful way, all using SQL.

AI Vector Search

Instead of searching for exact words, Vector Search allows you to search for concepts. By using the new VECTOR data type, you store "embeddings"—mathematical representations of data. This allows you to perform a "similarity search." For example, if you search for "staffing issues," the database can find documents about "low headcount" or "recruitment delays" because it understands they are conceptually related.

Example:

Assume you have a table called docs that stores documents along with their vector embeddings. 

To see the power of Vector Search, I need a larger dataset. With only one row, the "closest" result is always the same one! Here is a script to quickly populate my docs table with 100 rows of synthetic data. I’ve used a CONNECT BY loop and DBMS_RANDOM to generate unique titles and random vector coordinates so that the similarity search actually has something to compare.

INSERT INTO docs (id, title, embedding)
SELECT 
    level + 1, 
    'Tech Manual Part ' || (level + 1),
    -- Generating a random 3-dimensional vector string like '[0.12, -0.45, 0.88]'
    '[' || 
        ROUND(DBMS_RANDOM.VALUE(-1, 1), 2) || ',' || 
        ROUND(DBMS_RANDOM.VALUE(-1, 1), 2) || ',' || 
        ROUND(DBMS_RANDOM.VALUE(-1, 1), 2) || ']'
FROM dual
CONNECT BY level <= 100;

COMMIT;

Let’s take a look at the table structure with this query:

set line 200;
col ID for 9999;
col TITLE for a20;
col EMBEDDING for a50;
set pagesize 5000;
select * from docs;

Instead of writing a complex text search, you can ask the database to find documents that are conceptually similar to a given idea.

What is the following query doing

  • The vector [0.1, 0.5, -0.2] represents the concept you are searching for (for example, something related to staffing or workforce challenges).
  • VECTOR_DISTANCE calculates how close each document’s embedding is to that concept using cosine similarity.
  • Documents with the smallest distance are the most closely related in meaning.
  • The query returns the top 3 documents that best match the idea, not based on keywords, but on similarity.
-- Searching for documents similar to a specific concept
SELECT title
FROM docs
ORDER BY VECTOR_DISTANCE(embedding, '[0.1, 0.5, -0.2]', COSINE)
FETCH FIRST 3 ROWS ONLY;

In practice, this means a search for “staffing issues” could return documents talking about low headcount, hiring delays, or resource shortages, even if the exact phrase never appears. The database understands the relationship between these ideas.

Conclusion

AI Vector Search in Oracle 23ai represents a major shift in how databases handle modern data workloads. By embedding vector storage, indexing, and similarity search directly into the database engine, Oracle eliminates the need for external vector stores or separate AI infrastructure. This keeps data secure, reduces architectural complexity, and improves performance by allowing vector queries to run where the data already lives. As a result, Oracle 23ai enables developers and data teams to build smarter, AI-driven applications using familiar SQL tools while unlocking semantic search capabilities that were previously difficult or costly to implement. Vector search is no longer an add-on; it is now a core database capability.

How to Resolve Oracle LogMiner SQL Reconstruction Issues in CDC During Table Structure Changes

  Introduction  Last week, one of my clients experienced an issue with Oracle LogMiner after a table structure change. The generated SQL app...