sql server 定时备份数据库

CREATE  PROCEDURE [dbo].[SP_DBBackup_EveryNight_Local]
@cycle INT,					---保存周期
@IsLocal INT,				---是否为本地  0表示是 1表示否
@SavePath NVARCHAR(100),	---文件保存路径 \\192.168.19.102\DataBaseBack
@DBPrefix NVARCHAR(50),		---生成文件的前缀
@Server VARCHAR(50),		---服务器IP  192.168.19.102
@UserName VARCHAR(50),		---登录服务器用户名  administrator
@PassWord VARCHAR(20)		---登录服务器密码   Soft_2016
AS
    BEGIN
        DECLARE @backpath2 VARCHAR(100)
        DECLARE @command VARCHAR(200)   

        --创建临时表
        CREATE TABLE #Filetabel
            (
              FILEPATH VARCHAR(100) NULL
            )
    --调用dos命令登录服务器
    IF @IsLocal = 1
    BEGIN
		SET @command = ‘net use ‘ + @SavePath + ‘ ‘ + @PassWord + ‘ /user:‘ + @Server + ‘\‘ + @UserName
        EXEC master..xp_cmdshell @command
    END
        --将共享目录所有文件名添加至临时表
        SET @command = ‘dir /b ‘ +  @SavePath
        INSERT  INTO #Filetabel
                EXEC master..xp_cmdshell @command

        DELETE  FROM #Filetabel
        WHERE   FILEPATH IS NULL

        WHILE EXISTS ( SELECT   *
                       FROM     #Filetabel )
            BEGIN
                DECLARE @fileName VARCHAR(100)
                SET @fileName = ( SELECT TOP 1
                                            *
                                  FROM      #Filetabel
                                  ORDER BY  FILEPATH
                                )
			--定义变量获取文件时间
                DECLARE @fileTime VARCHAR(20)
                DECLARE @fDateTime DATETIME
                IF @fileName IS NOT NULL
                    BEGIN
                        SET @fileTime = SUBSTRING(@fileName, 17, 8)
                        SET @fDateTime = CONVERT(DATETIME, @fileTime)
                        DECLARE @lastTime DATETIME
                        SET @lastTime = DATEADD(DAY, [email protected],
                                                CONVERT(VARCHAR(10), GETDATE(), 111))
                        IF @fDateTime <= @lastTime
                            BEGIN
							--删除备份
                                DECLARE @filePath VARCHAR(100)
                                SET @filePath = ‘del ‘ + @SavePath + ‘\‘ + @fileName
                                EXEC master..xp_cmdshell @filePath
                            END

                            --删除该条数据
                                DELETE  FROM #Filetabel
                                WHERE   FILEPATH = @fileName
                    END
            END

            --删除临时表
                                DROP TABLE #Filetabel
                                    --将数据库备份到服务器
                                SET @backpath2 = @SavePath + ‘\‘ + @DBPrefix + ‘_‘ + REPLACE(CONVERT(VARCHAR(10), GETDATE(), 120),
                                              ‘-‘, ‘‘) + ‘_back.bak‘
                                BACKUP DATABASE [LGS] TO [email protected] WITH INIT ,FORMAT
    END
GO

  

执行EXEC [dbo].[SP_DBBackup_EveryNight_Local] 5,0,‘F:\LGSCMS_20141117_Back‘,‘LGS‘,‘‘,‘‘,‘‘

时间: 2024-10-26 16:23:46

sql server 定时备份数据库的相关文章

SQL Server 远程备份数据库

经常会有定时备份数据库的需要.定时备份到本机的话,还是挺容易的,计划任务就可以完成,但如果是整机挂了,那备份到本机是没意义的,那么就需要来考虑备份到局域网中,其它电脑里. 下面就分享一份在网上找了之后,自己再简单整理过的代码,配合 SQL Server 代理中的作业功能,已经稳定运行一个星期了,每小时就备份一次.  -- 创建网络映射(Y是盘符:IP地址后面要带共享文件夹的名称:password是密码,双引号引起:account是远程电脑的登录名) exec master..xp_cmdshel

sql server 批量备份数据库及删除N天前的备份数据

很多时候,我们都需要将数据库进行备份,当服务器上数据库较多时,不可能一个数据库创建一个定时任务进行备份,这时,就需要进行批量的数据库备份操作,好了,废话不多说,具体实现语句如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 -

SQL Server 2008 备份数据库

1.打开SQL , 找到要备份的数据库 , 右键 >> 任务 >>备份 2.弹出 [ 备份数据库对话框 ] ,如图: 3.点击添加 [ 按钮 ] . 如下图: 4.选择要备份的路径 和 备份的文件名 点击 [ 确定 ]. 5.然后就一直点击确定就可以了 . 然后我们来到D:\ 看看 6.这个时候 , 你可以把它压缩打包什么的 , 要用的时候 , 在文件后面加 .bak 后缀 就可以用SQL 来还原了,还原可以来看这里~

SQL Server批量备份数据库

1 --批量备份数据库201911 2 --开启文件夹权限 3 GO 4 SP_CONFIGURE 'SHOW ADVANCED OPTIONS',1 5 RECONFIGURE 6 GO 7 SP_CONFIGURE 'XP_CMDSHELL',1 8 RECONFIGURE 9 GO 10 11 DECLARE 12 @FileName VARCHAR(200), 13 @CurrentTime VARCHAR(50), 14 @DBName VARCHAR(100), 15 @SQL VA

SQL Server 维护计划实现数据库备份(Step by Step)(转)

SQL Server 维护计划实现数据库备份(Step by Step) 一.前言 SQL Server 备份和还原全攻略,里面包括了通过SSMS操作还原各种备份文件的图形指导,SQL Server 数据库最小宕机迁移方案,里面使用SQL脚本(T-SQL)完成完全备份.差异备份.完全还原.差异还原等:        有了上面的基础,我们加入了数据库的备份元素,通过维护计划来生成数据库的备份文件,这包括两种文件,数据库的完全备份与差异备份,有了这两个文件,我们可以通过SQL Server 备份和还

SQL Server中使用数据库快照的方式来完成测试环境中数据库的轻量级备份还原操作

原文:SQL Server中使用数据库快照的方式来完成测试环境中数据库的轻量级备份还原操作 在开发或者测试环境的数据库中,经常会发现有开发或者测试人员误删除表或者数据的情况,对于开发或者测试库,一般都没有安排定时的备份任务去备份数据库,一方面是由于存储资源有限,不太可能给开发或者测试环境准备大量的存储空间,二是必要性不是很强,开发或者测试库的数据库对象变化太多,通过还原备份的方式又有可能冲掉其最近新建的数据库对象.但是不得不面对的问题就是个别人在执行update或者delete操作的时候“忘了加

SQL Server 维护计划实现数据库备份(策略实战)

一.背景 之前写过一篇关于备份的文章:SQL Server 维护计划实现数据库备份,上面文章使用完整备份和差异备份基本上能解决数据库备份的问题,但是为了保障数据更加安全,我们需要再次完善我们的备份计划: 下面这篇文章主要加入了日志备份,并对设计备份的频率和设计命名规范等问题进行实战: 二.最佳实践 (一) 备份计划 1) 每周星期日的2:00:00执行数据库的完整备份: 2) 每周星期一至星期六每天的2:00:00执行数据库的差异备份: 3) 每天在8:00:00和23:59:59之间.每1小时

SQL Server之 (一) 数据库简介 SQL Server环境配置 数据库基础知识

   前言 这个是我工作两年多后,再次从最基础的SQL入门开始,认真的学一遍SQL Server,捡漏和巩固都有;因为自己刚开始学的时候,总是心烦气躁,最近换工作,发现1到2年经验,问到基础性的东西还是很多,这个时候需要的是扎实的基础功夫,所以一系列打击+反省后,自己节假日在家从最基础重新认识一下SQL Server,继续沉淀一下.哪里有不对或需深入探讨,请直接留言或者小窗我;欢迎~ (一) 数据库简介   SQL Server环境配置   数据库基础知识 1.什么是数据库,数据库有哪些特点,为

SQL Server和Oracle数据库索引介绍

SQL Server和Oracle数据库索引介绍 1 SQL Server中的索引 索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度.索引包含由表或视图中的一列或多列生成的键.这些键存储在一个结构(B 树)中,使 SQL Server 可以快速有效地查找与键值关联的行. 表或视图可以包含以下类型的索引: 聚集索引 聚集索引根据数据行的键值在表或视图中排序和存储这些数据行.索引定义中包含聚集索引列.每个表只能有一个聚集索引,因为数据行本身只能按一个顺序排序. 只有当表包含聚集索引