Skip to content

Martin Bracher

Martin Bracher has more than 25 years of experience managing Oracle infrastructures, specializing in high availability (Data Guard, Grid Infrastructure), migrations, and automation with Shell scripting, Ansible, and Saltstack. He leads the Grid Infrastructure Workshop and contributes to the development of the DMK Database Management Kit and the YaK Oracle component. Prior to dbi services, he was Principal Consultant at Trivadis AG (Accenture) and Consultant at Opitz Consulting and CSC Ploenzke. He holds a Dipl. Phil. Nat. in Informatics from the University of Bern. His industry experience covers banking, telecommunications, and public administration.

15 posts since May 2025

Copy big dumpfiles between firewall zones

If you have to transfer a big Oracle DataPump export (dumpfiles) from one firewall zone to another, it is often not possible to transfer it directly from the source- to the destination-host. Instead, you have to transfer it to a jumphost (or your laptop), then from there to the destination host. But this is not optimal. You’ll need to store… 

Name resolution of Oracle

This blog post is a follow-up of TNS_ADMIN – which *.ora files Oracle will use. There, the main focus was to find out if a running database instance will use a TNS_ADMIN environment or the binary defaults. In this blog post we will analyze much more the internal mechanisms to find the *.ora files, which offered a few surprises. You… 

tnsping with Oracle instant-client?

The instant client For an application server that connects to Oracle, you probably would not like to install gigabytes of a full Oracle client software? For that, Oracle offers the so-called “Instant Client” you can download for free at oracle.com. It is available for different platforms and in different package formats (rpm, zip, …) There are different components you can… 

Oracle and btrfs snapshots

In my last blog post Snapshots with VirtualBox and btrfs we have seen some possibilities of btrfs snapshots. In this blog post we will see how we can use btrfs snapshots in combination with an Oracle database to clone PDBs. My colleague Marc Wagner has shown in his article the possibilities and the limitations of snapshot clones of a PDB.… 

Snapshots with VirtualBox and btrfs

Snapshot mechanism of VirtualBox With VirtualBox you can take snapshots of the current state (without snapshot functionality of a filesystem like btrfs) This kind of snapshot will create a kind of differential file and the original file will be untouched. Every changed block is written to this difference file in the Snapshot/ directory. If you will do tests with always… 

Oracle LDAP Timeouts

Introduction, Setup You are using 2 or more LDAP servers for Oracle name resolution to be highly available? Do you kown what happens if an ldap server is down or not reachable? You probably expect that it tries the next one? Short answer: Yes, but probably not with a behavior you expect… Let’s see my test configuration There are 2… 

Setup an LDAP server for Oracle naming on Enterprise Linux 9

Introduction To centralise Oracle naming resolution, you can use an LDAP server. You can use the commercial products from Oracle like Oracle Internet Directory (OID) or Oracle Universal Directory (OUD). Alternatively, you can also use OpenLDAP from your Linux distribution. I have used this successfully with customers for many years. I now wanted to build a new test environment for… 

TNS_ADMIN – which *.ora files Oracle will use

Introduction Oracle uses some configuration files (*.ora) related to the network. Location of the *.ora files used Per default, Oracle will look for these files in $ORACLE_HOME/network/admin; If you have more than one ORACLE_HOME, then you have to maintain it for each home, or you can create symbolic links to the “master” file. And if you use Readonly-Oracle-Home (“rooh”, roohctl… 

Administer Oracle Database Appliance (ODA) with odacli and Ansible

Introduction To administer an Oracle Database Appliance (ODA), you probably use the odacli commandline tool. The principle of this tool is to run jobs in background. Fire-and-forget… or Fire-and-poll This command returns a jobId (e.g. f1338963-87a2-4cb9-8a3e-06e104270203) and the job is executed in background. To see if this job is (sucessfully) completed, you have to poll for the above jobId and… 

Remove grant to public in Oracle databases

CIS recommendations The Center for Internet Security publishes the “CIS Oracle database 19c Benchmark” with recommendations to enhance the security of Oracle databases. One type of recommendations is to remove grant execute to public (chapter 5.1.1.1-5.1.1.7 Public Privileges). There is a list of powerful SYS packages. And for security reasons, only users that really need this functionality should have access… 

Shell and Perl in one script

To run a Perl script directly like a binary from within the shell, you have to the 2nd and 3rd example will run the script with the given Perl-binary. The 1st example uses the 1st perl binary found in $PATH If you work with Oracle and want to use a Perl script connecting to the database, then the Perl from… 

Errorhandling in Ansible

Errors in tasks – abort or ignore? Per default, if a task in a playbook fails, then the execution of the playbook is stopped for that host. As you can see, the 2nd task is not executed. If you want to continue in such a case, the ignore_errors parameter is your friend Custom error conditions Per default, Ansible evaluates the…