Tag Archives: oracle dba

Types of Shutdown in PostgreSQL

Types of Shutdown in PostgreSQL

PostgreSQL Shutdown TypeOracleBehavior
Smart (SIGTERM)SHUTDOWN NORMALThe server stops accepting new connections but allows existing sessions to continue running normally. PostgreSQL shuts down only after all active sessions disconnect and their transactions complete successfully.
Fast (SIGINT – Default)SHUTDOWN IMMEDIATEThe server stops accepting new connections and immediately terminates all active sessions. Any uncommitted transactions are rolled back, and PostgreSQL performs a clean shutdown gracefully.
Immediate (SIGQUIT)SHUTDOWN ABORTThe server terminates all processes instantly without performing a proper shutdown. No cleanup or checkpoint occurs, so PostgreSQL performs crash recovery by replaying WAL files during the next startup.
Shutdown TypeSignalCommand ExampleBehavior
SmartSIGTERMpg_ctl stop -D /pgData -m smartStops new connections, waits for existing sessions to finish normally, then shuts down.
Fast (Default)SIGINTpg_ctl stop -D /pgdata -m fastStops new connections, terminates active sessions, rolls back uncommitted transactions, and shuts down cleanly.
ImmediateSIGQUITpg_ctl stop -D /pgdata -m immediateStops immediately without proper shutdown. Recovery from WAL files happens during next startup.

Difference Between Reload and Restart

  • When we change server configuration parameters, PostgreSQL needs to read those changes before they become active.
  • Reload applies the new configuration without stopping or restarting the database service. Existing connections and database activity continue normally.
  • Some configuration parameter changes cannot be applied through reload and will only take effect after a restart.
  • Restart stops the PostgreSQL server gracefully, ends all running activities, releases resources, closes open files, and then starts the server again with the new configuration.

 

Smart Shutdown (SIGTERM):

[postgres@pgdb02 ~]$ pg_ctl stop -D /pgData/pgsql17/data -m smart
waiting for server to shut down.... done
server stopped
[postgres@pgdb02 ~]$

2026-07-03 14:26:59.741 +08 [3476] LOG:  received smart shutdown request
2026-07-03 14:26:59.752 +08 [3476] LOG:  background worker "logical replication launcher" (PID 3483) exited with exit code 1
2026-07-03 14:26:59.753 +08 [3478] LOG:  shutting down
2026-07-03 14:26:59.755 +08 [3478] LOG:  checkpoint starting: shutdown immediate
2026-07-03 14:26:59.765 +08 [3478] LOG:  checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.002 s, sync=0.003 s, total=0.012 s; sync files=2, longest=0.003 s, average=0.002 s; distance=0 kB, estimate=0 kB; lsn=1/105465F0, redo lsn=1/105465F0
2026-07-03 14:26:59.771 +08 [3476] LOG:  database system is shut down


[postgres@pgdb02 ~]$ pg_ctl start -D /pgData/pgsql17/data
waiting for server to start....2026-07-03 14:27:18.394 +08 [3487] LOG:  redirecting log output to logging collector process
2026-07-03 14:27:18.394 +08 [3487] HINT:  Future log output will appear in directory "log".
 done
server started
[postgres@pgdb02 ~]$

2026-07-03 14:27:18.394 +08 [3487] LOG:  starting PostgreSQL 17.10 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14), 64-bit
2026-07-03 14:27:18.396 +08 [3487] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2026-07-03 14:27:18.396 +08 [3487] LOG:  listening on IPv6 address "::", port 5432
2026-07-03 14:27:18.399 +08 [3487] LOG:  listening on Unix socket "/run/postgresql/.s.PGSQL.5432"
2026-07-03 14:27:18.404 +08 [3487] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2026-07-03 14:27:18.413 +08 [3491] LOG:  database system was shut down at 2026-07-03 14:26:59 +08
2026-07-03 14:27:18.425 +08 [3487] LOG:  database system is ready to accept connections

Fast Shutdown (SIGINT – Default):

[postgres@pgdb02 ~]$ pg_ctl stop -D /pgData/pgsql17/data -m fast
waiting for server to shut down.... done
server stopped
[postgres@pgdb02 ~]$

