Tuesday, August 19, 2025

Optimizer Regression After Upgrade? Fix Slow Queries Using DBMS_SQLDIAG.CREATE_SQL_PATCH

 







Intro


We are in the era of AI, where increasing processing power is critical to managing rapidly growing and complex workloads. As enterprise systems continue to scale, database performance challenges have become increasingly common, especially under high-throughput operations. 

From my experience, Oracle Database stands out as the most flexible and robust platform for identifying, analyzing, and resolving performance issues, thanks to its advanced tooling and diagnostic capabilities.

Recently, we encountered a performance bottleneck in an Exadata Cloud@Customer (ExaCS) environment, where the database was processing a high volume of insert operations originating from a Kafka data stream.

In this case, the application had been running on Oracle 11g for more than eight years without major issues. However, after migrating to a newer database version, we faced multiple performance hiccups. While upgrades are usually straightforward, the optimizer behavior changes introduced in the newer version made performance tuning trickier and more time-consuming. Handling execution plan shifts and adapting SQL performance required careful analysis and fine-tuning to stabilize the environment.

It’s not easy to introduce changes directly on a long-running production database, especially one supporting critical business operations. In this example, most queries performed well under the 19c optimizer, but we encountered one major query that experienced significant slowness and failed to complete within the expected time window. Troubleshooting required deep investigation, plan comparisons, and precise tuning to restore performance without disrupting stable workloads.

In this blog, I will demonstrate how we resolved performance issues for specific queries without making any changes to the application code. The DBMS_SQLDIAG.CREATE_SQL_PATCH procedure provides an effective way to apply optimizer hints and fix problematic SQL statements without modifying the original SQL text.

For more details, you can also refer to Oracle’s documentation:
How to Create a SQL Patch to Add Hints to Application SQL Statements (Doc ID 1931944.1).

In our case, the application had been running on Oracle 11g for more than eight years.
After upgrading to Oracle 19c, most queries performed better with the new optimizer, but a few critical queries started experiencing severe performance issues.

Introducing changes directly into a long-running production database is not easy.
For one problematic query, switching the optimizer behavior back to 11.2.0.4 resolved the issue, and we achieved this without modifying the application code — using a SQL Patch.

Sample SQL Patch Creation.

Here’s an example of how to create a SQL Patch using the DBMS_SQLDIAG.CREATE_SQL_PATCH procedure:


DECLARE
  v_patch_name VARCHAR2(30);
BEGIN
  v_patch_name := DBMS_SQLDIAG.CREATE_SQL_PATCH (
    sql_id       => 'your_sql_id',
    hint_text    => '/*+ USE_HASH_JOIN */',
    name         => 'patch_use_hash',
    description  => 'Forcing hash join to improve performance'
  );
END;
/
  


Key Parameters


Parameter    Description
sql_id           The SQL_ID from AWR/SQL Monitor of the problematic query
hint_text      The optimizer hints you want to inject
name               A custom name for your SQL patch
description  A note to describe the purpose


Example: Forcing 11.2.0.4 Optimizer for a Specific SQL.

In our case, we applied the 11.2.0.4 optimizer behavior to a specific SQL by using the following:


VARIABLE x VARCHAR2(100);
EXEC :x := DBMS_SQLDIAG.CREATE_SQL_PATCH(
  sql_id      => 'grnbsvudp26j3',
  hint_text   => 'optimizer_features_enable(''11.2.0.4'')',
  name        => 'SQL_Patch_grnbsvudp26j3'
);
    


How to Validate If the SQL Is Using the New Optimizer

You can confirm that the SQL Patch has been applied using:

SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR(FORMAT=>'OUTLINE BASIC NOTE')); 

Sample Execution Plan Output

SQL> perf_dplan_cursor_outline.sql
Enter value for SQL_ID : grnbsvudp26j3
Enter Child Number (Default is 0) :

+------------------------------------------------------------------------+
| Report   : Execution Plan for SQL_ID in Cursor Cache                   |
| Instance : EXADB1                                                     |
| SQL_ID   : grnbsvudp26j3                         |
+------------------------------------------------------------------------+

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
EXPLAINED SQL STATEMENT:
------------------------

