Codementor Events

How and why I built Database Backup Tool (SQLServerBooster)

Published Sep 27, 2017Last updated Sep 28, 2017
How and why I built Database Backup Tool (SQLServerBooster)

About me

I’m a Guatemalan guy. I’ve been working with Microsoft technlogies since the '90s.

I’ve also been working with databases, such as Microsoft SQL Server®, Oracle®, a little bit of Informix®, SYBASE®, and MySQL®.

I taught Operating Systems, Data Structures and Algorithms Analysis, and IT at the Universidad del Valle de Guatemala for about five years, and taught Programming and IT at the Universidad del ISTMO for about four years.

Nowadays, I’m interested in Microsoft SQL Server® performance and Business Intelligence. I work in this field as an independent consultant.

The problem I wanted to solve

A couple of years ago, I found myself needing an application that could do backups of my client's databases, compress them, and automatically send them through FTP. Some of my clients only have SQL Server Express versions and those capabilities are not available for it.

Searching the Internet, I found a couple of applications that have these capabilities, but they were either too expensive (at least for my clients budget!) or could only partially make what I needed for the less expensive command based ones.

So I decided to create my own application to satisfy my needs.

I started with something simple. As I worked on the program, I realized that it would be great if it could perform more tasks, taking into account that other users could have the same problem I had. That is how I decided to create a more robust application.

What is SQLServerBooster (Database Backup Tool)?

I made an SQLServerBooster that is a free application for DBAs, developers, or people that do management around Microsoft SQL Server® (all editions including Express), MySQL®, MariaDB®, PostgreSQL®, Oracle® and Firebird®, and need to make backups automatically, compress, and send through FTP — Amazon S3®, Amazon Glacier®, Windows Azure®, Dropbox®, Rackspace®, Box®, Google Drive®, Google Cloud Storage®, or network.

It supports Relational Databases (RDB) and SQL Server Analysis Services (SSAS) databases.

Tech stack

  • .NET
  • C#
  • SMO - Server Management Objects
  • MS SQL Server
  • MySQL
  • MariaDB
  • Oracle
  • Firebird
  • PostgreSQL
  • DevExpress

The process of building SQLServerBooster

  • Define the functionalities
  • Conceptualize Entity Relationship
  • Define the architecture and framework
  • Develop
  • Test
  • Release

Challenges I faced

The cloud API services were robust. Because of this, I had to make my own API.

The literature about SMO was limited, so I had to investigate and research to learn it.

Key learnings

  • I learned and improved my architecture knowledge.
  • I learned how different DB engines and cloud services work.
  • I learned how setups work because I used Wix Toolset and Inno Setup.

Tips and advice

You have to make a robust framework because this will make your life easier while you develop and your project increases in size.

Final thoughts and next steps

I will keep improving it, include more DB Engines, and add more features.

Discover and read more posts from Erik Veliz
get started
post commentsBe the first to share your opinion
Show more replies