一、新建数据库(如:数据库定时备份)
二、新建存储过程,代码如下,注意3个地方需要改数据库名称
USE [数据库定时备份]
GO
/****** Object: StoredProcedure [dbo].[定时备份_Huji] Script Date: 10/03/2022 17:33:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--Alter PROCEDURE [dbo].[类_定时备份]
ALTER PROCEDURE [dbo].[定时备份_Huji]
@bak_path varchar(30) = 'D:\sql定时备份' -- 表名称
As
BEGIN
SET NOCOUNT ON;
declare @bak_path_bf varchar(150) = 'D:\sql定时备份\Huji_'+convert(varchar(10),getdate(),120)+'_'+DateName(hour,GetDate()) +'_'+DateName(minute,GetDate()) +'_'+DateName(second,GetDate())+'.bak' -- 表名称
BACKUP DATABASE Huji TO DISK = @bak_path_bf
--declare @bak_path nvarchar(4000)
set @bak_path ='D:\sql定时备份\' --备份路径;
declare @baktype int
set @baktype = 0 --备份类型为全备,1为差异备,2为日志备份
declare @type int
set @type = 3 --设置需要备份的库,0为全部库,1为系统库,2为全部用户库,3为指定库,4为排除指定库;
declare @dbnames nvarchar(4000)
set @dbnames ='Huji' --需要备份或排除的数据库,用,隔开,当@type=3或时生效
declare @overdueDay int
set @overdueDay = 1 --设置过期天数,默认天;
declare @compression int
set @compression =0 --是否采用sql2008的压缩备份,0为否,1为采用压缩
-- ========================================================= 【删除过期数据库】
begin try
declare @d varchar(100)
set @d=convert(varchar,dateadd(day,-1,getdate()),120); -- [-30 是删除之前的天数]
EXECUTE master.dbo.xp_delete_file 0,N'D:\sql定时备份\',N'bak',@d; -- [修改(2)]
end try
begin catch
end catch
--declare @cmd varchar (1024)
--SET @Cmd=('master.dbo.xp_cmdshell '+'''xcopy \\Win-r85nangi77s\新建文件夹\CityCardAdmin_'+convert(varchar(10),getdate(),120)+'_'+DateName(hour,DATEADD(hour,-1,GETDATE())) +'.bak'+' D:\三联数据库 '+''+' /y/s'+'''')
--EXEC (@Cmd)
END
三、右击,新建作业
1、常规
名称:定时备份(每天12.30)
说明:每天12.30备份一次
2、步骤
步骤名称:定时运行备份脚
代码:
USE [数据库定时备份]
GO
DECLARE @return_value_1 int
EXEC @return_value_1 = [dbo].[定时备份_Huji]
SELECT 'Return Value' = @return_value_1
GO
DECLARE @return_value_2 int
EXEC @return_value_2 = [dbo].[定时备份_mvc]
SELECT 'Return Value' = @return_value_2
GO
3、计划
名称:每天12.30