• Ansible Oracle Database RU 24

    Automate Oracle Database Patching with Ansible Playbooks – 19.24

    This post discusses the introduction of a new patching feature (one-button patching) in the AutoUpgrade tool, now at version 24.7, which simplifies the database release update process. Although currently, it only supports single-instance homes and Oracle Database 19c on Linux, the Oracle Database Upgrade Team will be addressing additional requirements in future versions. Since automating patching is essential for large environments to ensure updates and compliance, I have provided a comprehensive set of Ansible playbooks for database patching(19.24) on my GitHub repo, which can help promote efficiency and reduce errors in the patching process.


  • SYSAUX Tablespace Growth Analysis

    SYSAUX Tablespace Growing Rapidly due to SCHEDULER$_JOB_OUTPUT Table and ORA-01031 Error in Automatic segment advisor task

    The SYSAUX tablespace unexpectedly grew, primarily due to the SYS.SCHEDULER$_JOB_OUTPUT table, which consumed 14 GB. The V$SYSAUX_OCCUPANTS view was utilized to identify space usage issues, revealing excessive data generated from the DBMS_OUTPUT.PUT_LINE command in a loop. After performing purge and truncate operations, log records generated with DBMS_OUTPUT.PUT_LINE ceased; however, a log record related to the Automatic Segment Advisor task showed that insufficient privileges (ORA-01031) occurred daily. Granting explicit CREATE TABLE permission resolved the issue, ensuring the proper functionality of the Automatic Segment Advisor.


  • ORA-13029

    A 3D data with a 2D SRID may result with ORA-13029 #JoelKallmanDay

    This post discusses the importance of correctly storing 3D geometry with an appropriate 3D Spatial Reference Identifiers (SRIDs) following Oracle’s upgrade to version 19c. It details the ORA-13029 error encountered when a 3D data stored with a 2D SRID and provides solutions, including applying patch 31022826 and setting event 54713. Alternatively, it suggests updating metadata with an equivalent 3D SRID and recreating the spatial index as another solution.


  • Send email using notify and listen in PostgreSQL

    How to send mail from PostgreSQL database

    This content discusses methods for sending emails directly from a PostgreSQL database. Three approaches are highlighted: using PostgreSQL extensions like pgMail or pgSmtp, creating custom stored procedures with untrusted languages, and employing the LISTEN/NOTIFY mechanism to communicate with external services. The LISTEN/NOTIFY method is implemented in detailed steps: configuring Postfix for email delivery, creating a PostgreSQL table for email records, setting up a trigger, writing a Python listener, creating a systemd service, and managing logs. This solution provides a reliable method for managing emails directly from the database.


  • ACFS does not use inode architecture

    Oracle ACFS File System: Inode Limitations Explained

    This content discusses an issue with running out of inodes on a directory in the ACFS (Oracle Automatic Storage Management Cluster File System) file system after a large table export. Generally, even with sufficient disk space, a high number of small files can exhaust available inodes, prompting alerts. In this case, we have seen that ACFS doesn’t have a pre-allocated inode table; rather, it estimates inodes based on available space, leading to confusion during inode checks.


  • Improve RAC Network Performance

    Troubleshooting gc cr/current block lost events and Improving Oracle RAC Network Performance

    The Enterprise Manager Cloud Control’s Overview of Incidents and Problems section identified ‘Metrics Global Cache Blocks Lost at XXX’ for a relatively new database, suggesting a potential network issue, likely related to the private network interfaces. Troubleshooting was guided by My Oracle Support documents, which outline common causes and initial diagnostic steps. Further actions included making adjustments across nearly all OSI Model Layers; such as enabling jumbo frames, tuning NIC buffers, adjusting IP fragmentation parameters, and optimizing socket buffers as well as refining the database layer. These measures collectively reduced ‘gc block lost’ events to nearly zero.