下面是我已经证实可用的自动备份的方法.
1、打开企业管理器->管理->sql server代理
2、新建一个作业,作业名称随便取,例如:data备份,所有者选择sa,当然你也可以选择其他用户,前提是该用户有执行作业的权限;
3、点击步骤标签,进入步骤面板.新建步骤,步骤名可以随便填写,如步骤1,类型和数据库默认,不需要修改.命令中写入以下语句:
BACKUP DATABASE [数据库名] TO DISK = N'F:\\databack\\firenews备份' WITH NOINIT , NOUNLOAD , NAME = N'firenews备份', NOSKIP , STATS = 10, NOFORMAT
注意:需要修改的地方,数据库名,DISK=(这里需要填写路径和你的数据库备份的名称)后面的Name=可以随便填写.
4、点击调度标签,进入调度面板,新建调度,名称随便填写,选择反复出现,点更改可以选择你想要执行任务的随意调度.如每天,每2天,每星期,每月等.根据需要自己设置;(注意:在调度名称后面有个启动选项,必须勾选)
5、确定后,不要忘记一件事情,在你刚才建立的工作上点右键,启动工作,如果你的工作没有问题,将会提示执行成功,并有相对应的备份文件在你的磁盘上出现;
6、还有一个重要的问题就是你的sql server agent服务器已经启动.
如果我们需要根据每天的日期来生成一个新的备份,以便我们区别备份文件.这时,我们需要修改一下刚才的sql语句.
参考实例:
1、自动备份,固定备份名,每次会追加备份
backup database FireNews to disk=N'F:\\databack\\firenews备份' with noinit,nounload,name=N'firenews备份',noskip,stats=10,noformat
backup database fireweb to disk=N'F:\\backup\\data\\fireweb\\fireweb备份' with noinit,nounload,name=N'fireweb备份',noskip,stats=10,noformat
2、自动备份,以时间命名,完整备份
declare @filename nvarchar(100) set @filename='F:\\databack\\data'+convert(char(8),getdate(),112)+'.bak' print @filename BACKUP DATABASE [firenews] TO DISK = @filename WITH NOINIT , NOUNLOAD , NAME = N'firenews备份', NOSKIP, STATS = 10, NOFORMAT
declare @filename nvarchar(100) set @filename='F:\\backup\\data\\fireweb\\fireweb'+convert(char(8),getdate(),112)+'.bak' print @filename BACKUP DATABASE [fireweb] TO DISK = @filename WITH NOINIT , NOUNLOAD , NAME = N'fireweb备份',NOSKIP, STATS = 10, NOFORMAT
注:
1、备份的数据库存放的文件夹必须已经存在;
2、N 必须大写;
3、NAME的值可以随便写;
4、FireNews,fireweb为数据库名;
5、新建作业时提示:未能找到存储过程master.dbo.xp_regread,表名master数据库没有这个存储过程(可能是做安全处理的时候删除了),需自己注册。方法是:找到 数据库——
master——扩展存储过程,右键“新建扩展存储过程”(名称:xp_regread,路径直接填:xpstar.dll)
以下为完整的备份数据库的方法:
备份整个数据库:
BACKUP DATABASE { datab