2026-07-03 14:28:26.839 +08 [3487] LOG:  received fast shutdown request
2026-07-03 14:28:26.844 +08 [3487] LOG:  aborting any active transactions
2026-07-03 14:28:26.854 +08 [3487] LOG:  background worker "logical replication launcher" (PID 3494) exited with exit code 1
2026-07-03 14:28:26.860 +08 [3489] LOG:  shutting down
2026-07-03 14:28:26.862 +08 [3489] LOG:  checkpoint starting: shutdown immediate
2026-07-03 14:28:26.874 +08 [3489] LOG:  checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.002 s, sync=0.005 s, total=0.015 s; sync files=2, longest=0.004 s, average=0.003 s; distance=0 kB, estimate=0 kB; lsn=1/105466A0, redo lsn=1/105466A0
2026-07-03 14:28:26.882 +08 [3487] LOG:  database system is shut down

[postgres@pgdb02 ~]$ pg_ctl start -D /pgData/pgsql17/data
waiting for server to start....2026-07-03 14:29:00.574 +08 [3505] LOG:  redirecting log output to logging collector process
2026-07-03 14:29:00.574 +08 [3505] HINT:  Future log output will appear in directory "log".
 done
server started
[postgres@pgdb02 ~]$

2026-07-03 14:29:00.575 +08 [3505] LOG:  starting PostgreSQL 17.10 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14), 64-bit
2026-07-03 14:29:00.579 +08 [3505] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2026-07-03 14:29:00.580 +08 [3505] LOG:  listening on IPv6 address "::", port 5432
2026-07-03 14:29:00.582 +08 [3505] LOG:  listening on Unix socket "/run/postgresql/.s.PGSQL.5432"
2026-07-03 14:29:00.587 +08 [3505] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2026-07-03 14:29:00.595 +08 [3509] LOG:  database system was shut down at 2026-07-03 14:28:26 +08
2026-07-03 14:29:00.607 +08 [3505] LOG:  database system is ready to accept connections

Immediate Shutdown (SIGQUIT):

[postgres@pgdb02 ~]$ pg_ctl stop -D /pgData/pgsql17/data -m immediate
waiting for server to shut down.... done
server stopped
[postgres@pgdb02 ~]$

2026-07-03 14:29:47.471 +08 [3505] LOG:  received immediate shutdown request
2026-07-03 14:29:47.485 +08 [3505] LOG:  database system is shut down


[postgres@pgdb02 ~]$ pg_ctl start -D /pgData/pgsql17/data
waiting for server to start....2026-07-03 14:30:17.965 +08 [3520] LOG:  redirecting log output to logging collector process
2026-07-03 14:30:17.965 +08 [3520] HINT:  Future log output will appear in directory "log".
. done
server started
[postgres@pgdb02 ~]$

2026-07-03 14:30:17.966 +08 [3520] LOG:  starting PostgreSQL 17.10 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14), 64-bit
2026-07-03 14:30:17.966 +08 [3520] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2026-07-03 14:30:17.966 +08 [3520] LOG:  listening on IPv6 address "::", port 5432
2026-07-03 14:30:17.970 +08 [3520] LOG:  listening on Unix socket "/run/postgresql/.s.PGSQL.5432"
2026-07-03 14:30:17.974 +08 [3520] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2026-07-03 14:30:17.983 +08 [3524] LOG:  database system was interrupted; last known up at 2026-07-03 14:29:00 +08
2026-07-03 14:30:19.211 +08 [3524] LOG:  database system was not properly shut down; automatic recovery in progress
2026-07-03 14:30:19.216 +08 [3524] LOG:  redo starts at 1/10546718
2026-07-03 14:30:19.216 +08 [3524] LOG:  invalid record length at 1/10546750: expected at least 24, got 0
2026-07-03 14:30:19.217 +08 [3524] LOG:  redo done at 1/10546718 system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s
2026-07-03 14:30:19.221 +08 [3522] LOG:  checkpoint starting: end-of-recovery immediate wait
2026-07-03 14:30:19.231 +08 [3522] LOG:  checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.002 s, sync=0.003 s, total=0.012 s; sync files=2, longest=0.002 s, average=0.002 s; distance=0 kB, estimate=0 kB; lsn=1/10546750, redo lsn=1/10546750
2026-07-03 14:30:19.239 +08 [3520] LOG:  database system is ready to accept connections

Caution: Your use of any information or materials on this website is entirely at your own risk. It is provided for educational purposes only. It has been tested internally, however, we do not guarantee that it will work for you. Ensure that you run it in your test environment before using.

