sqlserver脚本备份固定多个数据库

sqlserver脚本备份固定多个数据库,第1张

1.用SqlServer的维护计划

在这里我就不给截图演示了,这个比较简单,无非就是通过sqlserver自己的维护计划拖拽出2个一个‘备份数据库'任务和一个‘清除维护'任务。

需要注意的点:

1)有备份任务里边选择备份的库尽量选‘所有用户数据库'这项,以免选择了特定数据库备份以后某天添加了新数据库却忘了勾选导致丢备份。

2)选项验证备份集完整性和压缩备份尽量都选上。

3)备份的路径尽量别选磁盘根目录。

2.通过脚本+作业的方式备份数据库(非xp_cmdshell)。如果是多个库的话自己写个游标用动态sql的方式即可实现多库备份,我这里就提供个思路偷懒就不整理了。

复制代码 代码如下:

DECLARE @filename VARCHAR(500)

DECLARE @date DATETIME

DECLARE @OLD_DATE DATETIME

SET @date=GETDATE()

SET @OLD_DATE=GETDATE()-5 --超过5天的备份即将被删除

SET @FILENAME = 'E:\存放位置\数据库名称-'+CAST(DATEPART(YYYY,@DATE) AS VARCHAR(10))+'-'+CAST(DATEPART(MM,@DATE) AS VARCHAR(10))+'-'+CAST(DATEPART(DD,@DATE) AS VARCHAR(10))+'.BAK'

BACKUP DATABASE [数据库名称] TO DISK = @filename WITH COMPRESSION

EXECUTE master.dbo.xp_delete_file 0,N'E:\存放位置',N'bak',@OLD_DATE,1

GO

3.通过脚本+作业的方式备份数据库(用xp_cmdshell),如果你觉得你们服务器的网络、代码、以及防火墙足够安全可以开启xp_cmdshell的方式来备份。

如果数据库没开启xp_cmdshell的功能需要用以下脚本开通此功能,开通以后记得关闭sp_configure。

复制代码 代码如下:

USE Master

GO

EXEC sp_configure 'show advanced options', 1

经常会有定时备份SQL

Server数据库的需要。定时备份到本机的话,还是挺容易的,计划任务就可以完成,但如果是整机挂了,那备份到本机是没意义的,那么就需要来考虑备份到局域网中,其它电脑里。

下面就分享一份在网上找了之后,自己再简单整理过的代码,配合

SQL

Server

代理中的作业功能,已经稳定运行一个星期了,每小时就备份一次。

复制代码

代码如下:

--

创建网络映射(Y是盘符;IP地址后面要带共享文件夹的名称;password是密码,双引号引起;account是远程电脑的登录名)

exec

master..xp_cmdshell

'net

use

Y:

\\192.168.0.69\sqlbackup

"password"

/user:192.168.0.69\account'

--

按日期时间做文件名(注意路径中的文件夹,需要先建立好)

declare

@filename

varchar(200)

select

@filename

=

'Y:\DB\'

+

replace(replace(replace(CONVERT(varchar,

getdate(),

120

),'-',''),'

','-'),':','')

+

'.bak'

--

执行备份(DB是要备份的数据库名称)

backup

database

[DB]

to

disk

=

@filename

--

删除网络映射(Y是盘符,同上)

exec

master..xp_cmdshell

'net

use

Y:

/delete'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6911493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存