Navigation Bar

Saturday, July 19, 2025

The Oracle Story

Oracle corporation, initially called Software Development Laboratories, was founded in 1977 by Larry Elison and Bob Miner, computer programmers at Ampex Corporation, an American electronics company along with Ed Oates, Elison's supervisor at Ampex. The idea for the relational database was inspired by a paper by Edgar F Codd that outlined a relational model. They had the vison of making this data management concept commercial as it arranged large amounts of data efficiently and also enabled quick retrieval. Thus the trio started developing the program based on Codds theory and in 1979 the company released Oracle, the earliest commercial relational database program using structured query language. 




Once he learned the skills and concepts for relational databases Larry Ellison began to pursue his dream to start a data management company now know as Oracle. In the early years it was in competition with IBM which was also in the race to develop a relational database at that time. The IBM database is IBM DB2. But of the two Oracle is more widely used and popular.

Its first customer was the US Air Force which used the program at its air force base.

Oracle has grown from its humble beginnings as one of a number of databases available in the 1970s to the overwhelming market leader today.

In 1978 the first Oracle software was born, written in assembly language running on PDP-11 under RSX-11 in 128K memory. The first Oracle version was never released and the implementation separated oracle code from user code. The name Oracle came from the code name of a CIA project that the three original founders Elison, Bob and Ed had worked on in Amex Corporation.



In the year 1979,they offered the first commercial SQL relational database management system. The second version of Oracle released ran on PDP-11 hardware and they named it as Oracle v2 to capture more customers and they starting promoting it on the VAX platform.
In 1984 the database software was ported to the PC platform with the MS-DOS version 4.1.4 running on 512K memory.
In 1985 it was released to operate in client-server mode.

Initial funding was through personal funding of its founders and Venture Capitalists and it went public in 1986 and was then financed through its IPO and since then it has not raised any additional funds through Venture Capitalist or private investors.

In 1987 UNIX-based Oracle applications were introduced and a year later Oracle v6 was released with hot backups, embedded PL/SQL procedural engine within the database and support for row-level locking. In 1988 Oracle induced PL/SQL. The growth in the company led to relocation of the world headquarters to Redwood Shores, California in 1989 and revenues reaching $584 million.

In 1989, Oracle moved its headquarters to Redwood City, California. 

In 1995, Oracle Systems Corporation changes its name to Oracle Corporation and it became the first large software company to report an internet strategy and offered the first 64-bit RDBMS.
In June 1998 Oracle v8 was released with internet technology, support for terabytes of data and SQL object technology. 

In 1998 they announced integrating a JVM with the oracle database and in September of that year Oracle 8i was release, with i standing for internet. 
In 1999 Oracle offered its first DBMS with XML support.

In 2010 Oracle Corporation acquired Sun Microsystems After the merger Oracle owned Sun's hardware product lines as well as Sun's software product lines including the JAVA programming language.
My tryst with JAVA

Oracle Corporation has now diversified into a range of services like Oracle cloud services, Oracle middleware, Oracle Beehive, Financial services, hardware systems etc.
Middleware includes weblogic server which is a J2EE server and Oracle fusion middleware.
Oracle applications include ERP, CRM and Human Capital Management HCM.
Cloud services include SaaS Software as a service, PaaS Platform as a Service, IaaS  Infracture as a Service and DaaS Database as a Service.

More on the history and the growth of the relational database can be found in the articles below

Key Events and Milestones 

Thought for the day
Courage to continue matters more than success or failure.
--Winston Churchill

ASM Cluster File System (ACFS)

 Prior to Oracle 11.2, ASM was used to store database related files, but was not suitable to act as a general purpose file system to store Oracle binaries, core dump files, parameter or trade files. With the introduction of grid infrastructure in Oracle 11.2, ACFS also got introduced as part of grid. ACFS is a POSIX compliant general purpose cluster file system built on top of the ASM Dynamic Volume Manager (ADVM). ADVM provides so called volumes on which the ACFS can be created. An ADVM volume is created as part of an ASM disk group. Volumes are not partitioned which is equivalent to using LVM in a linux system. 