Thank you,
Rajasekhar Amudala
Email: br8dba@gmail.com
Linkedin: https://www.linkedin.com/in/rajasekhar-amudala/

Install Oracle AI Database 26ai

Install Oracle AI Database 26ai (23.26.1) for Linux x86-64

Pre-requisites already been taken care like memory, swap, kernel parameters, add groups, profile and users…etc

Table of Contents

___________________________________________________________________________________________________

1. Hardware Requirements
2. Verify OS version
3. Download 19c db software
4. Oracle Installation Prerequisites
5. Unzip
6. Invoke ./runInstaller
7. Verify
___________________________________________________________________________________________________


1. Hardware Requirements

The first thing we need to verify the hardware requirements

— Check Physical RAM.

[root@lxicborasgv01 ~]# grep MemTotal /proc/meminfo
MemTotal:       17516840 kB
[root@lxicborasgv01 ~]#


— Check Swap Space.

[root@lxicborasgv01 ~]# grep SwapTotal /proc/meminfo
SwapTotal:       8253436 kB
[root@lxicborasgv01 ~]#

-– Check space available in /tmp

[root@lxicborasgv01 ~]# df -h /tmp
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/ol_10-root   62G  7.2G   54G  12% /
[root@lxicborasgv01 ~]#


-– Check space for Oracle Software and pre-configured database.

[root@lxicborasgv01 ~]# df -h /u01
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/ol_10-home   30G  246M   30G   1% /u01
[root@lxicborasgv01 ~]#


—- Check CPU 

[root@lxicborasgv01 ~]# lscpu | grep -i "CPU(s):" | head -n 1
CPU(s):                                  4
[root@lxicborasgv01 ~]#


2. Verify OS version

[root@lxicborasgv01 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.6 (Plow)
[root@lxicborasgv01 ~]#

[root@lxicborasgv01 ~]# cat /etc/hosts | grep -i lxicborasgv01
192.168.2.52 lxicborasgv01
[root@lxicborasgv01 ~]#


3. Download Software

Download the Oracle software from OTN or MY ORACLE SUPPORT (MOS).

https://www.oracle.com/database/technologies/oracle26ai-linux-downloads.html


4. Oracle Installation Prerequisites

[root@lxicborasgv01 ~]# dnf install -y oracle-ai-database-preinstall-26ai
Last metadata expiration check: 0:44:40 ago on Wed 28 Jan 2026 06:14:51 PM.
Dependencies resolved.
==============================================================================================================================================================================================================
 Package                                                           Architecture                          Version                                           Repository                                    Size
==============================================================================================================================================================================================================
Installing:
 oracle-ai-database-preinstall-26ai                                x86_64                                1.0-1.el9                                         ol9_appstream                                 34 k
Installing dependencies:
 compat-openssl11                                                  x86_64                                1:1.1.1k-5.el9_6.1                                ol9_appstream                                1.5 M

Transaction Summary
==============================================================================================================================================================================================================
Install  2 Packages

Total download size: 1.5 M
Installed size: 3.8 M
Downloading Packages:
(1/2): oracle-ai-database-preinstall-26ai-1.0-1.el9.x86_64.rpm                                                                                                                295 kB/s |  34 kB     00:00
(2/2): compat-openssl11-1.1.1k-5.el9_6.1.x86_64.rpm                                                                                                                           3.4 MB/s | 1.5 MB     00:00
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                         3.4 MB/s | 1.5 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                      1/1
  Installing       : compat-openssl11-1:1.1.1k-5.el9_6.1.x86_64                                                                                                                                           1/2
  Installing       : oracle-ai-database-preinstall-26ai-1.0-1.el9.x86_64                                                                                                                                  2/2
  Running scriptlet: oracle-ai-database-preinstall-26ai-1.0-1.el9.x86_64                                                                                                                                  2/2
  Verifying        : compat-openssl11-1:1.1.1k-5.el9_6.1.x86_64                                                                                                                                           1/2
  Verifying        : oracle-ai-database-preinstall-26ai-1.0-1.el9.x86_64                                                                                                                                  2/2

Installed:
  compat-openssl11-1:1.1.1k-5.el9_6.1.x86_64                                                        oracle-ai-database-preinstall-26ai-1.0-1.el9.x86_64

Complete!
[root@lxicborasgv01 ~]#

[root@lxicborasgv01 ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)
[root@lxicborasgv01 ~]#


5. Unzip Software


NOTE: During installation using OUI, you cannot manually edit the Oracle Home location. The installer automatically detects the ORACLE_HOME from the directory where the database binaries are unzipped. Therefore, make sure to unzip the binaries directly inside the intended ORACLE_HOME directory before running ./runInstaller.

Also note that after unzipping, the files will not be placed under a single directory as in Oracle 10g, 11g, and 12c.

[root@lxicborasgv01 ~]# mkdir -p /u01/app/oracle/product/23.26.1/dbhome_1
[root@lxicborasgv01 ~]# chown -R oracle:oinstall /u01
[root@lxicborasgv01 ~]# chmod -R 775 /u01
[root@lxicborasgv01 ~]#

[root@lxicborasgv01 ~]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@lxicborasgv01 ~]#

