Sql 2005 建立作业自动备份的人工方法和程序代码!(经典)

来源:互联网 发布:说唱编辑软件 编辑:程序博客网 时间:2024/05/18 03:45

    ------------------------- 转自来自:http://www.lottery66.com/sscnews/20120412.html

      在SQL Server 2005中我们可以使用维护计划来为数据库自动备份。其使用方法如下:

          1、启动【sql server Management Studio】

      启动sql server Management Studio

          2、在【对象资源管理器】窗口里选择【管理】——【维护计划】。

      维护计划

          3、右击【维护计划】,选择【维护计划向导】。

      维护计划向导

          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=1goBEGIN TRANSACTIONDECLARE @ReturnCode INTSELECT @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)BEGINEXEC @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 QuitWithRollbackENDDECLARE @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 OUTPUTIF (@@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=0IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollbackEXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollbackEXEC @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=235959IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollbackEXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollbackCOMMIT TRANSACTIONGOTO EndSaveQuitWithRollback:    IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTIONEndSave:go


原创粉丝点击