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.

Bringing up an OpenShift playground in AWS

Before we begin: This is in no way production ready, as the title states. In a production setup you would put the internal registry on a persistent storage, you would probably have more than one master node and you would probably have more than on compute node. Security is not covered at all here. This post is intended to quickly… 

PostgreSQL 12: Explain will display custom settings, if instructed

How many times did you try to solve a performance issue but have not been able to reproduce the explain plan? Whatever you tried you always got a different result. Lets say you managed to get a dump of the database in question, got all the PostreSQL parameters the same, gathered statistics but still you do not manage to get… 

PostgreSQL 12: Copying replication slots

The concept of replication slots was introduced in PostgreSQL 9.4 and was created to prevent a primary instance to delete WAL that a replica still needs to apply. That could happen when you have a network interruption or the replica was down for another reason. With replication slots you can prevent that at the downside that your master could fill… 

PostgreSQL 12: generated columns

PostgreSQL 12 will finally bring a feature other database systems already have for quite some time: Generated columns. What exactly is that and how does is look like in PostgreSQL? As usual, lets start with a simple test setup. We begin with a simple table containing two columns: postgres=# create table t1 ( a int, b text ); CREATE TABLE… 

RCSI with foreign keys, NULL values and paramater sniffing behavior

In this blog post let’s go back to the roots (DBA concern) with a discussion with one of my friends about a weird transaction locking issue. In fact, this discussion was specifically around two questions. The first one was why SQL Server continues to use shared locks in RCSI mode leading to blocking scenarios and the second one was about… 

PostgreSQL 12: More progress reporting

PostgreSQL 9.6 introduced a new view called pg_stat_progress_vacuum which gives information about currently running vacuum processes. That was a great addition because since then you could easily estimate on how long a specific vacuum process will need to complete. PostgreSQL 12 will use the same infrastructure to extend that to more operations. The first operation that can now be tracked… 

The EDB filter log extension

This is another post dedicated to EnterpriseDB Postgres. Sometimes you may want to get specific messages not getting logged to the server’s logfile or audit records. That might be specific error codes or, even more important, passwords you specify when you create users. EDB comes with a solution for that by providing an extension which is called EDB Filter Log.… 

Auditing with EDB Postgres Enterprise

It might be that there is a requirement to audit operations in the database. Maybe because of legal requirements, maybe because of security requirements or whatever. I’ve already written a post in the past describing what you can do in community PostgreSQL, this post is specific to EDB Postgres. The auditting features come be default in EDB Postgres and you… 

Windocks, SQL Server and Azure in our internal CI pipeline

During the last DevOps Day in Geneva, I presented a sample of our CI implementation related to our MSSQL DMK maintenance product. It was definitely a very good experience for me and good opportunity to get feedback from DevOps community as well. During the session I explained our CI pipeline includes SQL Server containers both on AKS (K8s as managed… 

Using operating system users to connect to PostgreSQL

PostgreSQL supports many authentication methods by default and one of them is Ident authentication. Using that method you can use the users defined in the operating system and map them to users in PostgreSQL. So how does that work? To start, lets create a new operating system user we want to use for connecting to the database: postgres@pgbox:/u02/pgdata/DEV/ [PGDEV] sudo… 

When you change the UNDO_RETENTION parameter, the LOB segment’s retention value is not modified

Below, I will try to explain, a particular case for the general error : ORA-01555 snapshot too old error.. Normally, when we have this error, we are trying to adapt the retention parameters or to tune our queries. SQL> show parameter undo; NAME TYPE VALUE ———————————— ———– —————————— temp_undo_enabled boolean FALSE undo_management string AUTO undo_retention integer 3600 –extended from 900,…