Thursday, March 26, 2026

How to Extend Swap space on LVM Disk Linux

How to Extend Swap space on LVM Disk Linux

 Applies to:

            Oracle Database 12.2

            Oracle Linux 7

Description:

            Want to extend Swap space on LVM disk. Assumes that space is available in the volume group on which the current swap partition is located as logical volume.

Solution:

            To extend the amount of swap space in a LVM environment follow the below steps.

To verify the swap space exists and is a logical volume issue the following command:

           

To view the swap volume using fdisk command:

[root@ora12c ~]# fdisk -l

We see that current swap space is 7.88GB and we want to extend 2GB to this swap volume.

Stop or terminate all program/services which are using swap space and then stop existing swap volume using swapoff command.

[root@ora12c ~]# swapoff -a

Now increase the size of current swap space logical volume by 2GB using following command:

You can see that size has been increased by 2GB successfully.

Now to make the volume as a swap partition issue the following command:

Now turn on swap space as:

[root@ora12c ~]# swapon -a

You can also check and verify swap space by free and lsblk command:

 

 

Your comments especially which will help us to improve the functionality and make the post user friendly, will be greatly appreciated J

You are requested to follow my Blog.

Error ORA-06413 Connection not open


Error ORA-06413 Connection not open


Applies to:
            Windows 7 64bit
            Oracle Database 11.2.0.4

Description:
After re-install the windows 7 64-bit, I am unable to connect my Oracle Database instance using Toad 9.7.2.5. TNSNAMES.ora, SQLNET.ora and LISTENER.ora files are configured correctly. - When try to connect my database using Toad it shows the following error:
Error: ORA-06413 Connection not open

Solution:
            I have found that the error caused by the parenthesis in the path:
“C:\Program Files (x86)/..” where Toad install.

To fix the error execute the following command from command prompt to make a link:
C:>mklink /j “Program Files x86” “Program Files (x86)”

Now update shortcut of Toad with new path “C:\Program Files x86\..”

It’s working fine.
           

Your comments, especially which will help us improve the functionality, will be greatly appreciatedJ

Thursday, March 12, 2026

Oracle AI Vector Search - DML and Indexing Strategy

 

The Architect’s Guide to Oracle AI Vector Search: DML & Indexing Strategy

By: Rana Abdul Wahid

Executive Summary

As Generative AI moves from prototype to production, the bottleneck is often the efficient management of high-dimensional vector data. Oracle Database 23ai introduces native AI Vector Search, allowing organizations to manage embeddings with the same ACID-compliant rigor as traditional relational data.

This article provides a technical blueprint for performing DML (Data Manipulation Language) operations and selecting the optimal indexing strategy HNSW vs. IVF to balance search precision with system performance.

  

I. Data Foundation: The VECTOR Data Type

Oracle treats vectors as a native data type. This ensures that your embeddings are stored alongside your business metadata, eliminating the need for external specialized vector databases.

Schema Definition

SQL

CREATE TABLE corporate_knowledge_base (

    doc_id        NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,

    page_content  CLOB,

    updated_at    TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

    doc_vector    VECTOR(1536, FLOAT32) -- Optimized for OpenAI/Cohere embeddings

);

 

 

II. Mastering Vector DML Operations

Managing a vector store requires more than just "inserts." It requires an understanding of how embeddings are generated and maintained.

1. High-Performance Ingestion (INSERT)

You can insert pre-computed vectors from an external application or use Oracle's internal functions to generate them during the transaction.

  • Literal Entry: Useful when your application layer handles the embedding.
  • In-Database Embedding: Uses a loaded ONNX model to ensure data consistency.

SQL

INSERT INTO corporate_knowledge_base (page_content, doc_vector)

VALUES ('Oracle 23ai integrates AI within the kernel.',

        VECTOR_EMBEDDING(doc_model USING 'Oracle 23ai integrates...' AS data));

2. Strategic Updates (UPDATE)

Vectors must be updated whenever the source text changes or if you migrate to a more advanced embedding model.

SQL

UPDATE corporate_knowledge_base

SET doc_vector = VECTOR_EMBEDDING(new_v2_model USING page_content AS data)

WHERE doc_id = 501;

3. Row-Level Deletion (DELETE)

