Skip to content

Database

Everything our consultants learn while running databases for customers: Oracle, PostgreSQL, SQL Server, MySQL, MariaDB, MongoDB and Delphix. Expect hands-on posts about installation, day-to-day administration, backup and recovery, performance tuning, replication and upgrades.

How to patch your ODA to 19.30?

Introduction Patch 19.30 is now available for Oracle Database Appliance series. Let’s find out what’s new and how to apply this patch. What’s new? The real new feature is the possibility to rollback a server component patch done by an odacli update-servercomponents. Until now, in the rare cases you would need to do a rollback, you could only rely on… 

Reading data from PostgreSQL into Oracle

Usually the requests we get are around getting data from Oracle into PostgreSQL, but sometimes also the opposite is true and so it happened recently. Depending on the requirements, usually real time vs. delayed/one-shot, there are several options when you want to read from Oracle into PostgreSQL. One common of way of doing this is to use the foreign data… 

Create a new GoldenGate deployment with the REST API

Is it possible to create a new GoldenGate deployment with the REST API ? This is the question I will try to answer in this blog, based on my experience with the REST API. I will dive in what is done by the oggca.sh script when adding a new deployment and see if we can replicate this with the REST… 

Grid Clusterware 26ai 2 node RAC upgrade from 19c rolling forward

This is third part of 26ai migration blog. We will upgrade here 2 node Clusterware with ASM in 19c. We will use newest 23.26.1 GoldImages from oracle support. This tutorial showing main steps how to perform upgrade, its not procedure to upgrade your production environment, please checkout official documentation from oracle and do proper planning and prechecks before you do… 

pgvector, a guide for DBA – Part 2: Indexes (update march 2026)

Introduction In Part 1 of this series, we covered what pgvector is, how embeddings work, and how to store them in PostgreSQL. We ended with a working similarity search — but on a sequential scan. That works fine for a demo table with 1,000 rows. It does not work for production. This post is about what comes next: indexes. Specifically,… 

PostgreSQL 19: pg_dumpall in binary format

One of the limitation of pg_dumpall up to PostgreSQL version 18 is, that you can only dump in text mode. While pg_dump can dump in various formats (plain,custom,tar and directory) since ages. pg_dump was always limited to text mode. This will change with PostgreSQL 19 because this was committed recently. The default is still plain text but now you have… 

PostgreSQL Anonymizer: Simple Data Masking for DBAs

Sensitive data (names, emails, phone numbers, personal identifiers…) should not be freely exposed outside production. When you refresh a production database to a test or staging environment, or when analysts need access to real-looking data, anonymization becomes critical. The PostgreSQL Anonymizer extension (often called anon) is an open‑source extension that lets you mask, fake, shuffle, or generalize data directly inside… 

Relocate trail files with convchk when migrating GoldenGate to the Microservices Architecture

Depending on the location of your GoldenGate trail files, you might have to use the convchk utility to relocate them before migrating to the Microservices Architecture. Oracle has the following restrictions for using the migration utility: Absolute path names for trail files. Classic trail file MUST reside in ./dirdat (or a subdirectory within it). If the trail file reside in another directory,… 

Monitoring PostgreSQL on Windows with PgHero and Docker

I know, I know, PostgreSQL usually feels more at home on Linux. But guess what? PgHero works just fine on Windows too, and I gave it a try myself. If you’re running PostgreSQL in a Docker container, this setup is surprisingly easily, and it gives you a great performance dashboard without touching your base system. In this post, I’ll show… 

Production-ready GoldenGate REST client in Python

Updated in June 2026, based on the latest version of the client. In this blog, I provide GoldenGate administrators with a fully working, production-ready Python client to efficiently handle GoldenGate REST API calls. From extract creation to user management, it has never been easier to manage and monitor your GoldenGate deployments ! Basic OGGRestAPI Python class In a previous blog… 

RAG Series – Embedding Versioning LAB

Introduction This is Part 2 of the embedding versionin, in Part 1, I covered the theory: why event-driven embedding refresh matters, the three levels of architecture (triggers, logical replication, Flink CDC), and how to detect and skip insignificant changes. If you haven’t read it, go there first, this post won’t through the entire intent of the designs but just demonstrate… 

RAG Series – Embedding Versioning with pgvector: Why Event-Driven Architecture Is a Precondition to AI data workflows

Introduction “Make it simple.” This is a principle I keep repeating, and I’ll repeat it again here. Because when it comes to keeping your RAG system’s embeddings fresh, the industry has somehow made it complicated. External orchestrators, custom Python cron jobs, microservices that call microservices, Airflow DAGs with 47 tasks, all to answer a simple question: when my source data…