[oracle@lxicborasgv01 ~]$ cd /u01/app/oracle/product/23.26.1/dbhome_1/
[oracle@lxicborasgv01 dbhome_1]$ ls -ltr
total 2349668
-rw-r--r--. 1 oracle oinstall 2406058543 Jan 28 12:25 LINUX.X64_2326100_db_home.zip
[oracle@lxicborasgv01 dbhome_1]$

[oracle@lxicborasgv01 dbhome_1]$ unzip LINUX.X64_2326100_db_home.zip
Archive:  LINUX.X64_2326100_db_home.zip
  inflating: META-INF/MANIFEST.MF
  inflating: META-INF/ORACLE_C.SF
  inflating: META-INF/ORACLE_C.RSA
   creating: OPatch/
  inflating: OPatch/README.txt
   creating: OPatch/auto/
..
..
  rdbms/mesg/ocius.msg   -> ./oraus.msg
  rdbms/mesg/ocizhs.msb  -> orazhs.msb
  rdbms/mesg/ocizht.msb  -> orazht.msb
[oracle@lxicborasgv01 dbhome_1]$


6. Invoke ./runInstaller

Start the Oracle Universal Installer (OUI) by issuing the following command.

[oracle@lxicborasgv01 ~]$ cd /u01/app/oracle/product/23.26.1/dbhome_1/

[oracle@lxicborasgv01 dbhome_1]$ ./runInstaller 

Launching Oracle AI Database Setup Wizard...
          

[root@lxicborasgv01 ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@lxicborasgv01 ~]#
[root@lxicborasgv01 ~]# /u01/app/oracle/product/23.26.1/dbhome_1/root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/23.26.1/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
[root@lxicborasgv01 ~]#
 


7. Verify

[oracle@lxicborasgv01 ~]$ export ORACLE_HOME=/u01/app/oracle/product/23.26.1/dbhome_1
[oracle@lxicborasgv01 ~]$ export PATH=$ORACLE_HOME/bin:$PATH
[oracle@lxicborasgv01 ~]$ which sqlplus
/u01/app/oracle/product/23.26.1/dbhome_1/bin/sqlplus
[oracle@lxicborasgv01 ~]$
[oracle@lxicborasgv01 ~]$ sqlplus /nolog

SQL*Plus: Release 23.26.1.0.0 - Production on Wed Jan 28 21:15:21 2026
Version 23.26.1.0.0

Copyright (c) 1982, 2025, Oracle.  All rights reserved.

SQL>

Caution: Your use of any information or materials on this website is entirely at your own risk. It is provided for educational purposes only. It has been tested internally, however, we do not guarantee that it will work for you. Ensure that you run it in your test environment before using.

Thank you,
Rajasekhar Amudala
Email: br8dba@gmail.com
WhatsApp : +
Linkedin: https://www.linkedin.com/in/rajasekhar-amudala/

Training

BRIGHT DBA Training

Train your team.
Or train yourself.

Become a production-ready DBA

Instructor-led, hands-on DBA training for enterprise teams and individuals — Oracle, RAC, Data Guard, GoldenGate, Exadata, PostgreSQL and SQL Server.

🏢 For Teams

Corporate Training

  • Customised to your technology stack
  • Real production scenarios and labs
  • Schedule that suits your team
Request a Proposal →
💻 For Individuals

Online Training

  • Live, instructor-led classes
  • Telugu or English
  • Weekend, weekday and fast-track batches
