加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer 2008 r2 express的自动备份实现

发布时间:2020-12-12 13:39:00 所属栏目:MsSql教程 来源:网络整理
导读:?????? 在一个项目中用到的数据库是sqlserver 2008 r2 express 。可没想到express版本的功能有些限制,此前一直都不知道
?????? 在一个项目中用到的数据库是sqlserver 2008 r2 express 。可没想到express版本的功能有些限制,此前一直都不知道啊。百度百科可以看到它的限制:


“1.数据库的大小限制:SQL Server 2005 Express 和SQL Server 2008 Express 数据库的大小限制最大为 4GB,最新版本的SQL Server 2008 R2 Express 数据库的大小限制最大为 10G。这个大小的限制只有在数据文件上,交易记录档则不受此限。 2.只能使用一个 CPU 来运算,这在多个 CPU 的电脑上会造成浪费。 3.可使用的存储器量最高只有 1GB。 4.没有 SQL Agent,若要做调度服务必须自己写程序。”
所以,由于没有SQL代理(SQLSERVERAGENT)服务,就没有办法通过新建作业的方式来做数据库备份了。如果不想重装数据库的话可以试试以下方法。思路如下: 1、写一个sql 脚本来作数据库备份。 例如:backup.sql ,我们把它放在 F:Database_Backup下,以后的备份文件也放在这个目录下。 [sql] view plain copy print ?
  1. GO??
  2. DECLARE??
  3. @backupTime VARCHAR(20)?
  4. DECLARE??
  5. @fileName VARCHAR(1000)???
  6. SELECT?
  7. @backupTime=(CONVERT(VARCHAR(8),GETDATE(),112) +REPLACE(CONVERT(VARCHAR(5),114),':',''))???
  8. SELECT?
  9. @fileName='F:Database_BackupDB_'+@backupTime+'.bak'?
  10. backup database DBName to disk=@fileName?
DBName就是你的数据库的名称了,备份的文件名形如 DB_201302252140.bak。

2、写一个批处理文件,执行此sql脚本。 例如:backup_database.bat ,我们也把它放在F:Database_Backup下。 [plain] view plain copy print ?
  1. sqlcmd -S . -i F:Database_Backupbackup.sql?

3、新建一个Windows计划任务,定期(比如每天)执行此批处理命令。 选择管理工具里的“计划任务”


选择“创建基本任务”


输入任务名称和描述


选择执行时间


选择操作为“启动程序”


这里的程序或脚本就选择我们建好的backup_database.bat


????????? 最后确定即可。

????? 至于删除过期的备份文件,我们也可以通过任务计划来完成。forfiles命令,可以实现批量删除文件,用法可以自行百度。我们写一个批处理文件delete_bakFile.bat,内容如下:

[plain] view plain copy print ?
  1. forfiles /p F:Database_Backup /m *.bak /d -7 /c "cmd /c del /f @path"?

????????? 在这里,我们删除7天以前的备份,同样地新建一个任务计划,将它执行的程序指向这个bat 即可,执行时间可以指定为一个月一次或一周一次等。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读