数据自动备份! 复制文件还是单独用windows的计划任务完成吧. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在一个批处理文件如何创建一个可自动变化的路径,这个的可能性不太大,在SQL中用xp_cmdshell 创建倒可以.一般,调用批处理的话,最好用windows的计划任务进行处理.如果是SQL的备份,建议采用纯SQL的处理方式. 参考我的贴子:数据库备份/恢复方案:http://www.csdn.net/Develop/Read_Article.asp?Id=22988 set @dir2=@dir+'\'+@currdate你不是已经实现了每天一个路径了吗?set @sql='BACKUP DATABASE ['+@dbname+'] TO DISK = N'''+@dir+''' WITH INIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT'--备份到数据库文件所在目录但为什么这里用@dir而不是@dir2呢? pbsql(风云):你说的没错,第一种是实现了每天一个路径,我所说的是第二种备份文件的方法没有实现每天一个新路径。另创建目录时没必要判断,因为一天一个就行了,有多个自动覆盖。 zjcxc(邹建) :备份数据库文件时,我觉得还是在SQL中备份的好,便于管理,因为它还是属于SQL数据库文件的备份嘛,而且windows调度还要知道服务器的windows密码。但不知怎么在SQL的作用中调用上面的批处理就不能启动SQLServerAgent服务器了,这样每天还需要手工启动该服务器,没有达到自动备份的目的。 我是赞成备份数据库文件时,在SQL中备份啊只不过我觉得,你没有必要再搞些批处理来做吧???SQL中设置作业来定时处理东西,本来就要求SQL Agent服务是开着的,不然作业就罢工,所以你搞个批处理来停止SQL 代理服务及SQL服务,然后再启用,这个肯定行不通,SQL服务都停了,谁来调度执行后面的处理?所以我上面有说,建议全部用SQL来处理你的备份 zjcxc(邹建) :你可能还没明白我的意思,我要备份的是数据库文件,备份数据库文件时,数据库必须先关闭,在SQL中调用批处理后并不需要SQL来控制它。我已经试过比较小的数据库文件备份时一切都OK的,但数据库一大到250M以后SQLServerAgent就不能被SQL调用的那个批处理所启动了! 不知道是我误导你,不是被你误导.不知道你为什么是备份数据文件?1.如果只是备份数据文件的话,并不安全,事实上本论坛也出现过不少人说只备份了数据文件 最后无法附加的情况,导致数据丢失2.如果只是备份数据文件的话,你觉得与SQL有多大的关系? 停止了SQL服务,数据文件就是 普通的文件而已3.当然,上述可能与要解决的实际无关4.你的备份的存储过程好像没有涉及到备份数据文件,你只是单独写了一个备份数据文件 的批处理,而这个批处理也与备份的存储好像没有什么关系吧?5.我用如下的内容的bat文件测试,确实如你所说,SQL是被停止后再启动了.net stop MSSQLServernet start MSSQLServer--在查询分析器中的测试语句为:exec master..xp_cmdshell 'c:\a.bat'select 1--测试的结果:exec master..xp_cmdshell 'c:\a.bat'select 1从结果看,select 1并没有被执行,但如果我逐条选中执行的话,则第2条可以被执行所以由此看来,用SQL的作业来调用批处理进行处理还是会出问题6.sql去做调度的话,也不是没有权限问题,首先,允许xp_cmdshell命令,本身就是一个 不安全的因素,其次,它要求系统管理员权限7.sql代理的权限是由sql代理服务的启动帐户决定它对windows的操作权限的8.所以最终的结论,批处理的备份部分,还是应该由windows的计划任务去完成 sqlserver2005 差异备份 低端问题,看一下 求救!sql2008安装出错 请问一个字符串连接问题 請教一個復雜的Update問題 用SQLserver2k的存储过程或触发器,是否可以在服务器上执行某个exe文件? 手工删除日志是否会对数据库产生影响? 急!!!数据库不能恢复 一个sql查询问题,郁闷 刚接触sql server,可否详细讲一下,送100分 存储过程怎么把专业的数据作为参数啊 OpenDataSource怎么访问远程机器上的ACCESS 文件
你不是已经实现了每天一个路径了吗?set @sql='BACKUP DATABASE ['+@dbname+'] TO DISK = N'''+@dir+''' WITH INIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT'--备份到数据库文件所在目录
但为什么这里用@dir而不是@dir2呢?
我所说的是第二种备份文件的方法没有实现每天一个新路径。另创建目录时没必要判断,因为一天一个就行了,有多个自动覆盖。 zjcxc(邹建) :备份数据库文件时,我觉得还是在SQL中备份的好,便于管理,因为它还是属于SQL数据库文件的备份嘛,而且windows调度还要知道服务器的windows密码。但不知怎么在SQL的作用中调用上面的批处理就不能启动SQLServerAgent服务器了,这样每天还需要手工启动该服务器,没有达到自动备份的目的。
我要备份的是数据库文件,备份数据库文件时,数据库必须先关闭,在SQL中调用批处理后并不需要SQL来控制它。我已经试过比较小的数据库文件备份时一切都OK的,但数据库一大到250M以后SQLServerAgent就不能被SQL调用的那个批处理所启动了!
最后无法附加的情况,导致数据丢失2.如果只是备份数据文件的话,你觉得与SQL有多大的关系? 停止了SQL服务,数据文件就是
普通的文件而已3.当然,上述可能与要解决的实际无关4.你的备份的存储过程好像没有涉及到备份数据文件,你只是单独写了一个备份数据文件
的批处理,而这个批处理也与备份的存储好像没有什么关系吧?5.我用如下的内容的bat文件测试,确实如你所说,SQL是被停止后再启动了.
net stop MSSQLServer
net start MSSQLServer--在查询分析器中的测试语句为:
exec master..xp_cmdshell 'c:\a.bat'
select 1--测试的结果:
exec master..xp_cmdshell 'c:\a.bat'
select 1从结果看,select 1并没有被执行,但如果我逐条选中执行的话,则第2条可以被执行
所以由此看来,用SQL的作业来调用批处理进行处理还是会出问题6.sql去做调度的话,也不是没有权限问题,首先,允许xp_cmdshell命令,本身就是一个
不安全的因素,其次,它要求系统管理员权限7.sql代理的权限是由sql代理服务的启动帐户决定它对windows的操作权限的8.所以最终的结论,批处理的备份部分,还是应该由windows的计划任务去完成