Plan hash value: 2610349306

------------------------------------------------------------------------
| Id  | Operation                            | Name                    |
------------------------------------------------------------------------
|   0 | INSERT STATEMENT                     |                         |
|   1 |  LOAD TABLE CONVENTIONAL             | TEST_ASSET_ALERT_HISTORY |
|   2 |   CONCATENATION                      |                         |
|   3 |    NESTED LOOPS                      |                         |
|   4 |     NESTED LOOPS                     |                         |
|   5 |      TABLE ACCESS BY INDEX ROWID     | TEST_ASSET_WORK          |
|   6 |       INDEX RANGE SCAN               | IDX_JAW_JID_CID_JEID    |
|   7 |      PARTITION RANGE ITERATOR        |                         |
|   8 |       INDEX RANGE SCAN               | IDX_DGH_CAID_ET_FID_TT  |
|   9 |     TABLE ACCESS BY LOCAL INDEX ROWID| TEST_HISTORY        |
|  10 |    NESTED LOOPS                      |                         |
|  11 |     NESTED LOOPS                     |                         |
|  12 |      TABLE ACCESS BY INDEX ROWID     | TEST_ASSET_WORK          |
|  13 |       INDEX RANGE SCAN               | IDX_JAW_JID_CID_JEID    |
|  14 |      PARTITION RANGE ITERATOR        |                         |
|  15 |       INDEX RANGE SCAN               | IDX_DGH_CAID_ET_FID_TT  |
|  16 |     TABLE ACCESS BY LOCAL INDEX ROWID| TEST_HISTORY        |
------------------------------------------------------------------------

Outline Data
-------------

  /*+
      BEGIN_OUTLINE_DATA
      IGNORE_OPTIM_EMBEDDED_HINTS
      OPTIMIZER_FEATURES_ENABLE('11.2.0.4')
      DB_VERSION('19.1.0')
      ALL_ROWS
      OUTLINE_LEAF(@"SEL$58A6D7F6")
      MERGE(@"SEL$1" >"SEL$2")
      OUTLINE_LEAF(@"INS$1")
      OUTLINE_LEAF(@"SEL$58A6D7F6_1")
      USE_CONCAT(@"SEL$58A6D7F6" 8 OR_PREDICATES(8) PREDICATE_REORDERS((16 4)
              (8 6) (9 7) (10 8) (11 9) (12 10) (13 11) (14 12) (15 13) (4 14) (6 15)
              (7 16)))
      OUTLINE_LEAF(@"SEL$58A6D7F6_2")
      OUTLINE(@"SEL$2")
      OUTLINE(@"SEL$1")
      FULL(@"INS$1" "TEST_ASSET_ALERT_HISTORY"@"INS$1")
INDEX_RS_ASC(@"SEL$58A6D7F6_1" "A"@"SEL$1" ("TEST_ASSET_WORK"."JOB_ID"
"JOB_ASSET_WORK"."COMPANY_ID" "JOB_ASSET_WORK"."JOB_EVENT_ID")) INDEX(@"SEL$58A6D7F6_1" "DH"@"SEL$1" ("TEST_HISTORY"."COMPANY_ASSET_ID" "TEST_HISTORY"."EVENT_TIME"
"TEST_HISTORY"."FACILITY_ID" "TEST_HISTORY"."TRANSACTION_TYPE"))
INDEX_RS_ASC(@"SEL$58A6D7F6_2" "A"@"SEL$58A6D7F6_2" ("TEST_ASSET_WORK"."JOB_ID" "JOB_ASSET_WORK"."COMPANY_ID"
"TEST_ASSET_WORK"."JOB_EVENT_ID"))
INDEX(@"SEL$58A6D7F6_2" "DH"@"SEL$58A6D7F6_2" ("TEST_HISTORY"."COMPANY_ASSET_ID" "TEST_HISTORY"."EVENT_TIME"
"TEST_HISTORY"."FACILITY_ID" "TEST_HISTORY"."TRANSACTION_TYPE"))
LEADING(@"SEL$58A6D7F6_1" "A"@"SEL$1" "DH"@"SEL$1") LEADING(@"SEL$58A6D7F6_2" "A"@"SEL$58A6D7F6_2" "DH"@"SEL$58A6D7F6_2") USE_NL(@"SEL$58A6D7F6_1" "DH"@"SEL$1") NLJ_BATCHING(@"SEL$58A6D7F6_1" "DH"@"SEL$1") USE_NL(@"SEL$58A6D7F6_2" "DH"@"SEL$58A6D7F6_2") NLJ_BATCHING(@"SEL$58A6D7F6_2" "DH"@"SEL$58A6D7F6_2") END_OUTLINE_DATA */ Note ----- - SQL patch "SQL_Patch_grnbsvudp26j3" used for this statement 87 rows selected. SQL>
Key Highlights from the Execution Plan: Optimizer hint applied successfully:

