------------------------- 转自来自:http://www.lottery66.com/sscnews/20120412.html
在SQL Server 2005中我们可以使用维护计划来为数据库自动备份。其使用方法如下:
1、启动【sql server Management Studio】
4、弹出如图所示的【维护计划向导】对话框,单击【下一步】。
5、【选择目标服务器】对话框,在【名称】文本框里可以输入维护计划的名称;在【说明】文本框里可以输入维护计划的说
明文字;【在服务器】文本框里可以输入要使用的服务器名;最后选择正确的身份证信息,单击【下一步】。
6、弹出如图所示【选择维护任务】对话框,在该对话框里可以选择多种维护任务:检查数据库完整性、收缩数据库、重新生成
或组织索引、更新统计信息、清除历史记录、执行sql Server代理作业、备份数据库等。在本例中选择【备份数据库(完整)】复
选框,其他维护任务的设置都大同小异 。
7、单击【下一步】,弹出如图所示【选择维护任务顺序】对话框,如果有多个维护任务,在此可以通过【上移】和【下移】两个按钮来设置维护任务的顺序,设置完毕后单击【下一步】。
8、弹出如图所示【定义任务】对话框,在【数据库】下 拉列表框里可以选择要备份的数据库名;在【备份组件】区域里可以
选择备份数据库还是备份数据库文件;在【目标】区域可以添加备份文件和备份设备、设置是否将备份数据追加到备份文件里等,
设置完毕后单击【下一步】 。
9、弹出如图所示【选择计划属性】对话框,单击【更改】。
10、弹出如图所示【新建作业计划】对话框,在该对话框里可以设置备份数据库的时间及频率,设置完毕后单击【确定】回到
如下所示对话框,再单击【下一步】。
11、弹出如图18.24所示【选择报告选项】对话框,在该对话框里可以选择如果管理维护计划报告:可以将其写入文件中,也可
以通过电子邮件发送数据库管理员。设置完毕后单击【下一步】。
12、弹出如图所示【完成向导】对话框,单击【完成】按钮完成维护计划创建操作。
13、创建完维护计划后,请确认sql server代理是否启动:在【对象资源管理器】窗口里,右击【sql Server代理】,在弹出的快
捷菜单里选择【启动】。
如果在新建作业或维护报错,如下:===== 请安装sql server 2005 sp3补丁来解决!
维护计划向导进度
- 创建维护计划“TimeBackup” (错误)
消息
创建维护计划失败。
------------------------------
其他信息:
未能从程序集“Microsoft.SqlServer.Smo, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91”中加载类型“Microsoft.SqlServer.Management.Smo.Agent.JobBaseCollection”。 (Microsoft.SqlServer.MaintenancePlanTasks)
- 将任务添加到维护计划 (已停止)
- 添加计划选项 (已停止)
- 添加报告选项 (已停止)
- 保存维护计划“TimeBackup” (已停止)
------------------------------------- 经典代码 --------------------------------------------------
-- 例子:@database_name=N'test', 换成你的数据库,此job每天早上1点执行
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'备份测试')
EXEC msdb.dbo.sp_delete_job @job_name=N'备份测试', @delete_unused_schedule=1
go
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** 对象: JobCategory [Database Engine Tuning Advisor] 脚本日期: 06/01/2012 10:39:32 ******/
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'Database Engine Tuning Advisor' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'Database Engine Tuning Advisor'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
END
DECLARE @jobId BINARY(16)
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'备份测试',
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'无描述。',
@category_name=N'Database Engine Tuning Advisor',
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** 对象: Step [备份数据] 脚本日期: 06/01/2012 10:39:33 ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'备份数据',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'exec [test_backup]',
@database_name=N'test',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'早上1:00',
@enabled=1,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_relative_interval=0,
@freq_recurrence_factor=0,
@active_start_date=20120601,
@active_end_date=99991231,
@active_start_time=0,
@active_end_time=235959
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
go