Ilmar Kerm

Oracle, databases, Linux and maybe more

Here you can see some small snippets how to return quite a lot of useful attributed about Oracle database directly from CRS. And the code I use to do an automated RAC rolling restart.

If you are doing many HTTPS calls from PL/SQL to many different sites, managing oracle wallet with all the required trusted certificates is quite painful. But Linux distros already come bundled with all the trusted CA certs from Mozilla, would it be nice just to convert it to Oracle wallet format so PL/SQL could use it?

Here is an Ansible role just for this, you could run it regularly to make sure you have the latest Mozilla trusted certs.

https://github.com/ilmarkerm/oracle-wallet-mozilla-ca

I have quite many different databases and would like to log in to them from my linux box using my AD username and password. Creating tnsnames.ora aliases for all of them is too much work, I’d like to just specify hostname and service from command line.

Bash aliases to the rescue, but simple alias is not enough in this case, so just take it as an example how can more complex aliases be created in Bash.

Just copy these functions to $HOME/.bashrc, modify them according to your needs and done 🙂

This creates two “aliases” – sqls for secure database connection and sql for insecure. I also need to use instantclient driver for database connection (Radius authentication).

Usage:

sqls rac-scan.example.com myapplicationservice.prod
sqls rac-scan.example.com myapplicationservice.prod dbauser
SQLS_OPTS="-verbose" sqls rac-scan.example.com myapplicationservice.prod

So your RAC database hangs/has occasional stalls/you want to do an emergency reboot?
Franck Pachot has written a good article what traces to get for troubleshooting or for Oracle support

I had a problem – all RAC instances seem to “stall” occasionally so I wanted to execute Francks script on all instances at the same time when the problem was happening.

Ansible to the rescue.

First I pushed out the following script to all instances, this script actually does the diagnostics dump.

Then the Ansible playbook to execute the script above on all instances at the same time and afterwards download all traces to your local ansible controller host:

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 to create connection.yml that will contain tasks to add a single connection to SQL Developer. This file will be called for every connection from the main playbook.

Now the main playbook.

NB! This is just an extract from the playbook. I expect you are familiar with ansible and know how to put all these three files together 🙂