In addition to using ACFS for shared Oracle Homes, it is used to store application data that previously could not be stored in ASM. For instance, external tables refer to directory files to load data from the file system to the database. If this directory file exists on the file system on the first node, a user trying to access the external table from the third node will not be able to do it. If we move this file to a directory on the ACFS mount, this problem is solved as the ACFS mounts are shared across all nodes.

Creating an ACFS using ACMCA

First create a diskgroup as described in the blog below.

Adding a new Shared disk group in RAC in VM Workstation 10

The diskgroup can then be used to store an ADVM volume. 
In the Volumes tab, click on the CREATE button.

In the new screen that comes, we specify a name for the ADVM (DGVOL1) and place the diskgroup we created on this volume. Unlike a classical LVM on a linux file system, we do not have to partition the volume It can be dynamically resized. You can optionally specify a stripe width and also the number of volumes in the stripe set. By default these default to 128K and 4. On clicking OK, ASCMA creates the volume and displays it on the overview screen. This volume needs an ACFS file system.

Click on the ASM cluster file system tab. Here the user has two options. Either specify the ACFS home as a shared home for the Oracle RDBMS installation for which 4.6 GB is required or create a general purpose file system. When creating a general purpose file system, you have to specify a mount point. The ACFS will be mounted on the cluster node. Here you have the option of registering the mount point. If you register the mount point, the file system is mounted automatically when the grid infrastructure starts. If you do not register the mount point it can always be done later.

Creating and mounting an ACFS using the command line
sqlplus / as sysasm
SQL> CREATE DISKGROUP DG2 EXTERNAL REDUNDANCY DISK 'ORCL:DG2';
Diskgroup created. 

Using the ALTER DISKGROUP cmd you can set the attributes like compatible.asm and compatible.advm based on the version of oracle.

Mount the diskgroup on all the nodes with the following command

$ srvctl start diskgroup –g DG2
Once the diskgroup is created, you can create an ADVM volume and add it to the diskgroup created with the following command.
SQL> Alter diskgroup DG2 add volume VOL2 size 1G mirror strip _width 128k stripe_columns 4;
You can see the details of the volume created from the v$asm_volume view. This view will give the details of the volume device created. Lets say it is /dev/asm/VOL2-777 and the volumne_name is ACFSDGVOL2
 SQL} SELECT volume_name, state, volume_device FROM V$ASM_VOLUME 
     WHERE volume_name ='ACFSDGVOL2';
volume_namestatevolume_device
ACFSDGVOL2ENABLED/dev/asm/VOL2-777

You can also get the volume device information using asmcmd

ASMCMD> volinfo -a
Diskgroup Name: DATA1
         Volume Name: ACFSDGVOL2
         Volume Device: /dev/asm/VOL2-777
         State: ENABLED
         Size (MB): 5120
         Resize Unit (MB): 32
         Redundancy: UNPROT
         Stripe Columns: 4
         Stripe Width (K): 128
         Usage:
         Mountpath:
The next step is to create a filesystem on the volume just created.
$/sbin/mkfs -t acfs /dev/asm/VOL2-777
We then create a mount point to mount the file system.
$mkdir $ORACLE_BASE/acfsmounts
$mkdir $ORACLE_BASE/acfsmounts/dg2_vol2
Login as root user to mount the filesystem created on the mount point.
$mount –t acfs  /dev/asm/VOL2-777  /u01/app/oracle/acfsmounts/dg2_vol2
You can register the acfs with the mount registry with the following command.
$ /sbin/acfsutil  registry  –a  /dev/asm/VOL2-777   /u01/app/oracle/acfsmounts/dg2_vol2
You can view the details of the filesystem created with the following command.
$ /sbin/acfsutil info fs
This filesystem can then be used like any normal linux filesystem. df -k will give the details of the filesystem and the mountpoint. Any directories or files created in the filesystem can be accessed on all other nodes of this filesystem.
Once the filesystem is created and mounted, ensure that the permissions are set to allow access to the filesystem for the appropriate users.
# chown -R oracle:dba /u01/app/oracle/acfsmounts/dg2_vol2
You can create a test file and check if it is accessible on the other node. For instance, on node 1, create a file as follows
# echo “Testing ACFS file system” > /u01/app/oracle/acfsmounts/dg2_vol2/acfsfile.txt
You can access this file on Node 2 as follows
# cat /u01/app/oracle/acfsmounts/dg2_vol2/acfsfile.txt.
The output will be
# Testing ACFS file system