Summary

  • Problem: After upgrading to 19c, a few queries slowed down due to optimizer changes.

  • Solution: Created a SQL Patch to apply legacy optimizer features.

  • Advantage: No changes were made to the application code.

  • Result: Query performance was restored to expected levels.


Conclusion

Handling performance issues in long-running Oracle databases, especially after major version upgrades, can be challenging. Optimizer behavior often changes between versions, and while most queries benefit from the enhancements, certain critical queries may experience unexpected regressions.

In such scenarios, DBMS_SQLDIAG.CREATE_SQL_PATCH provides a powerful, non-intrusive solution to fix problematic queries without making any application changes. By injecting optimizer hints or enforcing a specific optimizer version, we can stabilize performance quickly and ensure business continuity.

This approach not only reduces risk but also saves significant time during troubleshooting, particularly in production environments where application changes may involve lengthy testing cycles. SQL patches act as a bridge between performance optimization and application stability, making them an essential tool for every Oracle DBA.

Thursday, August 7, 2025

Performance issue : Handling SQL Version Count Issues with High-Volume Kafka Inserts on ExaCS

 






Intro 

We are in the era of AI, where increasing processing power is crucial for handling growing and complex workloads. As enterprise systems continue to scale, database performance challenges become increasingly common, especially under high-throughput operations. In my experience, no other database platform matches Oracle’s flexibility and tooling when it comes to identifying and resolving such performance issues.

Recently, we encountered a performance bottleneck in an Exadata Cloud@Customer (ExaCS) environment, where the database was handling a high volume of insert operations coming from a Kafka stream.

In this article, I’ll walk through the technical details of the SQL version count issue we faced and the solution we implemented to stabilize performance.

The Issue: Excessive SQL Versioning and Hard Parses

The ExaCS database was receiving a continuous stream of dynamically structured INSERT statements from Kafka. The column structure of these inserts varied significantly; some contained 100 columns, while others had up to 150. This variation was ongoing and unpredictable.

Due to these structural differences, Oracle’s optimizer treated each statement as a unique SQL. As a result, the database began to experience:
  • Excessive hard parses

  • High CPU utilization

  • Shared pool contention and pressure

Even though we were running Oracle 19.24, which includes enhancements to SQL plan management and version count handling, the optimizer still created new cursor versions for each structurally distinct INSERT, which led to rapid cursor growth and degraded overall performance.


                                    
                                        Figure 1: AWR report for Oracle SQLID version count


Temporary Workaround: Manual Flushing of High Version Count Cursors

As an immediate mitigation step, we identified the SQLs with high version counts and manually flushed them from the shared pool using their memory IDs. This helped temporarily relieve pressure on CPU and memory by:

  • Reducing shared pool bloat

  • Freeing up memory consumed by excessive cursor versions

  • Preventing further hard parsing on the same overloaded SQL

