解决在window下执行SQLSERVER定时备份的问题
引言
在使用SqlServer Express 版本的时候发现,这个版本不支持通过数据库的代理方式进行数据库的维护。
解决方案
使用SQL语句加windows任务计划的方式解决
具体步骤如下
- 创建备份用的SQL文件
- 创建调用SQL文件的BAT文件
- 加入到windows的任务计划中
具体步骤及文件
SQL语句
GO DECLARE @backupTime VARCHAR(20) DECLARE @fileName VARCHAR(1000) SELECT @backupTime =( CONVERT(VARCHAR(8), GETDATE(), 112) + REPLACE(CONVERT(VARCHAR(5), GETDATE(), 114), ':', '') ) SELECT @fileName = 'F:\Database_Backup\DB_' + @backupTime + '.bak' backup database 数据库名称 to disk = @fileName
BAT文件
sqlcmd -S . -i F:\Database_Backup\backup.sql
加入到windows任务计划找到并打开任务计划程序选择右侧的创建基本任务
输入任务基本信息
选择何时执行,下一步配置具体执行规则
选择执行的动作,启动程序
选择刚才创建的bat文件
完成
补充:windows任务计划定时备份sqlserver数据库
使用windows的任务计划新建一个sqlserver数据库的定时备份任务
一、(我是以sqlserver2008r2数据库版本测试的)在G盘下新建文集夹Database_backup,首先需要写一个sql的备份脚本,文件命名为backup.sql(将下面语句放在backup文件):backup放在Database_backup下,以后备份也放在此目录下。DBname就是你所需要备份的数据库名:
GO DECLARE @backuptime varchar(20) DECLARE @filename varchar(100) select @backuptime=(convert(varchar(8),getdate(),112)+replace(convert(varchar(5),getdate(),114),':',' ')) select @filename='G:\Database_backup\db_'+@backuptime+'.bak' backup database DBname to disk=@filename
二、写一个批处理文件执行sql语句:
例如:backup_database.bat
.bat文件内容为:sqlcmd -S . -i F:\Database_Backup\backup.sql
.bat文件内的语句可以在cmd控制台执行测试是否正确;
三、在windows-控制面板-管理工具下,打开任务计划,创建基本任务,输入任务名称描述、设置备份时间、选择启动程序。需要注意的是在起始于选项里输入程序执行路径,完成。
栏 目:MsSql
下一篇:此数据库没有有效所有者,因此无法安装数据库关系图支持对象
本文标题:解决在window下执行SQLSERVER定时备份的问题
本文地址:http://www.codeinn.net/misctech/197685.html