References
God's Word for the day
The wisdom of the humble lifts their head high
  and seats them among the great
Do not praise individuals for their good looks
  or loathe anyone for appearances alone
The bee is small among flying creatures
  but what it produces is the best of sweet things
Do not boast about wearing fine clothes
  and do not exalt yourself when you are honored.
For the works of the Lord are wonderful
  and his works are concealed from humankind.
Sirach 11:1-4

Thursday, July 10, 2025

Oracle Dewdrops - Jul 2025

           The kingdom of God is like a mustard seed that someone took and sowed in the garden.  

It grew and became like a tree and the birds of the air made nests in its branches.

Luke 13: 18-19



Dewdrop #80 03-Jul-25

Indexes in Oracle


Dewdrop #79 03-Jul-25

To add a datafile to a tablespace


God's Word for the day
Do not make a display of your wisdom when you do your work 
    And do not boast when you are in need 
Better is the worker who has goods in plenty 
   than the boaster who lacks bread.
Sirach 10:26-27

Wednesday, July 9, 2025

Oracle News Jul 2025

What's New in Oracle Partitioning

Partitioning is a powerful functionality that allows tables, indexes and index organized tables to be subdivided into smaller pieces, enabling these database objects to be managed and accessed at a finer level of granularity. Oracle provides a comprehensive range of partitioning schemes to address every business requirement. Moreover since it is entirely transparent in SQL statements, partitioning can be used with any application, from packaged OLTP applications to data warehouses.

More on this below.





Oracle Database API for MongoDB

God's Word for the day
My child, honor yourself with humility,
    and give yourself the esteem you deserve.
Who will acquit those who condemn themselves?
    And who will honor those who dishonor themselves?
Sirach 10:28-29

Saturday, June 21, 2025

Oracle Dewdrops - Jun 2025

Dewdrop #78 07-Jun-25

The WITH Clause 


God's Word for the day
Do not get angry with your neighbour for every injury
  and do not resort to acts of insolence.
Arrogance is hateful to the Lord and to mortals
  And injustice is outrageous to both
Sirach 10:6-7

Adding a new Shared disk group in RAC in VM Workstation 10

For a basic overview of the RAC architecture, working and installation, you can refer to
Once the RAC grid and database are installed, you can add a new ASM disk as per the steps below.

The RAC system used is as per the configuration shared in the post above.
It is a 2 node RAC having existing ASM and shared disks on Oracle OS Linux 5.1.19.6

RAC Node 1 - Alpha
RAC Node 2 - Omega

Existing setup includes the following ASM libraries
  • oracleasm-support-2.1.7-1.el5.x86_64.rpm
  • oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm
  • oracleasmlib-2.0.4-1.el5.x86_64.rpm
ASMLib is an interface between block devices in linux and the Oracle ASM software.

ASMLib handles device permissions, marks devices for use with ASM and can scan for new devices being added.

The ASM libraries can be added with the following command
rpm -ivh {name of the rpm file}

The ASMLib driver can be configured using the configure option
/etc/init.d/oracleasm configure
Here we will set the ASMLib to be owned by oracle user, dba group, and to load on boot. 
The driver can now be started using the command
/etc/init.d/oracleasm start
We can now add additional shared disks to our existing 2 node RAC. 
Make sure both the VMs are shut down.

