所以,由于没有sql代理(sqlSERVERAGENT)服务,就没有办法通过新建作业的方式来做数据库备份了。如果不想重装数据库的话可以试试以下方法。思路如下: 1、写一个sql 脚本来作数据库备份。 例如:backup.sql ,我们把它放在 F:\Database_Backup下,以后的备份文件也放在这个目录下。 [sql] view plain copy print ? GO DECLARE @backupTime VARCHAR(20) DECLARE @filename VARCHAR(1000) SELECT @backupTime=(CONVERT(VARCHAR(8),GETDATE(),112) +REPLACE(CONVERT(VARCHAR(5),114),':','')) SELECT @filename='F:\Database_Backup\DB_'+@backupTime+'.bak' backup database DBname to disk=@filename
GO DECLARE @backupTime VARCHAR(20)DECLARE @filename VARCHAR(1000) SELECT @backupTime=(CONVERT(VARCHAR(8),112) +REPLACE(CONVERT(VARCHAR(5),':','')) SELECT @filename='F:\Database_Backup\DB_'+@backupTime+'.bak'backup database DBname to disk=@filenameDBname就是你的数据库的名称了,备份的文件名形如 DB_201302252140.bak。
2、写一个批处理文件,执行此sql脚本。 例如:backup_database.bat ,我们也把它放在F:\Database_Backup下。 [plain] view plain copy print ? sqlcmd -S . -i F:\Database_Backup\backup.sql
sqlcmd -S . -i F:\Database_Backup\backup.sql
3、新建一个windows计划任务,定期(比如每天)执行此批处理命令。 选择管理工具里的“计划任务”
@H_301_239@
选择“创建基本任务”
输入任务名称和描述
选择执行时间
选择 *** 作为“启动程序”
这里的程序或脚本就选择我们建好的backup_database.bat
@H_592_301@
最后确定即可。
至于删除过期的备份文件,我们也可以通过任务计划来完成。forfiles命令,可以实现批量删除文件,用法可以自行百度。我们写一个批处理文件delete_bakfile.bat,内容如下:
[plain] view plain copy print ? forfiles /p F:\Database_Backup /m *.bak /d -7 /c "cmd /c del /f @path"
forfiles /p F:\Database_Backup /m *.bak /d -7 /c "cmd /c del /f @path"在这里,我们删除7天以前的备份,同样地新建一个任务计划,将它执行的程序指向这个bat 即可,执行时间可以指定为一个月一次或一周一次等。 总结
以上是内存溢出为你收集整理的SqlServer 2008 r2 express的自动备份实现全部内容,希望文章能够帮你解决SqlServer 2008 r2 express的自动备份实现所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)