Enquire Now →
Training Programs

Choose your DBA track

Career-focused programs across Oracle, PostgreSQL and SQL Server, each built around real production scenarios — not just theory.

🔴

Oracle DBA

From installation to backup, Data Guard, patching and tuning.

ArchitectureRMANData GuardPatchingTuning
₹12,000₹15,00020% OFF
Duration: 45 days
Language: Telugu / English
Batches: Weekend · Weekday · Fast Track
Enquire Now
🧩

Oracle RAC DBA

Clusterware, ASM, RAC administration and production troubleshooting.

Grid InfraASMRAC AdminAdd/Delete NodeExadata Intro
₹12,000₹15,00020% OFF
Duration: 30 days
Language: Telugu / English
Batches: Weekend · Weekday · Fast Track
Enquire Now
🚀

Oracle Performance Tuning

Find and fix slow SQL with statistics, AWR/ASH, explain plans and tracing.

StatisticsAWR / ASHExplain PlanSQL Tuning AdvisorSQLT & Tracing
₹6,000₹12,00050% OFF
Duration: 2 days
Language: Telugu / English
Batches: Weekend only
Enquire Now
🔁

Oracle GoldenGate

Real-time data replication and zero-downtime migration, from install to troubleshooting.

InstallationDML & DDL ReplicationIntegrated CaptureZero Downtime Migration
Coming soon
Language: Telugu / English
Batches: To be announced
Notify Me
🛡️

Oracle Data Guard

A dedicated course on configuring Data Guard for standalone and RAC systems, with DGMGRL, switchover and failover.

Standalone & RACDGMGRL BrokerSwitchoverFailover
₹3,000₹5,00040% OFF
Duration: 2 days
Language: Telugu / English
Batches: Weekend only
Enquire Now
🗄️

Oracle Exadata Setup on VirtualBox

Build your own Exadata simulation — 2 DB nodes + 3 cell nodes — then take disks all the way to ASM disk groups and set up Oracle RAC on Exadata. Practise CellCLI and DB node patching (simulated cells can’t be patched).

₹3,000₹6,00050% OFF
Duration: 2 days
Language: Telugu / English
Batches: Weekend only
Enquire Now
🐘

PostgreSQL DBA

Install to HA: backups, PITR, replication, Patroni, HAProxy and upgrades.

Backup & PITRReplicationrepmgrPatronipgBackRest
₹12,000₹15,00020% OFF
Duration: 45 days
Language: Telugu / English
Batches: Weekend · Weekday · Fast Track
Enquire Now
🪟

SQL Server DBA

Administration, security, backup/restore and Always On Availability Groups.

InstallationSecurityBackup/RestoreLog ShippingAlways On
Coming soon
Language: Telugu / English
Batches: To be announced
Notify Me
Ways to Learn

Online & Corporate Training

Whether you are upskilling yourself or your whole team, we have a format for you.

💻

Online Training

Live, instructor-led DBA classes for individuals and career switchers, with hands-on labs.

Telugu / EnglishWeekendWeekdayFast Track
Enquire Now
🏢

Corporate Training

Customised programs for your team, matched to your technology stack and skill level.

OracleRACPostgreSQLSQL Server
Request a Proposal
Get in Touch

Questions about a course or batch?

Call or message us on WhatsApp, or send an email. We usually reply quickly.

Free Knowledge Base

Looking for tutorials?

Step-by-step Oracle and PostgreSQL articles, grouped by topic, in our Knowledge Base.

Visit Knowledge Base →
Rajasekhar Amudala - Senior DBA
Your Trainer

Rajasekhar Amudala

Senior Database Professional, Trainer and Consultant with hands-on experience in Oracle, SQL Server and PostgreSQL across production-critical environments. Founder of BrightDBA — hands-on experience first, theory next.

💬

Post #7

BRIGHT DBA · Independent DBA Consultant

24/7 Managed Database Services

Remote DBA services from an independent senior Oracle and PostgreSQL consultant: monitoring, backup, patching, tuning, high availability and migration, with a DBA you can talk to directly.

OraclePostgreSQLReliableSecureScalable

What you get

  • Round-the-clock monitoring and alerting
  • Fast response when something breaks
  • Tested backups and recovery
  • A predictable monthly cost instead of a full-time hire
  • A senior DBA who knows your systems
What We Manage