On alpha go to VM -> settings
  1. Click on the [ADD] button
  2. Select Hard Disk and [Next]
  3. SCSI recommended [Next]
  4. Create a new vitrual disk [Next]
  5. Maximum disk size (in GB) : 5
  6. Click on [Allocate disk space now]
  7. Store virtual disk as a single file [Next]
Specify a path and a filename on the machine where you want the shared storage to be created.
say the 
path : /u01/rac/SharedDiskFileName : asm_disk_3.vmdk 
In Advanced settings, we move this Hard Disk to a new SCSI Controller and device. Say controller 1 and device 0. And in Mode option, select Independent and Persistent and click on [Save]

In VMWare, a SCSI (Small Computer System Interface) controller acts as a bridge between the guest operating system and the virtual storage, facilitating communication and data transfer. It is a virtualized version of a physical SCSI controller, offering various benefits like improved performance, increased device support, bus sharing, making it suitable for demanding workloads. 

Now navigate to the path where the VM files for Alpha node are stored. Here you will find a file Alpha.vmx.
In Alpha.vmx make sure the following lines are present
scsi1:0.fileName = "/u01/rac/SharedDisk FileName /asm_disk_3.vmdk"
scsi1:0.mode = "independent-persistent"
scsi1:0.present = "TRUE"
scsi1:0.redo = ""
Now both the nodes Alpha and Omega can be started.
When Alpha is booted up we should be able to create a partition table on the new shared disk.
#ls –l /dev/sd*
This command should share the new shared disk /dev/sdb 
We create a partition on the new shared disk as follows 
As root user
#fdisk /dev/sdb
Command (m for help): u 
Changing display/entry units to sectors

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-10485759, default 63): 
Last sector or +size or +sizeM or +sizeK (2048-10485759, default 10485759): 
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.
Once the partition is created we can stamp it for use by ASM as follows
#oracleasm createdisk DATA1 /dev/sdb1
To list the newly created disk we can use the command
#oracleasm listdisks
DATA
DATA1
Now if we login into Omega and print the partition table we should be able to see the partition we created on the new shared disk.
# fdisk /dev/sdb
Command (m for help): p

Disk /dev/sdb: 5368 MB, 5368709120 bytes
181 heads, 40 sectors/track, 1448 cylinders
Units = cylinders of 7240 * 512 = 3706880 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1449     5242848+   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
Now we can use ASMLib on Omega to scan the devices for any ASM stamped disks
oracleasm scandisks
If we do a listdisk we should be able to see the new shared disk.
#oracleasm listdisks
DATA
DATA1
To create a new diskgroup in ASMCA

$ export ORACLE_SID=+ASM1
$ asmca
In diskgroups tab click on [Create]
Give a diskgroup name : DATA1
In redundancy section
Select External (none)

In [Select Member Disks section] click on
ORCL : DATA1

Click ok. You will get the following pop up.
Disk group DATA1 created successfully.

The diskgroup can also be manually created from the cmd prompt as follows.
$ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid
$ export PATH=/u01/app/oracle/product/11.2.0/grid/bin 
$ export ORACLE_SID=+ASM1
$sqlplus sys as sysasm
  
#CREATE DISKGROUP DATA1 EXTERNAL REDUNDANCY DISK 'ORCL:DATA1';
Adding disks to a diskgroup. Create a new shared disk and partition the disk using fdisk from the steps mentioned above. We can now stamp it for use by ASM as follows.
oracleasm createdisk DATA2 /dev/sdc1
We now add this newly created asm disk to the existing diskgroup DATA1 as follows
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid
export PATH=/u01/app/oracle/product/11.2.0/grid/bin
export ORACLE_SID=+ASM1
sqlplus / as sysasm
Alter diskgroup DATA1 add disk ‘ORCL:DATA2’ rebalance power 6;
We can list the diskgroups created with the folowing command
select * from v$asm_diskgroup where name='DATA1';
In asmcmd list details of the diskgroup
# ls -l
# ls -l DATA
# ls -l DATA1
We can list the asm disks created from v$asm_disk
Sql$ select group_number, disk_number, path from v$asm_disk;  

