在这里我就不给截图演示了,这个比较简单,无非就是通过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
sqlserver备份数据库:
方案1:使用sqlserver自带的维护计划
方案2:(1)创建存储过程备份数据库
(2)创建bat执行存储过程
(3)创建任务计划调用bat文件
(1)创建存储过程
use
database_name
go
create
proc
[dbo].[BackupDatabase]
as
begin
--数据库备份脚本
--申明变量参数(‘备份全路径’、‘备份路径’、‘文件件名’)
declare
@backup_fullpath
nvarchar(255),
@backup_path
nvarchar(50),
@str_date
nvarchar(50)
--设置路径
set
@backup_path
=
N'F:\DataBackup\'
--设置文件名
--
make
date
string
in
backup
filename
set
@str_date
=
convert(varchar(50),
getdate(),
121)
set
@str_date
=
replace(@str_date,
N'-',
N'')
set
@str_date
=
replace(@str_date,
N':',
N'')
set
@str_date
=
replace(@str_date,
N'.',
N'')
set
@str_date
=
replace(@str_date,
N'
',
N'')
--备份数据库
--
backup
DMS
database
set
@backup_fullpath
=
@backup_path
+
N'DMS-'
+
@str_date
+
N'.full.bak'
backup
database
DMS
to
disk
=
@backup_fullpath
end
GO
(2)创建bat执行存储过程
sqlcmd
-S
127.0.0.1
-U
sa
-P
123
-Q
"use
DMS
exec
CreateReturnVisitTask"
(3)windows创建任务计划
推荐使用sqlserver自带的维护计划
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)