Heim  >  Artikel  >  Datenbank  >  SQLServer 数据库 远程备份

SQLServer 数据库 远程备份

WBOY
WBOYOriginal
2016-06-07 15:09:531477Durchsuche

--显示高级选项(仅需执行一次) EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO --允许执行xp_cmdshell EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO --添加映射驱动器 declare @string nvarchar(200) set @string = 'net use

--•显示高级选项(仅需执行一次)
EXEC sp_configure 'show advanced options', 1

GO

RECONFIGURE

GO

--•允许执行xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1

GO

RECONFIGURE

GO

--•添加映射驱动器
declare @string nvarchar(200)

set @string = 'net use m: \\200.31.154.47\mis_backup "helloMIS555" /user:cfets-zfj60i4jl\LocalAdmin'

exec master..xp_cmdshell @string

--其中192.168.1.2为文件服务器的地址,db_backup为该服务器的共享文件夹,administrator 123456 分别为共享时设置的用户名密码。

--•备份数据库至本地
declare @date datetime

set @date = GetDate()

declare @str nvarchar(100)

set @str = 'E:\DatabaseBackup\ManagementInformation_backup_'+ convert(nvarchar(12), @date, 112) +'.bak'

backup database ManagementInformation to disk=@str WITH init

declare @strh nvarchar(100)

set @strh = 'E:\DatabaseBackup\Portal_backup_'+ convert(nvarchar(12), @date, 112) +'.bak'

backup database ManagementInformation to disk=@strh WITH init
--
--
--With init为覆盖同名文件(本例设计为1天执行一次,不会出现覆盖的情况)。
--
--•拷贝到文件服务器
declare @str1 nvarchar(100)

set @str1 = 'copy '+ @str +' m:'

exec master..xp_cmdshell @str1

set @str1 = 'copy '+ @strh +' m:'

exec master..xp_cmdshell @str1

declare @datecount int

set @datecount=1


declare @delstr nvarchar(100)

declare @deldate datetime

set @deldate=dateadd(dd,-30,getdate())

while @datecount

Begin

set @deldate=dateadd(dd,-1,@deldate)

Set @delstr='del m:\ManagementInformation_backup_'+ convert(nvarchar(12),@deldate, 112) +'.bak'

exec master..xp_cmdshell @delstr

Set @delstr='del m:\Portal_backup_'+ convert(nvarchar(12), @deldate, 112) +'.bak'

exec master..xp_cmdshell @delstr

set @datecount=@datecount+1
End

--•删除映射以及本地备份
exec master..xp_cmdshell 'net use m: /delete'

declare @str2 nvarchar(100)

set @str2 = 'del '+@str+''

exec master..xp_cmdshell @str2

set @str2 = 'del '+@strh+''

exec master..xp_cmdshell @str2

--7关闭允许执行cmdshell

EXEC sp_configure 'xp_cmdshell', 0

GO

RECONFIGURE

GO

 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn