[总结]SqlServer中如何实现自动备份数据!

第1种方法:

企业管理器
  --管理
  --右键数据库维护计划
  --新建维护计划
  --<下一步>
  --选择你要备份的数据库
  --<下一步>直到"指定数据库备份计划"这项
  --指定存储备份文件的位置,这里根据需要选择备分到磁带还是磁盘
  --单击调度后面的"更改"按纽
  --定义你的数据备份计划的时间安排,完成后确定
  --<下一步>
  --这里可以设置备份文件的保留时间和备文件的扩展名
  --<下一步>
  --选择是否做日志备份计划
  --<下一步>直到完成.

然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行

第2种方法:

企业管理器
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句: backup database 数据库名称 to disk='c:\备份文件名.bak'
--确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排

然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行


第3种方法:

建作业:
企业管理器中,管理——》SQL SERVER代理——》作业——》鼠标右键新建作业——》常规页中输入名称——》步骤页中新建步骤、输入名称、加入SQL语句:——》调度页中新建调度、输入名称,选择反复出现,更改时间——》OK

完了之后,若没有启动SQL Agent,则在服务管理器——》SQL Agent选上当启动OS时自动启动

再在企业管理器中,鼠标右键刚才建的作业——》启动作业——》OK

----在加入SQL语句:——里写入以下的语句,并修改数据库名和备份的目录


declare @filedir varchar(200),@dir varchar(200)
declare @dbname varchar(50),@bakname varchar(50),@sql varchar(4000)
select @filedir=filename from sysfiles
set @dir=''
while charindex('\',@filedir)<>0
begin
  set @dir=@dir+left(@filedir,charindex('\',@filedir))
  set @filedir=substring(@filedir,charindex('\',@filedir)+1,len(@filedir)-charindex('\',@filedir))
end
set @bakname='bak'+cast(datepart(weekday,getdate())-1 as varchar(1))
-----指定数据库
set @dbname='scmbuilder'

set @sql='BACKUP DATABASE ['+@dbname+'] TO  DISK = N'''+'e:\sqlbak\'+@bakname+''' WITH  INIT ,  NOUNLOAD ,  NOSKIP ,  STATS = 10,  NOFORMAT'
--备份文件到"e:\sqlbak\"目录下
exec(@sql)


备份时可能会降低应用程序对数据库的操作性能,但SQL会协调好的,只是应用程序操作数据库可能会慢一些



在把SQL Agent服务启动时遇到了问题,启动不了,报如下错误:

服务并未返回错误。这可能是一个windows内部错误或服务内部错误。
如果问题持续存在,请与您的系统管理员联系。

看了帮助后发现我的sa数据库密码改变了,是不是连接Sql Agent 服务时需要验证

然后右建 Sql  Server Agent  ----〉属性----〉connection







重新设置了sa的登陆密码 然后再开启Sql Agent 服务时一切OK

posted @ 2005-06-02 10:42  PointNet  阅读(7230)  评论(1编辑  收藏  举报