Overview

Why Db Maint?

Ease of use

Our goal was to make Db Maint as easy to use as possible, but still powerful and flexible enough to fit most installations.

Edit defined Jobs and Tasks

Information about jobs and are stored in tables in SQL Server (msdb). You can open previously defined jobs and tasks and edit them.

Flexible and extensible task scheduling

A job can perform any of the predefined commands. You can also extend it with your own TSQL commands, all in the same job definition. The TSQL commands do not have to be written in any certain way. Any messages returned from the procedure execution will be logged to he Db Maint log.

The ability to execute TSQL commands along with your job definition gives you virtually endless functionality. Some examples:

Serial execution of tasks

All SQL Server installations need to maintain several databases (since you definitely should run maintenance jobs against your system databases). With Db Maint, one task contains several jobs, where one job defines a certain database (or group of databases). All jobs within a task are executed serially. You define the order for which the jobs execute and even the order for the different operations in the task definition.

Advanced logging

Your consistency checks are quite useless if you won’t be informed when something has gone wrong in the database.

Db Maint presents its log in the Db Maint application log window, NT's Eventlog, through an email and to an HTML file. The log includes all messages from the commands, including SQL Servers error number so that you (or your support provider) have as much details about the situation as possible. All messages are categorized as INFORMATION, WARNING or ERROR.

Advanced backup features

New backup features in Db Maint 4.0 include the ability to immediately copy a backup file to some other destination. This is very useful if you pick up the files to tape, but only once per day. Say you do log backup every hour. If you don’t get (copies of) the log backup files to some other machine you risk losing one day worth of data if the files on the original machine becomes inaccessible.

There is also an archive feature, allowing you to create an archive copy (which will not be deleted) of a database backup the first day every month, quarter, half-year or year.

You can select to compress any of above backup file. Db Maint does not include compression, but it allow you to specify a command line to be executed which does the compression and if the output file is created, the input file will be deleted. Db Maint is pre-configured for use with command-line winzip (wzzip.exe).

In addition, you can select to automatically do a test-restore after each backup. If any error messages are returned, they will be logged in the Db Maint log. This is a good way to ensure that a backup is restorable. This can even be done on another SQL Server: log shipping.

Reporting of server and database configuration

The report can be exported to a text file. This is valuable for documentation purposes as well as for troubleshooting. A report can also be generated regularly though a Db Maint task.

Performance logging and presentation

Vital performance counters can be continuously logged. The logging is non-intrusive. Performance information is stored in a table and the format is very compact. This information is valuable for trend analysis and capacity planning. Db Maint client includes a graphical presentation of collected performance data. This information can also be exported to other tools, such as Microsoft Excel. Since the information is stored in a table, other tools can be used for analysis as well. Any performance monitor counters can be logged in Db Maint version 3.0, since the logging is based on the performance monitor API.

Grouping of databases

You will probably find that you have several databases for which you want to define similar maintenance routines. The Database Group functionality allows you to group several databases and add them as a group to a job.

Support for "All Databases"

Some installations have many databases. It would be a tedious task to define a job for each database. With the "All" support, you simply define one job for all databases and a task for that job. That is all you have to do. This will also include databases that are created after that job was created.

When using Database Groups or "all", msdb is run last

This is done automatically and is important since msdb contains information required to restore your databases easily. This information is stored in history tables and SQL Enterprise Manager reads those tables during restore. If msdb were not the last database in your backup schedule, you would risk restoring an unnecessarily old version of your database.

Note that this is per Job. If you have scheduled several Jobs within a Task, a later Job might backup a database after the Job that backed up msdb was run.

Database structure generation

(Relevant for SQL Server 6.5 only)

When loading a SQL Server backup (dump), you need to create the database first. It should be created with the same data and log allocation structure as it had when the backup was performed.

Db Maint saves this structure with each backup and automatically presents the necessary CREATE DATABASE and ALTER DATABASE commands to re-create the database in a correct manner. Since this information is stored with each run, you can re-create a database correctly even if you expanded it after that backup was taken.

Db Maint creates predefined Backup Devices (Dump Devices)

This simplifies the task of checking that the backup devices really contain the backups that they should.