| 2017.7.25 | SQLServer |
需求:要定时每天22:00备份数据库erp和sys,并且自动删除3天前的备份
-- 打开
EXEC sp_configure 'show advanced options', 1
Go
-- To update the currently configured value for advanced options.
RECONFIGURE
go
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO
-- To disallow advanced options to be changed.
EXEC sp_configure 'show advanced options', 0
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
右键我的电脑->映射网络驱动器(N)…->选择驱动器(D)为F:,文件夹(O)为\192.168.100.119\cd\backup
exec master..xp_cmdshell 'net use F: \\192.168.100.119\cd\backup password /user:192.168.100.119\username'
declare @sql varchar(500) select @sql='F:\erp'+convert(varchar(10),getdate(),112)+substring(convert(varchar(20),getdate(),108) ,1,2)+'.bak'
backup database erp to disk=@sql With INIT
declare @sql_sys varchar(500) select @sql_sys='F:\sys'+convert(varchar(10),getdate(),112)+substring(convert(varchar(20),getdate(),108) ,1,2)+'.bak'
backup database sys to disk=@sql_sys With INIT
DECLARE @OLDDATE DATETIME SELECT @OLDDATE=GETDATE()-3
EXECUTE master.dbo.xp_delete_file 0,N'F:\',N'bak',@olddate,1
exec master..xp_cmdshell 'net use l: /delete'
其中删除时,不用指定文件名在哪个时间段,备份的文件自己本身包含备份时间
@echo off
set path=%path%;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn
echo 数据库备份开始
osql.exe -S 127.0.0.1 -U sa -P 123456 -i C:\Users\Administrator\Desktop\sqlserverbackup.sql -o c:\backup\sqlserverbackup.out
echo 数据库备份完成
无法读取sqlserverbackup.sql更新列表:
*
参考文章: