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.

PGConf.EU 2026 – Day 2 & 3

Vacuum and autovacuum I started the second day of PGConf.EU with a session about vacuum and autovacuum, presented by Teresa Lopes.After a short introduction to how MVCC works, she presented the different elements related to autovacuum:What are the different phases of autovacuum? What can trigger autovacuum? Which parameters can influence autovacuum? All these points were explained in a simple and… 

Retrieving GoldenGate logs, reports, and diagnostics with the REST API

I often need to retrieve report files or logs from GoldenGate deployments, and I wanted to find ways of automating this. Hence this blog, about retrieving all available logs with GoldenGate REST API. I previously wrote about the GoldenGate log files. Some of them (extract.log, replicat.log and others) are in fact just filters of other logs (ggserr.log or restapi.log). These… 

Anatomy of an Enterprise Manager metric extension

Recently, I was working on deploying Metric Extensions automatically in Enterprise Manager, but the more I looked into it, the more it turned into a different question: what does a Metric Extension look like ? In a previous blog, I presented the SYSMAN tables containing the metric extensions definitions. I also showed how to retrieve the targets where a metric… 

Why attend PGConf.EU? My feedback from Valencia

This week I was in Valencia for the PGConf.EU 2026, the biggest PostgreSQL conference in Europe. Something surprised me right at the start. During the welcome session on the first day, the organizers asked who was attending for the first time, and around 30% of the room raised their hand! I don’t know exactly what it means, maybe more companies… 

PGConf.EU 2026 – Day 1

Welcome to Valencia! This year, the European PostgreSQL conference, PGConf.EU, takes place at the Palacio de Congresos in Valencia, Spain. I am lucky to be able to attend it with some colleagues from dbi services. Let’s see what’s going on there… I started the first day with a quick tour of the both of the different conference sponsors. I then… 

How to detect a suspended GoldenGate extract

While testing EVENTACTIONS (SUSPEND) on an extract, I noticed that nothing in INFO tells you the process is suspended. The extract shows as RUNNING, the lag might look fine for a while, and yet it has stopped capturing. You may use SUSPEND on purpose (to pause an extract when a specific DDL goes by, for instance). Or someone else put… 

Import order matters for GoldenGate instantiation filtering

When migrating a large database with GoldenGate, most of the volume is sometimes in old partitions which no longer change. A common shortcut is to move them first with expdp/impdp, even before GoldenGate is set up. Everything else, the active partitions and the non-partitioned tables, is exported once the extract is running, with PREPARECSN set. Instantiation filtering then makes the… 

Removing instantiation filtering from a GoldenGate replicat

In a recent blog, I explained how instantiation filtering works. DBOPTIONS ENABLE_INSTANTIATION_FILTERING makes a replicat discard any record whose commit CSN is at or below a table’s instantiation CSN. It applies everything above it. This replicat parameter should be kept during the whole initial load process. At some point the replicat has processed past the instantiation boundary for every table,… 

GoldenGate 26ai AutoSchema TYPEMAP: overriding the default datatype mapping

In my blog about the new automatic schema evolution feature in GoldenGate 26ai, I was replicating the following table from Oracle to PostgreSQL: The replicat created a PostgreSQL table from an Oracle one during an initial load. It worked, but one choice was not mine: the NUMBER primary key became a varchar(50). Automatic Schema Evolution takes its datatypes from a…