MONDAY SPOTLIGHT: Ceph Storage for Oracle Linux, Release 2.0, is Now Available

The latest Ceph Storage for Oracle Linux, Release 2.0, is now available for download on the Unbreakable Linux Network as well as on Oracle’s public YUM repository. Based on the Ceph community Jewel release (v10.2.2), Ceph Storage for Oracle Linux provides a high performing, extremely scalable storage solution offering block, file and object storage under a single system, leveraging commodity x86-based hardware. Ceph offers a number of features and is one of (more...)

Transactions and SCNs

It’s general knowledge that the Oracle database is ACID compliant, and that SCNs or ‘system change numbers’ are at the heart of this mechanism. This blogpost dives into the details of how the Oracle engine uses these numbers.

Oracle database version
Operating system version: OL 7.2, kernel: 4.1.12-61.1.14.el7uek.x86_64 (UEK4)

Redo generation
Whenever DML is executed, redo is generated in the form of ‘change (more...)

Problems with big SGAs (>200G) on Linux

I recently had an issue where a database with 240GB SGA (1 huge shared memory segment) configured with hugepages on a system with 512G RAM was suddenly becoming instable and new logons were denied with these error message:

ORA-01034: ORACLE not available
ORA-27123: unable to attach to shared memory segment
Linux-x86_64 Error: 22: Invalid argument
Additional information: 2667
Additional information: 1736718
Additional information: 215016800256

This was strange because ipcs -a showed all shared memory segments (more...)

Install cx_Oracle for Python

This shows you how to install the cx_Oracle library for Python 2.7 on Fedora Linux. If Fedora has it on the server you can download it with the following yum command:

yum install -y cx_Oracle-5.2.1-11g-py27-1.x86_64.rpm

Currently, you’ll get the following failure because it’s not available in the Fedora repository:

Loaded plugins: langpacks, refresh-packagekit
mysql-connectors-community                                      | 2.5 kB  00:00:00     
mysql-tools-community                                           | 2.5 kB  00:00:00     
mysql56-community                                               | 2.5  (more...)

Oracle Segment Fails

The instance that I’ve built for my students in a Fedora VM is quite stable except for one feature. The feature is the hibernation process of the base operating system. Sometimes when the base operating system hibernates, it causes the Oracle shared memory segment to fail. When that happens you get the following error:

ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process  (more...)

Add systemd Startup Script For CouchDB

Currently, version 2.0 of CouchDB doesn’t come with any form of startup script. I’m sure that as the CouchDB 2 branch becomes more mature and it’s added to the various software repositories startup scripts will be shipped as standard, but until then we have to make do. The below script is a systemd startup script

OTN Appreciation Day: Oracle Express Edition (XE)

Tim Hall of fame suggested we should all do an "OTN Appreciation" day in honor of the Oracle Technology Network (OTN), by blogging about our favorite Oracle product or feature.

My personal favorite is Oracle Express Edition (XE), the free version of the world's best relational database.

 Here's what's great about it:

Watching is in the eye of the beholder

Recently I was investigating the inner working of Oracle. One of the things that is fundamental to the Oracle database is the SCN (system change number). SCNs are used to synchronise changes in the database. There is one source for SCNs in every instance (kcbgscn; the global or current SCN in the fixed SGA), and there are multiple tasks for which Oracle keeps track of synchronisation using SCNs. A few of these tasks for which (more...)

Little things worth knowing: when a transient ASM disk failure cannot be fixed in time

In the previous blog post I used libvirt and KVM in my lab environment to simulate a transient disk failure and how to recover from it. This post takes this example a step further: I am simulating another disk failure, but this time won’t pretend I can fix the issue and put it back. In other words, I simulate the effect of the disk_repair_time hitting zero.

Most of what I am covering here is an (more...)

VirtualBox Manual DPK Import Failure: Ran out of Virtual Disk

The DPK scripts are simply amazing. I enjoy the flexibility of the new DPK system. I will confess, creating an HCM demo environment with DPK is not as easy as the prior PUM image method, but it is pretty close. As I prepared for OpenWorld 2016, I thought I would download the latest HCM DPK (update 18) and build out a new demo server on my MacBook. Unfortunately, I wasn't able to use the standard (more...)