However, it's important to note that this is only a temporary workaround. The relief is short-lived, as the issue resurfaces once new INSERT statements with varying structures continue streaming in from Kafka.

    To clarify, this issue has not been resolved in Oracle 19.24, despite the version including several recent patches and updates. Here’s the output from the environment confirming the exact patch level:
    
    [oracle@exaprd01-node01 ~]$ $ORACLE_HOME/OPatch/opatch lspatches
    34697081;NOT SHIPPING LIBAUTH_SDK_IAM.SO IN 23 SHIPHOME INSTALL
    36538667;JDK BUNDLE PATCH 19.0.0.0.240716
    36414915;OJVM RELEASE UPDATE: 19.24.0.0.240716 (36414915)
    36587798;OCW RELEASE UPDATE 19.24.0.0.0 (36587798)
    36582781;Database Release Update : 19.24.0.0.240716 (36582781)
    OPatch succeeded.
    [oracle@exaprd01-node01 ~]$
    


    To monitor and identify SQL statements with high version counts typically those contributing to shared pool pressure, you can use the following query:
    
    SELECT version_count, sql_id, sql_text FROM   v$sqlarea WHERE  version_count >  512;
    
    For any SQLs with unusually high version counts, manual flushing can be performed as a short-term mitigation step using the following commands:

    select inst_id,ADDRESS, HASH_VALUE from V$SQLAREA where SQL_ID like '&sqlid';
    exec sys.DBMS_SHARED_POOL.PURGE ('-ADDRESS-, -HASH-VALUE-', 'C');
    

    Note: Use manual flushing with caution, especially in production environments, as it may impact performance for frequently executed queries.

    Permanent Solution

    To address the high version count issue more permanently, Oracle provides specific guidance in the following My Oracle Support note:

    High Version Counts For SQL Statements (>1024) Post Upgrade To 12.2 and Above Causing Database Slow Performance Doc ID 2431353.1

    As per the recommendation, you should add the following initialization parameter _cursor_obsolete_threshold = <recommended_value>

    This parameter helps control the number of obsolete child cursors and can significantly reduce version count growth, improving shared pool performance and overall database stability.

    If you’re running in a RAC environment, apply this change and restart the database instances in a rolling fashion to avoid downtime.

    
    alter system set “_cursor_obsolete_threshold”=1024 scope=spfile;
    

    Conclusion

    This issue showed us how dynamic SQL from systems like Kafka can create serious performance problems, even in powerful environments like Exadata Cloud@Customer. Because each INSERT had a slightly different structure, Oracle treated them as new statements, leading to too many cursor versions, high CPU usage, and shared pool pressure.

    Even though we were on Oracle 19.24, the problem still occurred. The key was identifying the root cause and taking action, monitoring version counts, applying a temporary fix, and then implementing a permanent solution using the _cursor_obsolete_threshold parameter.

    In short, managing SQL behavior and understanding how Oracle handles different workloads is critical for keeping your systems running smoothly, especially in today’s fast-moving, high-volume environments.

    Friday, August 1, 2025

    OLVM : Expanding Fiber Channel (FC) Support in OLVM Using a Data Domain Storage System

     




    Intro

    We are living in a data-driven era where AI is advancing rapidly, placing even greater demands on processing power and virtualized environments. While cloud adoption continues to grow—largely fueled by virtualization—many organizations still rely heavily on their on-premises virtual infrastructure alongside cloud technologies.

    Oracle Linux Virtualization Manager (OLVM) is quickly emerging as a strong alternative, addressing key gaps left by other platforms like VMware. With Broadcom tightening its licensing policies, many organizations are now considering a move away from VMware. For those looking to transition, OLVM stands out as a reliable and cost-effective option, backed by Oracle’s 24/7 enterprise-grade support.

    In this article, I’ll walk you through how to expand Fiber Channel (FC) support in OLVM using a Data Domain storage system.

    Document Reference:

    OLVM: Expanding the Size of a Storage Domain (FC/iSCSI) (Doc ID 2881013.1)

    Steps to increase the FC data domain :

    • Increase the Storage LUN at the SAN level.
    • On all KVM hypervisors where the storage is mounted, execute the following command:/usr/bin/rescan-scsi-bus.sh
    • Increase the size of the Data Domain from the OLVM storage side.


    This is a sample output from executing /usr/bin/rescan-scsi-bus.sh.

    Please ensure any issues are resolved before proceeding with the disk size increase from the OLVM side.

    Sample output :


    
    [root@kvm01 ~]# /usr/bin/rescan-scsi-bus.sh
    Scanning SCSI subsystem for new devices
    Scanning host 0 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
     Scanning for device 0 0 0 0 ...
    OLD: Host: scsi0 Channel: 00 Id: 00 Lun: 00
          Vendor: Generic- Model: SD/MMC CRW       Rev: 1.00
          Type:   Direct-Access                    ANSI SCSI revision: 06
    .Scanning host 1 for  all SCSI target IDs, all LUNs
     Scanning for device 1 0 0 0 ...
    OLD: Host: scsi1 Channel: 00 Id: 00 Lun: 00
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 0 1 ...
    OLD: Host: scsi1 Channel: 00 Id: 00 Lun: 01
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 0 2 ...
    OLD: Host: scsi1 Channel: 00 Id: 00 Lun: 02
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 0 3 ...
    OLD: Host: scsi1 Channel: 00 Id: 00 Lun: 03
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 0 5 ...
    OLD: Host: scsi1 Channel: 00 Id: 00 Lun: 05
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 0 9 ...
    OLD: Host: scsi1 Channel: 00 Id: 00 Lun: 09
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 0 10 ...
    OLD: Host: scsi1 Channel: 00 Id: 00 Lun: 10
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 0 11 ...
    OLD: Host: scsi1 Channel: 00 Id: 00 Lun: 11
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 1 0 ...
    OLD: Host: scsi1 Channel: 00 Id: 01 Lun: 00
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 1 1 ...
    OLD: Host: scsi1 Channel: 00 Id: 01 Lun: 01
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 1 2 ...
    OLD: Host: scsi1 Channel: 00 Id: 01 Lun: 02
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 1 3 ...
    OLD: Host: scsi1 Channel: 00 Id: 01 Lun: 03
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 1 5 ...
    OLD: Host: scsi1 Channel: 00 Id: 01 Lun: 05
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 1 9 ...
    OLD: Host: scsi1 Channel: 00 Id: 01 Lun: 09
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 1 10 ...
    OLD: Host: scsi1 Channel: 00 Id: 01 Lun: 10
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 1 0 1 11 ...
    OLD: Host: scsi1 Channel: 00 Id: 01 Lun: 11
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
    Scanning host 2 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
     Scanning for device 2 0 0 0 ...
    OLD: Host: scsi2 Channel: 00 Id: 00 Lun: 00
          Vendor: HPE      Model: Smart Adapter    Rev: 3.53
          Type:   Enclosure                        ANSI SCSI revision: 05
     Scanning for device 2 1 0 0 ... 0 ...
    OLD: Host: scsi2 Channel: 01 Id: 00 Lun: 00
          Vendor: HPE      Model: LOGICAL VOLUME   Rev: 3.53
          Type:   Direct-Access                    ANSI SCSI revision: 05
     Scanning for device 2 2 0 0 ... 0 ...
    OLD: Host: scsi2 Channel: 02 Id: 00 Lun: 00
          Vendor: HPE      Model: P408i-a SR Gen10 Rev: 3.53
          Type:   RAID                             ANSI SCSI revision: 05
    Scanning host 3 for  all SCSI target IDs, all LUNs
     Scanning for device 3 0 0 0 ...
    OLD: Host: scsi3 Channel: 00 Id: 00 Lun: 00
          Vendor: DGC      Model: VRAID            Rev: 0532
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 3 0 0 1 ...
    OLD: Host: scsi3 Channel: 00 Id: 00 Lun: 01
          Vendor: DGC      Model: VRAID            Rev: 0532
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 3 0 0 2 ...
    OLD: Host: scsi3 Channel: 00 Id: 00 Lun: 02
          Vendor: DGC      Model: VRAID            Rev: 0532
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 3 0 1 0 ...
    OLD: Host: scsi3 Channel: 00 Id: 01 Lun: 00
          Vendor: DGC      Model: VRAID            Rev: 0532
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 3 0 1 1 ...
    OLD: Host: scsi3 Channel: 00 Id: 01 Lun: 01
          Vendor: DGC      Model: VRAID            Rev: 0532
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 3 0 1 2 ...
    OLD: Host: scsi3 Channel: 00 Id: 01 Lun: 02
          Vendor: DGC      Model: VRAID            Rev: 0532
          Type:   Direct-Access                    ANSI SCSI revision: 04
    Scanning host 4 for  all SCSI target IDs, all LUNs
     Scanning for device 4 0 0 0 ...
    OLD: Host: scsi4 Channel: 00 Id: 00 Lun: 00
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 0 1 ...
    OLD: Host: scsi4 Channel: 00 Id: 00 Lun: 01
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 0 2 ...
    OLD: Host: scsi4 Channel: 00 Id: 00 Lun: 02
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 0 3 ...
    OLD: Host: scsi4 Channel: 00 Id: 00 Lun: 03
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 0 5 ...
    OLD: Host: scsi4 Channel: 00 Id: 00 Lun: 05
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 0 9 ...
    OLD: Host: scsi4 Channel: 00 Id: 00 Lun: 09
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 0 10 ...
    OLD: Host: scsi4 Channel: 00 Id: 00 Lun: 10
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 0 11 ...
    OLD: Host: scsi4 Channel: 00 Id: 00 Lun: 11
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 1 0 ...
    OLD: Host: scsi4 Channel: 00 Id: 01 Lun: 00
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 1 1 ...
    OLD: Host: scsi4 Channel: 00 Id: 01 Lun: 01
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 1 2 ...
    OLD: Host: scsi4 Channel: 00 Id: 01 Lun: 02
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 1 3 ...
    OLD: Host: scsi4 Channel: 00 Id: 01 Lun: 03
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 1 5 ...
    OLD: Host: scsi4 Channel: 00 Id: 01 Lun: 05
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 1 9 ...
    OLD: Host: scsi4 Channel: 00 Id: 01 Lun: 09
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 1 10 ...
    OLD: Host: scsi4 Channel: 00 Id: 01 Lun: 10
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
     Scanning for device 4 0 1 11 ...
    OLD: Host: scsi4 Channel: 00 Id: 01 Lun: 11
          Vendor: DGC      Model: VRAID            Rev: 0430
          Type:   Direct-Access                    ANSI SCSI revision: 04
    Scanning host 5 for  all SCSI target IDs, all LUNs
    0 new or changed device(s) found.
    0 remapped or resized device(s) found.
    0 device(s) removed.
    
    


    Once the rescan is completed on all KVM hosts, the next step is to increase the Data Domain from the storage side.

    Keep in mind that even if you extend the LUN at the SAN level, the change will not automatically reflect in the Data Domain.

    From OLVM : Navigate to Storage >  Storage Domain > (Select respective data domain) > Select Manage domain as higlighted below.

                                                           
                                                        Figure 1 : Select Manage Domain

    The Manage Windows interface will display the updated size, allowing you to increase it as needed.


                                                   Figure 2 : Manage window

    Now, select the desired size and click OK to apply the increase.



                                                   Figure 3: Increase in size.

    Now Data Domain will reflect the new size.


    Figure: Data domain after an increase in size. 

    Conclusion 

    In today's evolving IT landscape, organizations are under increasing pressure to modernize infrastructure while maintaining flexibility, control, and cost-efficiency. As AI and data workloads grow, the need for robust, scalable virtualization solutions becomes even more critical.

    With Broadcom’s licensing changes pushing many to reconsider their reliance on VMware, OLVM offers a compelling path forward. It not only fills the functionality gaps but also provides enterprise-grade reliability, backed by Oracle’s 24/7 support.

    Whether you're planning a full migration or building out a hybrid environment, OLVM is well-positioned to meet the demands of modern workloads. In this article, we explored how to extend Fiber Channel (FC) capabilities in OLVM using Data Domain, helping organizations take a step forward in building a resilient and future-ready virtual infrastructure.


    Optimizer Regression After Upgrade? Fix Slow Queries Using DBMS_SQLDIAG.CREATE_SQL_PATCH

      Intro We are in the era of AI, where increasing processing power is critical to managing rapidly growing and complex workloads....