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:
- Correcting identity values. A sample stored procedure is available on the Db
Maint web site (www.dbmaint.com).
- Performing Bulk Copy (before or after execution).
- Other batch processing.
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.