Database Migration

I move the database and check the data on both sides before anything goes live.

What I do

Size and downtime

I map the schema, the size, and how long you can be offline.

Copy, check, cut over

I copy the data, check the rows on both sides, then cut over.

The queries that got slower

After cutover I watch the new database for the queries that got slower.

What you get

Check both sides

I move MySQL, PostgreSQL, and the managed databases people usually mean, and I check the rows on both sides before cutover.

A planned window

I say how long the window is before we pick a night.

The row counts

I compare counts and checksums before anything points at the new database.

The new database has to be fast enough

I check the slow queries on the new side before you call it done.

How the work goes

Size, downtime, rollback

I write down the size, the downtime, and how we roll back.

Test the copy first

The new database is up, and the copy tool is tested on a slice of the data.

The window we agreed

I run the copy, then the cutover, in the window we agreed.

Rows, then the slow queries

I check the rows, then the queries that matter, before I call it done.

Tools I use

These show up when they fit the job.

MySQL logoMySQL
PostgreSQL logoPostgreSQL
MongoDB logoMongoDB
Oracle logoOracle
Microsoft SQL Server logoMicrosoft SQL Server
Amazon RDS logoAmazon RDS
Google Cloud SQL logoGoogle Cloud SQL
Azure SQL Database logoAzure SQL Database
MySQL logoMySQL
PostgreSQL logoPostgreSQL
MongoDB logoMongoDB
Oracle logoOracle
Microsoft SQL Server logoMicrosoft SQL Server
Amazon RDS logoAmazon RDS
Google Cloud SQL logoGoogle Cloud SQL
Azure SQL Database logoAzure SQL Database

If the database has to move, plan the cutover first.

Questions people ask