Modify SQLDeveloper connections using Ansible

This post is continuing my previous port about modifying SQLDeveloper preferences with ansible. Building on the same motivation and technique my goal in thist post is to centrally push out and keep updated connection details for SQLDeveloper on client side.

First lets declare the connections we want to push out:

NB! I’m pushing out connections referring to TNS names, since I want to add some extra RAC related settings to each connection description.

First need (more...)

Oracle home management using Ansible

Managing Oracle Database homes and patching them on a large scale is a challenge. Patching is a must today due to all the security threats out there plus all the bugs that you will hit during normal database operations.
You can read about the challenges and solutions in Ludovico Caldara blog series

Here I’d like to share my solution. The main idea of this solution is simple:
Never patch existing Oracle home, even when you (more...)

Using Ansible to distribute SQL Developer preferences

Some background info: We need to provide direct database access to many developers and data analysts. On database side managing so many different users securely means you have to use the same authentication source as all the other systems in the company, for example Active Directory. For databases we have implemented using Radius and for Oracle database this means users have to use thick Oracle client on their computers.
Installing Oracle client is not a (more...)

Speaking @ Rocky Mountain Oracle Users Group training days

I’m going to present outside EMEA for the first time – in RMOUG training days 2018 Denver, Colorado.
Can’t wait!

RMOUG Training Days

Regular database restore tests are important

I came to work today morning and there was an alert in my inbox saying that one of the large databases failed the nightly restore test.
Looking into RMAN logs I saw that recovery failed when applying archivelogs and error was something I have never seen before:

ORA-00756: recovery detected a lost write of a data block
ORA-10567: Redo is inconsistent with data block (file# 3, block# 37166793, file offset is 3350347776 bytes)
ORA-10564: tablespace  (more...)

Syncronising users from Active Directory to Oracle Database using Ansible

We have hundreds of developers who need access to production database for incident management purposes. But we don’t want to use shared accounts to access the database, each user has their own access to the database that is audited and has privileges according to the users access level.
Managing all these users manually on Oracle Database side is just too much, especially that all their access details are already described in Active Directory. Wouldn’t it (more...)

About database backup and recovery

Here is a slightly modified soft blog post I wrote to explain my technical OUG conference presentation about database backups to a non technical audience.

All interactions our customers do on our site generate data. Now imagine that due to some disaster this data is suddenly lost or corrupted and we cannot get it back. What would happen?

This is not a fantasy, events like this happen in real life. For example take a look (more...)

Upcoming conferences – end of 2017

I’ve been accepted to the following upcoming conferences:

Updates to Oracle image copy backup scripts

I added a few larger updates to my Oracle Image Copy backup scripts.

  • Now it also has built in support for Netapp NAS storage
  • In addition to autorestore script there now is restore.py script that you can use to spin off cloned databases restored to a specified point in time

Go and check out the scripts from here

Free code: script suite to manage incrementally updated image copies in Oracle

I just published for free the work I’ve done for the past 1,5 years ????

We used to have a few problems with backups:
* Weekly full backup took 2+ days to run on the larger databases and it always took a lot of resources to run.
* To test the backups we needed to allocate the same amount of storage space and it took too long time to restore the database from backup.
* To (more...)