The importance of automating tasks is profound.The following tasks could be automated
- Backing up the database
- Checking data integrity
- Dropping and re-creating indexes
- Transferring data
For task automation we need SQL Server service (MSSQLSERVER) to be up and running. The Windows application log is the location of all operating system messages for the Windows operating system.MSSQLSERVER service is needed to write events to the Windows application log. We can have a look into the Windows application log using the Windows Event Viewer.SQL Server Agent service must also be up and running.SQL Server Agent’s role is to take an action after a notification comes through the Windows application log.
Before I move on, let me talk a bit about SQL Server Agent. SQL Server Agent executes jobs and fire alerts. Some people are confused with the terms jobs and alerts.Jobs and alerts are defined separately and can be executed independently.A job can invoke an alert but the opposite is also possible.When we have alerts we can also have notifications of one or more operators by e-mail using Database Mail. Have a look in this post of mine to see how to configure Database Mail in SQL Server.
There are some steps involved when creating a job
- Create the job and its steps
- Create a schedule of the job execution if the job is not to be executed on demand
- Notify operators about the status of the job
We can create a job using various ways
- We can launch SSMS and define a job through SSMS
- By using system stored procedures (sp_add,sp_add_jobstep)
We need an instance of SQL Server running in our machine. I have SQL Server 2008 R2 Developer edition installed in my machine.
In case you do not have an instance of Enterprise edition or Developer edition of SQL Server 2008 / R2, you can download it here . This is a trial version.
1) Launch SQL Server Management studio and connect to the desired instance of SQL Server.
2) I will create a simple job that backs up the AdventureWorks database.You can follow my example by backing up any database you wish.
3) Expand SQL Server Agent,right-click Jobs and then click New Job.
The New Job window appears.I will fill in a name for the job and a description in the General tab
Have a look at the picture below
Please note that all jobs are enabled by default. SQL Server Agent disables jobs if the job schedule is defined at a specific time that has passed.It also disables jobs that are defined on a recurring basis with an end date that has also passed.
4) Now click on the Steps tab and click New.The New Job Step dialog appears.We must enter a name for the job step.In the Type drop down list, I choose Transact-SQL script ( T-SQL ) because the backup of the database will be executed using T-SQL.In the Database drop down list I choose the master database.I do that because master system database must be current if we want to backup a database.
Have a look at the picture below
The T-SQL statement for backing up the database is
1 | BACKUP DATABASE [AdventureWorks] TO |
2 | DISK = N 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\AdventureWorks.bak' |
3 | WITH NOFORMAT, NOINIT, NAME = N 'AdventureWorks-Full Database Backup' , SKIP, NOREWIND, NOUNLOAD, STATS = 10 |
4 | GO |
Ηave a look at the picture below
6) Now we are ready to create a Job schedule.Each created job can be executed on demand or by using a schedule.A scheduled job can occur at a specific time or on a recurring schedule.Select the Schedules tab and click New.
I fill in a name for the schedule and the schedule type is recurring.It occurs every Monday each week at 9 am starting on 25/05/2012
Have a look at the picture below
Click OK on this window.Click OK once more to finish creating the job.
7) If you want to create a notification about a job status you need to create an operator first.I will use SSMS to create an operator.Expand SQL Server Agent node and ten right-click on Operators and then click New Operator.Enter the name of the operator and then specify one or more methods of notifying the operator.
Have a look at the picture below
8) To notify one or more operators after the job finishes we need to select the job we just created and select Properties and then we need to select the Notifications tab.Then we just need to check the corresponding objects.
Have a look at the picture below
Then click OK
9) If you want to find out information about a job you can have a look at the sysjobhistory table of the msdb database.You can also select a job and right-click on it and then click View History.The Log File Viewer dialog box shows the history log of the job.We can find information such as
- Whether the job completed successfully or not
- Duration of the job
- Operators who were notified
- Date and time when the job step occurred
and select the alert type to be SQL Server event alert.
Have a look at the picture below
Now we need to define the response for the alert.Click on the Response page.I check the Notify operators and then in the operator list I select the operator I created earlier.
Have a look at the picture below
To recap SQL Server allows us to automate administrator tasks such as index maintenance and database backups.We can create jobs,operators,notifications and alerts. SQL Server Agent must be up and running to have automation.
ref : http://dotnetstories.wordpress.com/2012/05/23/automating-sql-server-administration-tasks/
No comments:
Post a Comment