Little things worth knowing: transient ASM disk failures in 12c

For quite some time we have been treated nicely by ASM when it comes to transient disk failures. Since 11.1 (if memory serves me right), transient failures won’t cause an ASM disk to be dropped immediately. This is good, because it can potentially save a lot of time! When a disk is dropped from an ASM disk, a rebalance operation is unavoidable. And there is more than a chance of another one following it, (more...)

Replacement of environment variables or properties in Bash

Earlier I wrote about the automatic installation of Fusion Middleware components using response files. A thing that lacked in my scripts was that although I had a FMW_HOME variable set in my enviroment shell script, the response files had the location hard coded in them. At the time I hadn't had the chance to figure out how to do property/variable replacement in shell. I do know how to do it with ANT. But I figured (more...)

Installing a agent on a Linux 5.x platform from a 13.1 OMS

Is that enough version numbers for you? 🙂

The issue this post will address (very briefly because it’s the week before OOW2016 and life is crazy!) is this. If you are running a 13.1 version of the OMS, and you try to push a agent to a Linux box that’s running some version of 5.x (such as RHEL5 or OL5), you will get an error message saying you are (more...)

Microsoft SQL Server under Linux – Preview

Today something off topic, as I am normally blogging about Oracle Fusion Middleware stuff.

Microsoft SQL Server under Linux - Preview ... many of you (specially the Oracle Guys) might think now "WHAT ????", but its really true.
Some months ago Microsoft announced that they will release a SQL Server Version for Linux and I was lucky to get into the Preview Program.

The installation of the SQL Server under Linux (currently supported under Ubuntu 16 (more...)

How many memory is truly used by my Oracle instance?

There are many posts about the amount of memory that is taken by the Oracle database executables and the database SGA and PGA. The reason for adding yet another one on this topic is a question I recently gotten, and the complexities which surrounds memory usage on modern systems. The intention for this blogpost is to show a tiny bit about page sharing of linux for private pages, then move on to shared pages, and (more...)

Virtual Development Server: Provide Docker images in docker registry for Oracle XE Database and others

For later creation of containers as needed in the deployment process we have first to build docker images whenever we do not find suitable one in docker hub.

For most of my development I need a oracle database. On the internet you can find a lot of Dockerfile’s for this, but no ready image. This is because for running a database you have to accept a license and this happens when you download the installation (more...)

Little things worth knowing: using Remote Diagnostic Agent more effectively with profiles

RDA, or the Remote Diagnostics Agent, has been around for a little while. Over the time, and with the growing number of Oracle’s acquisitions it has become, shall we say, a little more difficult to handle. It appears to me as if every one of them will have its diagnostics handled by RDA making it hard to focus on something specific, like for example the database.

I won’t go into very detail of the Remote (more...)

Mount NTFS disk in Linux 7

Today I wanted to pass an old disk in a usb-case to my son. It was from an old Windows Laptop and even though I'm administrator, I wasn't able to read the documents in an other user's folder.

So I thought, let's do it from an Oracle Linux 7 VM, as root. But it turns out that Oracle linux did not support NTFS by default.

But with the trick in this link I managed to (more...)

Building “Ready to Deploy” Oracle VM Templates

I’ve been playing a bit lately with Oracle VM on a few different platforms (ODA, Exalytics, Private Cloud Appliance) and was tasked with creating a good Oracle VM template image for Oracle Linux 7. Oracle makes templates available on eDelivery ( that present you with VM configuration questions on first boot, but those VM templates have a few limitations that make them hard to use:

  1. The templates have a minimal Linux installation, and are (more...)

Virtual Development Server: Add swapfile to VirtualBox as requirement for installing Oracle or build Oracle docker images

As I want later build Oracle docker images, some of this need a swapfile.

Per default my used Vagrantbox, does not have one, so later steps will fail.

As in the last blog I use a Vagrant shell provider.

  # add swapfile to the box
  config.vm.provision :shell, :path => ""

This calls the script in the created VirtualBox machine.
Make sure, that you create your swapfile on a supported (more...)