Skip to content

Open source Team

Posts published under the Open source Team account are collective contributions by the dbi services open infrastructure consultants. The practice covers open-source databases and platforms, PostgreSQL first of all, along with MySQL, MariaDB, and Linux, from architecture, replication, and high availability to performance tuning and operations under service level agreements, and contributes actively to the PostgreSQL community.

721 posts since September 2011

Dealing with corrupted system indexes in PostgreSQL

This is something you do not want to see on an important PostgreSQL system: postgres@centos8pg:/home/postgres/ [pgdev] psql psql: error: could not connect to server: FATAL: index “pg_class_oid_index” contains unexpected zero page at block 0 HINT: Please REINDEX it. The hint is pretty clear on how you should fix this, but anyway, lets do a short demo on how to do… 

Can there be orphaned data files in PostgreSQL?

PostgreSQL, as all other relational database systems, needs to persist data on disk, either by writing the writing the write ahead log or by synchronization the data files on disk whenever there is a checkpoint. When it comes to the data files PostgreSQL creates a new one once a relation reaches segment_size, which is 1GB by default. Because of this… 

PostgreSQL 13 will allow to drop databases even when there are connections

One of the most popular blogs I’ve written about PostgreSQL was about the three databases that PostgreSQL creates by default (well, actually it is initdb that creates the databases). One of the points mentioned in that post was, that you can not drop a database as long as there are sessions against the database you want to drop. This will… 

Galera Cluster 4 with MariaDB 10.4.8: part 2

My previous blog was about the MariaDB Galera cluster new features (version 10.4). Now I will only focus on the streaming replication and give you an overview of all the tests I performed. How to enable streaming replication? Quite easy, there are only 2 parameters: wsrep_trx_fragment_unit and wsrep_trx_fragment_size Then you have to choose a replication unit between the followings: .… 

A simple Terraform script to create an AWS EC2 playground

When I started to write the blog about AWS SSM I quickly realized that I need a way to bring up and destroy my AWS EC2 playground in an easy and reproducible way. There are several options for this: I could have used the AWS command line interface or AWS CloudFormation. Both work pretty well and would have been more… 

Avoiding patching madness by using AWS SSM

As we have more and more customers either currently moving to AWS or already moved much, if not even all, of their workloads to AWS, one question pops up quite frequently: Now that we have so many EC2 instances up and running how do we regularly patch them? There are many tools around for patching operating systems, such as Microsoft… 

Connection pooling with PgBouncer

Some of you may know the case: As soon as the number of users grow, the number of resource problems increases. Have you ever thought about using a connection pooler? Too complex, too much administration effort? In this post I like to explain, how the connection pooler can help you with your memory, as well as showing you the simplicity… 

How to scale up a Patroni cluster

During the preparation of my presentation for the pgconf.eu I ran into one big issue. I had to stop my cluster to add a new node. That was not the way I wanted to archive this. I want a high availability solution, that can be scaled up without any outage. Due to a little hint during the pgconf.eu I was… 

Galera Cluster 4 with MariaDB 10.4.8

Last month, by a new customer I had to install the latest version of the MariaDB server: 10.4.8 to setup a Galera Cluster with 3 master nodes. The good news was that this version was shipped with the latest version of the Galera Plugin from Codership: Galera Cluster 4.0. As usual, installation & configuration was quitte easy. $ sudo yum… 

Handling PostgreSQL installations from packages

[vc_row type=”in_container” full_screen_row_position=”middle” scene_position=”center” text_color=”dark” text_align=”left” overlay_strength=”0.3″ shape_divider_position=”bottom” bg_image_animation=”none”][vc_column column_padding=”no-extra-padding” column_padding_position=”all” background_color_opacity=”1″ background_hover_color_opacity=”1″ column_link_target=”_self” column_shadow=”none” column_border_radius=”none” width=”1/1″ tablet_width_inherit=”default” tablet_text_alignment=”default” phone_text_alignment=”default” column_border_width=”none” column_border_style=”solid” bg_image_animation=”none”][vc_column_text]In this blog I will show how to handle a PostgreSQL installation with a customized PGDATA using the packages provided by the PostgreSQL community. One issue with the packages is the hard coded PGDATA, which will be overwritten… 

pg_auto_failover: Setup and installation

When I attended PGIBZ 2019 earlier this year, I talked with Dimitri about pg_auto_failover and I promised to have a look at it. Well, almost half a year later and after we’ve met again at pgconf.eu it is time to actually do that. You probably already know that citudata was acquired by Microsoft earlier this year and that Microsoft seems… 

SLES15 SP1 – New features

With SLES15 SUSE introduced the Multimodal OS and the unified installer. Means, you only get what you really need. Your OS is flexible and you can easily add features you need and remove them as well. But this article shouldn’t be an explanation of the multimodal OS, it will show you some of the new features of SLES15 SP1. SUSE…