Standard SQL DELETE commands automatically trigger index maintenance. Oracle’s Vector Memory Pool ensures that when a row is removed, its corresponding entry in the HNSW graph or IVF partition is invalidated or cleaned up.

 

 III. The Indexing Decision: HNSW vs. IVF

Choosing an index is a trade-off between Memory, Latency, and Scale.

Technical Comparison Table

Feature

HNSW (Hierarchical Navigable Small World)

IVF (Inverted File Index)

Architecture

Memory-resident graph structure.

Disk-based centroid partitioning.

Best For

Ultra-low latency requirements.

Massive scale (Billions of rows).

Memory Footprint

High: Requires significant VECTOR_MEMORY_SIZE.

Low: Optimized for standard SGA/PGA.

Search Speed

Superior (Sub-millisecond).

Efficient, but slower than HNSW.

DML Efficiency

Fast, but graph rebuilds are CPU intensive.

Excellent for batch-loading large data.

 

Implementation Examples

SQL

-- Use HNSW for real-time Chatbots/RAG applications

CREATE VECTOR INDEX idx_hnsw_docs ON corporate_knowledge_base (doc_vector)

ORGANIZATION INMEMORY NEIGHBOR GRAPH;

 

-- Use IVF for multi-terabyte archival search

CREATE VECTOR INDEX idx_ivf_archive ON corporate_knowledge_base (doc_vector)

ORGANIZATION NEIGHBOR PARTITIONS;

 

IV. Architectural Workflow Overview

The following diagram illustrates the lifecycle of a Vector DML operation within the Oracle ecosystem:

  1. SQL Execution: The DML command is parsed.
  2. Vector Store: The raw vector is written to the table segment (Permanent Storage).
  3. Index Update: * HNSW: The graph is updated in the Vector Memory Pool.
    • IVF: The vector is assigned to a cluster on disk.
  4. Consistency: Oracle's Multi-Version Concurrency Control (MVCC) ensures search results remain consistent even during heavy DML activity.

 

Conclusion

Oracle AI Vector Search bridges the gap between enterprise data and LLMs. By mastering DML operations and selecting the appropriate index (HNSW for speed, IVF for scale), developers can build RAG (Retrieval-Augmented Generation) systems that are both high-performing and easily maintainable.

#OracleDatabase #AI #VectorSearch #GenerativeAI #DataEngineering #Oracle23ai #CloudComputing

 

Monday, March 9, 2026

Understanding VECTOR Data Types

 

Oracle AI Vector Search


Understanding VECTOR Data Types

A practical overview of vector data types, SQL usage, and similarity search concepts within Oracle

Database.

Introduction to Oracle AI Vector Search

The release of Oracle Database 23ai marks a paradigm shift in how we handle enterprise data. No longer is Artificial Intelligence a "sidecar" process; with AI Vector Search, the database itself becomes the engine for semantic understanding. At the heart of this revolution is the new, native VECTOR data type.

In this article, we will dive deep into the technical specifications, storage formats, and architectural advantages of the VECTOR data type.


  1. What is the VECTOR Data Type?

A vector is a mathematical representation of unstructured data (text, images, audio, or video) encoded as an array of numbers (dimensions). In Oracle 23ai, the VECTOR data type allows these embeddings to be stored, indexed, and queried using standard SQL.

Basic Syntax:

SQL

CREATE TABLE ai_documents (

    id           NUMBER PRIMARY KEY,

    content      CLOB,

    doc_vector   VECTOR(1024, FLOAT32)

);

 

2. Formats and Storage Efficiency

Oracle provides three primary formats to balance accuracy vs. performance. Choosing the right format is critical for storage optimization and search speed:

Format

Storage per Dimension

Use Case

FLOAT64

8 Bytes

Maximum precision; best for scientific or high-accuracy requirements.

FLOAT32

4 Bytes

The standard default; balances precision with performance.

INT8

1 Byte

Optimized for speed; significantly reduces storage footprint.

BINARY

1 Bit

32x smaller than FLOAT32; allows for ultra-fast bitwise distance calculations.

Architect’s Tip: Moving from FLOAT32 to BINARY can accelerate distance computations by up to 40x, though it requires models designed for binary quantization.

 

3. Dense vs. Sparse Vectors

Oracle 23ai supports both modern embedding architectures:

  • Dense Vectors: Most common for semantic search (e.g., BERT, Ada). Every dimension has a value.
  • Sparse Vectors: Used for keyword-sensitive searches (e.g., SPLADE). Only non-zero values are stored, saving massive amounts of space in high-dimensional vocabularies.

 

