Ola Hallengren's solution is based on beset practice and years of experience. There are some quirks though. Take a look....
Before you start
Before you run the initial script, check the first few parameters and the database used:
Hint: Because the tables and procedures are created in the database specified at line 20 in the script (
use [master]), you might want to consider storing these objects in a different database, by modifying the script to point to e.g. the
msdb database, or some other user specified database.
Hint: Read the description for each parameter and modify according to your requirements or restrictions.
The solution is deployed as one script named
MaintenanceSolution.sql, which itself will create stored procedures, tables and jobs .
Following is a list of objects that are created:
Out of the box Ola's
MaintenanceSolution.sql script will create the following jobs:
- Database Backup - SYSTEM_DATABASES - FULL
- Database Backup - USER_DATABASES - DIFF
- Database Backup - USER_DATABASES - FULL
- Database Backup - USER_DATABASES - LOG
- DatabaseIntegrityCheck - SYSTEM_DATABASES
- DatabaseIntegrityCheck - USER_DATABASES
- IndexOpitmize - USER_DATABASES
- Output File Cleanup
- CommandLog Cleanup
Hint: Please be aware that Ola's solution does not create any job schedules! This is something you will have to plan for and create yourself.
Now if you know that these jobs belong to Ola's solution, then you can leave them as is. Otherwise if you would prefer to mark them, then you might consider prefixing a string inside the
MaintenanceSolution.sql before you execute the script. Do a regex search for the string
SET @JobName[0-9][0-9] = ' with a suitable text-editor and add a prefix to the job's name
OLA Database Backup - SYSTEM_DATABASES - FULL
Consideration: Please keep in mind that if you update the scripts later on with a newer version from Ola and don't alter the names from the original to match your naming convention, then you will have duplicate jobs. You might want to keep the job names "as-is".
Ola created his
IndexOptimize stored procedure according to the following Microsoft recommendations:
- General Index Maintenace when data/index > 1000 pages
- Fragmentation >5% and <= 30%
- Fragmentation > 30%
Hint: Depending on your data and/or the amount of records in some of your tables, you might want to consider creating individual jobs with different parameters that suit your requirements for larger tables.
The backup job create sub-directories for each level of the database's instance. So if you are running the script on a server
MyServer on an instance named
MyInstance and the database is named
MyDatabase and you are looking at a Full backup, then the backup file will be stored in the following directory with the following name:
A DIFF backup will look like this:
Consider deploying the solution to a development server as is (ok, modify the database you will be using) and then have a look at the individual scripts, jobs and tables. Familiarise yourself with the solution and then modify according to your requirements.
And of course consider reading Ola's documentation on his site: