sql 垮服务器备份


--备份数据库
ALTER proc [dbo].[Ly_backup_db_ksedu]

as

Declare @strPsw varchar(50)

Declare @strUsr varchar(50)

Declare @strCmdShell varchar(300)

Declare @strDataBaseName varchar(20)

Declare @FullFileName Varchar(200)

Declare @FullFileName1 Varchar(200)

Declare @FullFileName2 Varchar(200)

Declare @FileFlag varchar(50)

Declare @FileFlag2 varchar(50)

DECLARE @FileFlag3 varchar(50)

Declare @ToFileName varchar(200)

Declare @SQLStr varchar(500)

Declare @SQLStr2 varchar(500)

Declare @SQLStr3 varchar(500)

Declare @FlagDel varchar(20)

--定义备份的数据库名称

Set @strDataBaseName='DZJG_CRM'

--定义本地备份文件的名称

Set @FileFlag=@strDataBaseName + '_db_' + replace(convert(char(20),getdate(),112),' ','')

---定义本地30天前的备份文件名称
Set @FileFlag2=@strDataBaseName + '_db_' + replace(convert(char(20),getdate()-1,112),' ','')


--定义本地1天前的备份文件名称

--Set @FileFlag3=@strDataBaseName + '_db_' + replace(convert(char(20),getdate()-1,112),' ','')

--定义远程服务器3天前的备份文件名称

--Set @FileFlag2=@strDataBaseName + '_db_' + replace(convert(char(20),getdate()-3,112),' ','')

--设置远程服务器的登录域和用户名

Set @strUsr='WIN-AHB1OIPFPS9\Administrator'

--设置远程服务器登录密码

Set @strPsw='CRM2016k3'

--设置远程服务器连接

Set @strCmdShell= 'net use \\172.16.10.251\db_backup ' + @strPsw + ' /user:' +@strUsr

--设置本地备份文件名称

Set @FullFileName='f:\ZDbak\'+@FileFlag+'.bak'

--设置本地1天前的备份文件名称

set @FullFileName1='f:\ZDbak\'+@FileFlag2+'.bak'

--设置远程服务器3天前的备份文件名称

--set @FullFileName2='\\172.17.1.10\j$\everyday_backup\'+@FileFlag2+'.BAK'

--设置远程服务器保存备份文件目录

Set @ToFileName='\\172.16.10.251\everyday_backup\'

--Set @ToFileName='e:\Backup\'

--设置为True时,即删除备份,设置为False时,即不删除备份文件

Set @FlagDel='True'

--设置从本地复制备份文件至远程服务器的语句

Set @SQLStr='copy '+@FullFileName+' '+@ToFileName

--设置删除本地1天前的备份文件

Set @SQLStr2='del ' +@FullFileName1

--设置删除远程服务器3天前的备份文件

--Set @SQLStr3='del ' +@FullFileName2

--备份数据库 压缩备份

BACKUP DATABASE @strDataBaseName TO DISK = @FullFileName WITH INIT, STATS = 20

--连接远程服务器

exec master..xp_cmdshell @strCmdShell

--复制备份文件至远程服务器

exec Master..xp_cmdshell @SQLStr

--删除1天前本地的备份文件

if (@FlagDel ='True')

exec master.. xp_cmdshell @SQLStr2

----删除3天前远程服务器备份文件

--if (@FlagDel ='True')

--exec master.. xp_cmdshell @SQLStr3

posted @ 2020-08-20 10:00  柳晨枫  阅读(169)  评论(0)    收藏  举报