4. Why Native Integration Matters?

As an Oracle professional, the biggest advantage I see is the Converged Database approach. By using a native data type instead of a separate vector database:

  1. ACID Compliance: Your vectors stay in sync with your relational data.
  2. Security: Oracle’s Virtual Private Database (VPD) and Transparent Data Encryption (TDE) apply to vectors automatically.
  3. Unified Queries: You can join a VECTOR column with a JSON document or a relational MARKET_DATA table in a single SQL statement.

 

5. Similarity Search in Action

Once stored, we use specialized distance functions to find "meaning" rather than keywords:

  • COSINE_DISTANCE: Best for text/natural language.
  • EUCLIDEAN_DISTANCE: Ideal for spatial or image data.
  • DOT_PRODUCT: Used for normalized vectors.

 

Conclusion

The VECTOR data type is the foundation of Retrieval-Augmented Generation (RAG) within the Oracle ecosystem. For architects, it simplifies the stack by eliminating the need for complex ETL pipelines between the database and external AI tools.

 

Tuesday, August 4, 2020

ORA-01031: insufficient privileges while connecting to database as sysdba


ORA-01031: insufficient privileges while connecting to database as sysdba


Applies to:
            Oracle Database 11.2.0.4
            Oracle Linux 5 and above

Description:
After hardware failure of our Test server, we restore the backup of Test server on new machine. We are unable to connect/start the database. We are facing the error “ORA-01031: insufficient privileges while connecting to database as sysdba” on our Test database server.

Solution:
            This is a very common or generic error that can occur after the new oracle database software installation. There are multiple reasons of this error. I describe the only one which belongs to me.
After some research I found that my user did not belong to dba group. Issue the following command to add the user “oratest” to dba group:
[root@oradb ~]# usermod -a -G dba oratest

Now connect the oracle database from oratest user:
[oratest@oradb ~]# sqlplus / as sysdba



Its working fine now.
           


Your comments, especially which will help us improve the functionality, will be greatly appreciatedJ
You are requested to follow my Blog.

Monday, August 26, 2019

ORA-01000: Maximum Open Cursors Exceeded


Error ORA-01000: Maximum Open Cursors Exceeded



Applies to:
            Oracle Database 11.2.0.4

Description:
We are facing the error “ora-01000: maximum open cursors exceeded” on our production database server. The error is related to cursor limit, open_cursors exceeding its default value.

Solution:
            To fix the issue we can either kill the inactive sessions which have open the large number of cursors or increase the value of open_cursors.

To check the open_cursors limit:


Execute the following query to list the top 10 sessions which are currently opening most cursors:
SQL> select * from(select sess.sid, stan.name, sess.value
from v$sesstat sess, v$statname stan
where sess.statistic# = stan.statistic#
and stan.name like ‘%opened cursors current%’
order by desc 3)
where rownum < 11;

Now we check the detail of above sessions open too many cursors:
SQL> select sid, serial#, event, seconds_in_wait, blocking_session, prev_sql_id
            from v$session where sid=&sid;

We can kill the session having inactive status by using the below command:
SQL> alter system kill session ‘sid,serial#’ immediate;

The other way to fix the problem to increase the value of open_cursors parameter as below:
SQL> alter system set open_cursors=1000 scope=both;


It’s working fine now.
           


Your comments, especially which will help us improve the functionality, will be greatly appreciatedJ
You are requested to follow my Blog

Tuesday, June 11, 2019

EXP-00091 Exporting Questionable Statistics


EXP-00091 Exporting Questionable Statistics

Applies to:
            Oracle Enterprise Linux – Version: 7
            Oracle Database 11.2.0.4

Description:
After upgrade Oracle Database from 11.2.0.1.0 to 11.2.0.4.0, when export database user dump face the following error:
“EXP-00091 Exporting questionable statistics”

Solution:
            I have found that the error occur when try to export table data with its related optimizer statistics. To fix the error run export with parameter “statistics=none”:

exp scott/tiger file=exp_scott.dmp statistics=none


           

Your comments, especially which will help us improve the functionality, will be greatly appreciatedJ

How to Extend Swap space on LVM Disk Linux

How to Extend Swap space on LVM Disk Linux   Applies to:             Oracle Database 12.2             Oracle Linux 7 Description: ...