Continuous Delivery and the Oracle database (III)

In this series of blogs about Continuous Delivery and the Oracle database, I describe how to automate deployments (installations). In the previous two Blogs I have described the tools and techniques used to create and install migration scripts.

In this Blog I will describe the ‘(un)happy flow’ for a database deployment: what to do if the deployment (installation) is correct (the ‘happy flow’) and what to do if it goes wrong (the ‘unhappy flow’)?


Oracle Cloud – DBaaS instance down for no apparent reason – (how archive log mode and storage shortage forced the instance to its knees)

My Oracle Public Cloud DBaaS instance did not respond. On closer investigation, it turned out to be down. Mounting the database ended with an ORA-3113 End of Communication Channel. Investigation of the startup log and the database alerts indicated that no new archive log files could be created. The DBaaS instance is in archive log mode – and has created quite a chunk of archive log files over the last few months – now causing (more...)

Using guaranteed restore points to navigate through time

Some months ago I worked on a project where we thought it would be a good idea to use multiple guaranteed restore points to be able to navigate through time back and forth. Sadly we ran into some unexpected behaviour of the Fast Recovery Area.


This was basically a consolidation project. A rather complicated one: many tables had to be read from five other databases and its data needed to be inserted into the (more...)

Data Pump – Exclude Stats differently for TTS and FTEX

Nice little best practice for statistics and Data Pump when doing either Transportable Tablespaces or Full Transportable Export-Import (credits to Roy and Dean Gagne).. Transport Statistics via a Staging Table First of all we always recommend to exclude statistics when doing a Data Pump export as the import of...... [Read More]

RMAN Catalog Upgrade fails – ORA-02296 – error creating modify_ts_pdbinc_key_not_null

This issue got raised to my via a customer I know for quite a while - all credits go to Andy Kielhorn for digging down into that issue and solving it. , Failed RMAN Catalog Upgrade from to The RMAN catalog upgrade: SQL> @?/rdbms/admin/dbmsrmansys.sql $ rman CATALOG... [Read More]

node-oracledb 1.9.0-Dev Branch with Promises is on GitHub

| Apr 18, 2016
Top features: Promise support node-oracledb 1.9.0-Development is now available only as a development-only branch on GitHub. It adds Promise support and some other goodies mentioned below. The plan is to incorporate any user feedback, stabilize the features, improve documentation, improve test covereage, and run...... [Read More]

Patching does not work – Journey to the Cloud VI

What happened so far on my Journey to the Cloud? Part I - Push a Button (Dec 3, 2015) Part II - Switch On/Off and Remove (Dec 4, 2015) Part III - Patch, patch, patch (Dec 22, 2015) Part IV - Clean Up APEX (Jan 19, 2016) Part V - TDE is wonderful (Jan 28, 2016) ==> Part VI... [Read More]

Oracle Berkeley Database (BDB) 6.2 Announced

