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.

AMM and ASMM derived parameters

By Franck Pachot . The latest DBA Essentials Workshop training I’ve given raised a question about PGA_AGGREGATE_LIMIT. The default depends on PGA_AGGREGATE_TARGET. So how is it calculated in AMM where PGA_AGGREGATE_TARGET is dynamic? Is it also dynamic or is it determined by the value at instance startup only? The PGA_AGGREGATE_LIMIT default value is documented. I’ll use the following query to… 

SQL Server 2016: New SQL PowerShell CMDLETs for ErrorLog

With the latest release of SQL Server Management Studio(SSMS) 2016 (13.0.15500.91), downloadable here, was introduced new CMDLETs for Always Encrypted, SQL Agent and the  ErrorLog. In this article, I will present you the 2 new CMDLETs for the Error Logs: Get-SqlErrorLog: Retrieves the SQL Server Logs. Set-SqlErrorLog: Sets or resets the maximum number of error log files before recycling. My… 

Oracle Public Cloud patch conflict

By Franck Pachot . This morning I wanted to test a patch (18633374) in the Oracle Cloud Service. The DBaaS was created as an ‘Enterprise Edition Extreme Performance’ which comes with all options, including multitenant option. I applied my patch. My test required to create a new tablespace but it failed with: ORA-65010: maximum number of pluggable databases created This… 

SQL Server 2016 AlwaysOn: Direct seeding and backup considerations

As promised in my prior blog post, we’ll talk now about direct seeding feature and backups. We found an interesting LIMIT_CONCURRENT_BACKUPS value for current state of the hadr_automatic_seeding_state_transition event. As said last time, this value is meaningful by itself. So let’s try to perform a backup while the database is concerned by an active seeding session. In fact, my backup… 

Set the SQL Native Client Default Port with PowerShell

I written an article about “SQL Server 2012: Configuring your TCP Port via PowerShell” and I received a question from PaulJ: “How do you set the port for the SQL Native Client 11.0 Configuration (32bit) – as seen in the SQL Configuration Manager?” This is a very good question and I decide to write this blog as an answer to… 

Nulls in composite keys

By Franck Pachot . Comparison of NULL can be misleading and it’s even worse for unique constraint validation. Having partial nulls in a composite key can be tricky because the SQL ANSI specification is not very easy to understand, and implementation can depend on the RDBMS. Here is an example with composite unique key and foreign key on Oracle. Unique… 

SharePlex Compare and Repair commands

By Mouhamadou Diaw Reading Franck Pachot blog about comparing source and target in a Dbvisit replication (http://dbi-services.com/blog/compare-source-and-target-in-a-dbvisit-replication/), I decide to write a small article about how we can do same thing with SharePlex. Indeed SharePlex provides built-in commands to compare and repair synchronization. Below is our configuration file. We are just replicating table article to article_rep. Both tables contain 2000000… 

Oracle Multitenant feature name

By Franck Pachot . We all know what is the multitenant option: a container database (CDB) with multiple user pluggable databases (PDB). This requires Enterprise Edition plus option. But you can use the same architecture without the option and even in Standard Edition: a CDB with only one user PDB. It is called “single-tenant” or “lone PDB”. How do you… 

SQL Server 2016 AlwaysOn: Direct seeding and performance considerations

This blog post follows the previous one about new direct seeding feature shipped with SQL Server 2016. As a reminder, I had some doubts about using direct seeding with large databases because log stream is not compressed by default but I forgot the performance improvements described into the Microsoft BOL. I also remembered to talk about it a couple of months… 

Compare source and target in a Dbvisit replication

By Franck Pachot . You’ve setup a logical replication, and you trust it. But before the target goes into production, it will be safer to compare source and target. At least count the number of rows. But tables are continuously changing, so how can you compare? Not so difficult thanks to Dbvisit replicate heartbeat table and Oracle flashback query. Here… 

Script to suggest FK indexes

By Franck Pachot . In Oracle, when the referenced key is deleted (by delete on parent table, or update on the referenced columns) the child tables(s) are locked to prevent any concurrent insert that may reference the old key. This lock is a big issue on OLTP applications because it’s a TM Share lock, usually reserved for DDL only, and… 

GoldenGate 12.2 – Installation of the monitoring agent

As described in my last post, GoldenGate Studio requires the monitor agent on each GoldenGate instance. The goal of this agent is to allow GoldenGate Studio to interact with GoldenGate, for example, to deploy a new solution. So lets start with the installation of the agent. Download The first step is to download the monitor agent (Oracle GoldenGate Monitor). It…