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.

Recurring PostgreSQL Installations using RHEL 8 and Clones

This Blog is a follow up uf one of my older Blogs and my Article at heise.de: Blog at dbi-services.com Article at heise.de For RHEL 8 at its clones like AlmaLinux, CentOS, Oracle Linux and Rocky Linux i have written a shell script to automated recurring setups. This is used for a cloud project using own virtual machines. The script… 

SQL Server: How to compare Server and Database Collation

Sometimes during an SQL Server audit, I check the collation of the server and the databases but every time separately. The goal of this blog is to give you a script to have both and compare it. First step is to have the server collation and the code page. The code page will help to see if the character set… 

SQL Server: Analysis of SCOM Warning on the Health Check

Sometimes, it’s hard to find how to analyze a Warning in the SCOM Interface and correct the problem. By a customer, we install new instances in SQL Server 2019 and change the version of SCOM. All new servers have a warning on the Health. The first step in the SCOM interface is to go to the SQL Server Roles: On… 

SQL Server Tips: Get back permissions lost for mount points!

Recently by a customer, we are facing the case to lose all mount points on a secondary node in a HA SQL Server AlwaysOn infrastructure due to a big problem on the Datacenter. We need to build from scratch all mount points for the Data, Log and Tempdb. After multiple researches, I didn’t find how to give back correctly the… 

Parameterized Views with SYS_CONTEXT in Oracle. How can the optimizer peek values?

There was a dicsussion a couple of years ago about a mssing feature in Oracle that the Optimizer is not peeking values when SYS_CONTEXT is being used in a predicate. I.e. specifically when using SYS_CONTEXT in Views to simulate passing parameters to views. See the following links concerning this topic: https://connor-mcdonald.com/2016/10/20/taking-a-peek-at-sys_context https://blog.jooq.org/2016/10/20/be-careful-when-emulating-parameterised-views-with-sys_context-in-oracle https://community.oracle.com/ideas/15826 E.g. take the example of Connor McDonald… 

Patroni on FreeBSD 13?

You can already find several blog posts around PostgreSQL protected by Patroni on our blog. They all have in common, that the setup is on a flavor of Linux. As I got impressed by FreeBSD and played with it during the last weeks (some blog posts here), I wanted to know if Patroni runs well on FreeBSD. Well, here are… 

Amazon RDS Oracle in Multitenant

By Franck Pachot . AWS has just added the possibility to create your oracle Database as as CDB (Container Database), the “new” architecture of Oracle where an instance can manage multiple databases, adding a new level between the heavy instance and lightweight schema: At the time I’m writing this, I see it only in the “old” console (“original interface”) not… 

PostgreSQL on Oracle free tier ARM

By Franck Pachot . This follows the previous post about the Oracle Cloud ARM compute shape just announced on May 25th. The processor is ARM v8.2 with LSE (atomic instructions) and PostgreSQL can benefit from it (see Dramatical Effect of LSE Instructions for PostgreSQL on Graviton2 Instances). I have installed GCC 11 in the previous post, on a Oracle Linux… 

Automate restore from Rubrik with PowerShell

One of our customer uses Rubrik as a solution to recover, manage, and secure all their data. In this context, Rubrik is used to backup and restore all the SQL Server instances. We need to run restore tests in this validated environment every year. To do so we decide to create a PowerShell script to automate the restore of all… 

Why is the default postgres database slightly larger than template1?

You probably know that a fresh initialized PostgreSQL cluster comes with three databases by default: template0, template1, and postgres. If you want to know why they are there, and what their purpose is, check this post. In this post we’ll look at something you may never have noticed: Why is the postgres database, even after a fresh initdb, slightly larger…