Oracle Berkeley Database Version 6.2 ( is now available for download. Download Page – Click Here Documentation Page – Click Here Oracle Berkeley Database Version 6.2 – New Features · Slices – provides significantly better scalability on large SMP machines as compared to the previous release. ... [Read More]

PHP OCI8 2.0.11 and 2.1.1 are available on PECL

| Apr 17, 2016
I've released PHP OCI8 2.0.11 (for supported PHP 5.x versions) and 2.1.1 (for PHP 7) to PECL. Windows DLLs on PECL been built by the PHP release team. The updated OCI8 code has also been merged to the PHP source branches and should land in the future PHP 5.6.21 and PHP 7.0.7 source bundles, respectively. PHP OCI8... [Read More]

Why ODA is a perfect solution for Disaster Recovery

While disasters do occur every now and then, many production deployments lack a disaster recovery (DR) system. Oracle Database Appliance makes a great solution for deploying a disaster recovery system (especially for production ODA deployments) for the following reasons. 1. Easy to setup (setup entire DR site in... [Read More]

Blog Continuous Delivery and the Oracle database (II)

In the previous Blog I have described how to implement CD for an Oracle database by using migration scripts.

In this Blog I will describe how to create migration scripts (automagically).

DML scripts
This is the more simple case because you need them less often. There are various data compare tools which create scripts to migrate the differences between a source and target schema:
dbForge Data Compare for Oracle, v3.7 Express (free)

New Installation Cookbook: Oracle Linux 6.7 with Oracle RAC

cookbookI’ve updated my install cookbooks page to include a new cookbook for installation of Oracle Real Application Clusters on Oracle Linux 6.7.

This is also the first one I’ve published since I left the employment of Violin Memory to work for Kaminario, so this install uses a Kaminario K2 All Flash Array. However, it applies very well to any Oracle RAC installation which uses relatively capable storage.


Filed (more...)

Continuous Delivery and the Oracle database (I)

In this Blog I will explore the possibilities to apply Continuous Delivery (CD) for the Oracle database.

What is Continuous Delivery?
The introduction on Wikipedia Continuous Delivery says:

“Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. It aims at building, testing, and releasing software faster and more frequently. The approach helps reduce the cost, time, and (more...)

Create and Run Docker Container with Node.js and Node Oracle DB Driver from Windows using Vagrant and VirtualBox

My objective: be able to very quickly run Node.js applications that can connect to an Oracle Database – with minimal disturbance of my laptop environment (Windows 7).

The solution discussed in this article: use Vagrant on Windows – together with VirtualBox – to create a Linux Host VM, install Docker in that VM and provision a Docker Container with Oracle Linux 7, Node.js and the node-oracle package (the Oracle Database Driver) with the (more...)

Auto DDL: delete obsolete columns from table

A quick one. In the past I used to generate ddl based on queries, like the following. But I find myself to re-invent them again. So to have it saved for my offspring: here's one on deleting obsolete columns as generated on importing an excel sheet in SQLDeveloper:

l_schema_name varchar2(30) := 'MY_SCHEMA';
l_table_name varchar2(30) := 'A_TABLE';
cursor c_cols is
select column_name
from all_tab_columns col
where col.table_name = l_table_name
and col.owner = l_schema_name

リカバリできなきゃ意味がない! 貴方のバックアップ・リカバリ対策は本当に大丈夫?


みなさん、ようやく春が来ますね~。有り難いことに、東奔西走という言葉を使いたくなる状況の"しばちょう"こと、柴田長(しばた つかさ)です。


私のSIer時代を思い返してみても、万が一の場合にしか必要の無い備えは開発スケジュール上、後回しになる傾向があったかなとも思います。しかし、トラブルが発生する場合は、二重、三重の障害が重なることも少なからずありますので、被害を最小限に食い止める絶対的な防護壁として確実なリストア・ リカバリの実行が求められるのも事実です。

・・・・という事で、今回は、RMANVALIDATEコマンド/オプションを使用して、”Recovery Manager”の名前の通りにリカバリを管理する方法を、第21回から第24回の連載の復習も兼ねて、体験していただきたいと思います。

>> 「しばちょう先生の試して納得!DBAの道」 最新号(No.44)
 「Recovery ManagerのVALIDATEでリストア・リカバリに備える」 を読む

Which is the Most Common DB?

This is an interesting question that I sometimes find myself thinking about. I’ll start with my answer, I actually don’t know, but I can show you that all them can be! Since my wife is doing a Ph.D. in biology she reads and analyzes a lot of data and also decides how to present it […]

#Javaland 2016 conference day 2


This was my second day:

Michael Tamm (optivo GmbH): Feature Toggles on Steroids

Very good summary off all topic’s covering feature toggles. Wish I had this summary 2 years before, were we have evaluated this. Unfortunately furthermore no solutions for declarative frameworks like Oracle ADF with it’s wizards and xml configurations, which later generated code. Ironic answer to my question: “Don’t use frameworks – use Java”

Alexander Casall (Saxonia Systems AG): User Experience for techies

Now (more...)

Configuring VNCR for Oracle RAC

By default on an Oracle RAC installation, the listeners are configured to allow any database to register with them.  There is no security out of the box to determine which databases may register.  While this makes it easy to create new databases without worrying about listener registration, this can cause potential problems in a real environment.

This can be dangerous working with RAC environments where the database registers with both a local and remote listener.  The (more...)

Recover from ORA-01172 & ORA-01151

This morning I was working on an Oracle Management Repository (OMR) for a test Enterprise Manager that is used by a few consultants I work with. When I logged into the box, I found that the OMR was down. When I went to start the database, I was greeted with ORA-01172 and ORA-01151.

These errors basically say:

ORA-01172 – recovery of thread % stuck at block % of file %
ORA-01151 – use media recovery (more...)