- 论坛徽章:
- 0
|
DECLARE @CurDate datetime
DECLARE @BkTime nvarchar(20)
DECLARE @DelTime nvarchar(8)
DECLARE @DBName varchar(30)
Declare @BkFolder nvarchar(100)
Declare @BkLogFile Varchar(200)
Declare @DelFile Varchar(200)
Declare @BkFile Varchar(200)
--设置需要备份的数据库
SET @DBName=\'database\'
--设定存放备份文件的文件夹
SET @BkFolder=\'\\\\20.1.250.83\\share\'
--取得备份时间
SET @CurDate=getdate()
SET @BkTime=convert(nvarchar(8),@CurDate,112)+\'.\'+Convert(nvarchar(2),DatePart(hh,@CurDate)) + \'.\' +
Convert(nvarchar(2),DatePart(mi,@CurDate))+ \'.\' +
Convert(nvarchar(2),DatePart(ss,@CurDate))
--取得需要删除的备份文件的时间
SET @DelTime=convert(nvarchar(8),getdate()-3,112)
--生成删除备份文件语句
SET @DelFile =\'Del \"\' + @BkFolder + \'\\\' + @DBName +@DelTime +\'*\'
--生成数据库备份文件名
SET @BkFile=@BkFolder + \'\\\'+@DBName + @BkTime + \'.BAK\'
--执行删除备份文件
Exec Master.dbo.Xp_CmdShell @DelFile
--备份数据库
BackUp Database @DBName To Disk=@BkFile
注意事项:
如果遇到通过网上邻居访问一切正常。在企业管理器里对数据库进行备份,备份文件名写入网络路径\'\\\\20.1.250.83\\share\';系统却提示“无法验证该备份文件位置是否存在。是否要使用该备份文件位置?”点击确认后,系统提示“无法打开备份设备,设备出现错误或设备脱机....”时,因该注意:SQL Server并不以Windows登录帐户访问网络共享,而是以SQL Server服务的启动帐户来访问。这时应该进入“管理工具-->服务-->MSSQLSERVER-->登录”将启动服务的本地系统帐户修改为本机管理员,重新启动服务后,问题解决。
还应该注意:同样的“本地系统”帐户,在2000与2003里的权限却不尽相同,2000及以前的系统中的本地系统帐户只具备本地最高权限,而2003及以后的系统中,该账户在具备本机完全访问权限的同时,可以像其他域帐户一样访问网络资源。所以在2003中,却不用修改SQL服务的登录帐户就能顺利备份。 |
|