Everything your databases need to stay healthy

One person responsible for availability, performance and recoverability, so problems are caught before your users notice them.

📡

24/7 Monitoring & Alerting

Continuous checks on availability, space, sessions, locks, replication lag and slow queries, with alerts that reach a person.

💾

Backup & Recovery

Backup strategy, verification and regular restore tests with RMAN, pgBackRest and point-in-time recovery.

🔧

Patching & Upgrades

Planned patching and version upgrades with rollback plans and minimal downtime.

🚀

Performance Tuning

Find and fix slow SQL, tune statistics, memory and I/O, and keep performance steady as data grows.

🛡️

High Availability & DR

Data Guard, RAC, Patroni and repmgr, designed, built and tested with switchover drills.

🔁

Migrations

Zero-downtime migrations with GoldenGate, between versions and platforms, including Oracle to PostgreSQL.

Our Specialities

Deep expertise where it matters

🔴

Oracle

RAC, Data Guard, GoldenGate, Exadata, multitenant, RMAN backup and recovery, patching, upgrades and performance tuning.

View Oracle DBA services →
🐘

PostgreSQL

Patroni, repmgr, HAProxy and pgBackRest, streaming replication, point-in-time recovery, tuning and version upgrades.

View PostgreSQL DBA services →
🔀

Oracle to PostgreSQL Migration

Cut licence costs by moving to PostgreSQL. We assess, plan and migrate your databases with minimal downtime.

Learn more →
How We Support You

Clear, direct and easy to work with

💬

Direct chat channel

A WhatsApp or Slack channel for quick questions and updates, so you talk to the DBA, not a ticket queue.

📞

Incident calls

When something critical breaks, we join a live call on Zoom or Meet and work the problem with your team.

📊

Monthly health report

A clear report on performance, capacity, backups and risks, with recommendations.

🔐

Security & access review

Regular checks of users, privileges and patch levels to keep your databases safe.

📘

Runbooks & documentation

Your procedures documented, so recovery and routine tasks do not depend on one person.

⏱️

Agreed response targets

Response times are agreed per plan, matched to how critical each database is.

Service Plans

Choose the level of cover you need

Every plan is scoped to your environment. Pricing is a custom quote, and response targets are agreed per plan.

Essential

Business-hours care

For smaller environments that need regular attention.

  • Monitoring during business hours
  • Daily backup checks
  • Monthly health report
  • Email and WhatsApp support
Standard · Most popular

24/7 coverage

For production systems that cannot go down.

  • 24/7 monitoring and alerting
  • Incident response with agreed targets
  • Planned patching and maintenance
  • Monthly review with recommendations
Premium

Proactive and complete

For critical, high-availability databases.

  • Everything in Standard
  • Proactive performance tuning
  • Disaster recovery drills
  • Priority response and named DBA
How It Works

Up and running in four steps

1

Book a call

Tell us about your databases and what worries you.

2

Assessment

We review your databases and agree the scope and plan with you.

3

Onboarding

We set up monitoring, access and runbooks, then take over.

4

We run it

We watch, maintain and report on your databases every month.

FAQ

Frequently asked questions

What is included in a managed database plan?

Depending on the plan: monitoring, backup checks, patching, performance tuning and regular reports. We agree the exact scope with you before we start.

What response time do you offer?

Response targets are agreed per plan, based on how critical your databases are to your business.

Which databases do you manage?

Oracle (including RAC, Data Guard, GoldenGate and Exadata) and PostgreSQL.

Can you help us migrate from Oracle to PostgreSQL?

Yes. We assess your Oracle databases, plan the move and carry it out with minimal downtime, using the tools that suit your case.

How do you handle backups and recovery?

We set up and monitor backups, for example RMAN for Oracle and pgBackRest for PostgreSQL, and we test restores regularly so recovery is proven, not assumed.

How do you access our systems, and is it secure?

Access is agreed up front, through your VPN or bastion host, with named accounts and the least privileges needed. Confidentiality terms are part of the agreement.

Do you work with databases in the cloud?

We can manage databases running on cloud servers. Tell us your setup and we will confirm what we can support.

How do we get started?

Book a call or send us a message. We begin with an assessment of your environment and then propose a plan.

Talk to Us

Let us look after your databases

Book a call, or tell us what you run and what keeps you up at night. We will get back to you soon with a proposal.

Tell us what you need

💬