Powered by
WordPress
  • Initialising PL/SQL associative arrays in 18c and later

    I can never remember how to initialise PL/SQL associative arrays and thought I’d write a short post about it. This is primarily based on an article on Oracle’s Ask Tom site, plus a little extra detail from Steven Feuerstein. Associative arrays were previously known as index-by tables, by the way. Associative arrays before 18c Prior…

  • Vagrant tips’n’tricks: changing /etc/hosts automatically for Oracle Universal Installer

    Oracle Universal Installer, or OUI for short, doesn’t at all like it if the hostname resolves to an IP address in the 127.0.0.0/0 range. At best it complains, at worst it starts installing and configuring software only to abort and bury the real cause deep in the logs. I am a great fan of HashiCorp’s…

  • Tips’n’tricks: finding the (injected) private key pair used in Vagrant boxes

    In an earlier article I described how you could use SSH keys to log into a Vagrant box created by the Virtualbox provider. The previous post emphasised my preference for using custom Vagrant boxes and my own SSH keys. Nevertheless there are occasions when you can’t create your own Vagrant box, and you have to…

  • Tips’n’tricks: understanding “too many authentication failures” in SSH

    Virtualbox VMs powered by Vagrant require authentication via SSH keys so you don’t have to provide a password each time vagrant up is doing its magic. Provisioning tools you run as part of the vagrant up command also rely on the SSH key based authentication to work properly. This is documented in the official Vagrant…

  • Ansible Tips’n’tricks: rebooting Vagrant boxes after a kernel upgrade

    Occasionally I have to reboot my Vagrant boxes after kernel updates have been installed as part of an Ansible playbook during the “vagrant up” command execution. I create my own Vagrant base boxes because that’s more convenient for me than pulling them from Vagrant’s cloud. However they, too, need TLC and updates. So long story…

  • orachk can now warn about unwanted cleanup of files in /var/tmp/.oracle

    Some time ago @martinberx mentioned on twitter that one of his Linux systems suffered from Clusterware issues for which there wasn’t a readily available explanation. It turned out that the problem he faced were unwanted (from an Oracle perspective at least) automatic cleanup operations in /var/tmp/.oracle. You can read more at the original blog post.…

  • Ansible tips’n’tricks: executing a loop conditionally

    When writing playbooks, I occasionally add optional tasks. These tasks are only executed if a corresponding configuration variable is defined. I usually define configuration variables either in group_vars/* or alternatively in the role’s roleName/default/ directory. The “when” keyword can be used to test for the presence of a variable and execute a task if the…

  • Dead Connection Detection (DCD) and the Oracle database

    Dead Connection Detection is a useful feature of the Oracle database: it allows for the cleanup of “dead” sessions so they don’t linger around consuming memory and other system resources. The idea is simple: if the database detects that a client process is no longer connected to its server process, it cleans up. This can…

  • Little things worth knowing: keeping enq: TM enqueue at bay during direct path inserts

    Direct path inserts are commonly found in processing where data are shifted from one source to another. There are many permutations of the theme, this post details the way SQL Loader (sqlldr) behaves. I have previously written about sqlldr and concurrent direct path inserts. The behaviour for releases <= 12.1 is described in the first…

  • ORA-14300 partitioning key maps to a partition outside maximum permitted number of partitions and NULLs

    While researching interval partitioning in Oracle 19c I came across a phenomenon I had already solved a long time ago but then forgot about. This time I decided to write about it so I don’t have to spend 5 minutes rediscovering the wheel. As always, if you are following along, make sure you are appropriately…