God's Word for the day
The beginning of human pride is to forsake the Lord
  The heart has withdrawn from its maker.
For the beginning of pride is sin,
  And the one who clings to it pours out abominations.
Therefore the Lord brings upon them unheard of calamities.
   And destroys them completely.       
Sirach 10:12-13

Monday, June 2, 2025

Oracle News Jun 2025

Oracle True Cache

Unlike conventional cache solutions, where the developer is responsible for keeping and maintaining data in the cache, True Cache automatically keeps the most frequently accessed data in the cache and it keeps the cache consistent with the primary database. It caches all Oracle Database objects and data types, including JSON. It improves application response time while reducing load on the primary database. This automatic cache management feature introduced in Oracle Database 23ai simplifies application development thus reducing development cost and effort.
More on this in the link below ...

Oracle True Cache




Oracle AI Vector Search

AI vector search is a Oracle Database 23ai feature. It is a capability that allows users to search data based on its semantic meaning or conceptual content rather than on specific keywords or values. It leverages vector embeddings, which are numerical representations of data to enable similarity based searching. It can be combined with relational search in a single database. It is also integrated with other Oracle Database features including but not limited to security, availability, performance, partitioning, GoldenGate, RAC, Exadata etc.

Oracle AI Vector Search 





To get started

Getting started with vectors in 23ai

Oracle Newsletter 04-Jul-25

Banks Can Speed Access to Capital with New Oracle Trade and Supply Chain Finance Cloud Services


Oracle Newsletter 26-Jun-25

Oracle Red Bull Racing Selects Oracle Fusion Cloud Applications Suite to Accelerate Operations


Oracle Newsletter 25-Jun-25

Fortify Children’s Health Uses Oracle Health Data Intelligence to Enhance Pediatric Care Across Its Clinical Network


Oracle Newsletter 25-Jun-25

The State of Texas Accelerates Public Safety Modernization with Oracle


Oracle Newsletter 24-Jun-25

New OpenELA compatibility toolset helps Enterprise Linux distributors reduce testing costs and resource commitments


Oracle Newsletter 23-Jun-25

Oracle Named a Leader in the 2025 Gartner® Magic Quadrant™ for Analytics and Business Intelligence Platforms



Oracle Newsletter 18-Jun-25

Oracle Positioned as a Leader in Five Gartner Reports for Supply Chain


Oracle Newsletter 17-Jun-25

Oracle Health Community Care Improves Care in Mobile, Home, and Rural Settings


Oracle Newsletter 17-Jun-25

xAI’s Grok Models are Now on Oracle Cloud Infrastructure


Oracle Newsletter 17-Jun-25

Oracle Launches First-of-its-Kind Defense Ecosystem to Redefine National Security Innovation


Oracle Newsletter 17-Jun-25

Oracle Advances National Security with New Sovereign, Air-Gapped Cloud Offering


Oracle Newsletter 17-Jun-25

Oracle and Nextcloud Deliver Collaboration Capabilities to Governments and Enterprises


Oracle Newsletter 17-Jun-25

Oracle and Metron Strategic Alliance Accelerates Defense Decision Superiority


Oracle Newsletter 16-Jun-25

Hoteliers Continue to Trust Oracle to Boost Operations and Guest Satisfaction


Oracle Newsletter 05-Jun-25

Oracle Financial Services Named Category Leader Across Credit Lending Operations in Chartis Update


Oracle Newsletter 04-Jun-25

Oracle Enables Automation of Drug Supply Management Across Vendors and Studies to Help Speed and Simplify Clinical Trials


Oracle Newsletter 03-Jun-25

Oracle AI Transforms Meter Data Management

God's Word for the day
The government of the earth is in the hand of the Lord,
  and over it he will raise the right leader for the time.
Human success is in the hand of the Lord,
  and it is he who confers honor upon the lawgiver.
Sirach 10:4-5