广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    SQL SERVER 如何通过存储过程进行自动压缩备份

    来源:网络收集  点击:  时间:2024-07-07
    【导读】:
    SQL SERVER 如何通过存储过程配合计划任务进行自动压缩备份品牌型号:服务器/台式机/笔记本安装有SQL SERVER软件系统版本:windowswinserver/win7/win10软件版本:SQL SERVER2008 R2方法/步骤1/8分步阅读

    1.第一步,需要做的准备(①建立存放备份文件的目录;②检查电脑或服务器是否有压缩软件);

    ①在SQL SERVER 所在的电脑或服务器上建立备份存放的文件夹。

    一霜盆帽个原始文件,一个压缩文件分别存放的目录。如下图所示

    ②电脑需要安装压缩软件,如果安装的ghost系统一般电脑自带WinRAR会安装在C盘。如果电脑没有此压缩软件,需要下载一下,默认安装在C盘即可。(此软件只是做压缩文件使用)

    2/8

    2.第二步我们先把存储过程恩材建立好。此处我以我本地的 TEST_DB库做示例

    操作步骤:找到需要备份的数据库——可编程性——存储过程——新建存储过程。

    3/8

    3.建立存储过程,复制我已经编辑的语句,此处需要注意的地方,更改自己需要备份的数据库,USE ,此处我做的TEST_DB的备份,然后更改需要备份的数据库,备份强搁文件存放目录,以及需要保留的备份文件的天数。其余不用更改,更改需要调整的地方以后,执行语句,建立存储过程完成。

    USE

    GO

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    CREATE procedure .

    as

    ---定义变量

    DECLARE @FileNmae varchar(8)

    DECLARE @FullPath varchar(1000)

    DECLARE @DELFileNmae varchar(1000) --删除文件

    DECLARE @DELFileNmaeYs varchar(1000) --删除压缩文件

    DECLARE @dbbak_path varchar(1000) --备份路径

    DECLARE @dbbak_ys_path varchar(1000) --压缩备份路径

    DECLARE @SQL varchar(1000) --执行语句

    DECLARE @Result int --执行结果

    set @FileNmae = convert(varchar(8),getdate(),112) --以日期备份文件

    set @DELFileNmae = convert(varchar(8),getdate()-3,112) --删除3天前文件

    set @DELFileNmaeYs = convert(varchar(8),getdate()-10,112) --删除10天前压缩文件

    set @dbbak_path = E:\SQL_DB_BAK\TEST_DB_BAK\ --备份路径

    set @dbbak_ys_path = E:\SQL_DB_BAK\TEST_DB_BAK_YS\ --压缩备份路径

    set @FullPath = @dbbak_path + @FileNmae + \ + @FileNmae + .bak --完整路径

    -----------------------------------------------

    set @SQL = mkdir +@dbbak_path+@FileNmae;

    --创建文件夹

    ExEc xp_cmdshell @SQL;

    SET @SQL = @FullPath

    --select @sql

    --备份数据库

    backup database to disk = @FullPath with init

    --压缩数据库

    set @SQL = @dbbak_path + @FileNmae +\;

    --select @sql

    set @SQL = C:\Progra~1\WinRAR\WinRAR.exe a -ep -r +@dbbak_ys_path +@FileNmae+ +@SQL ;

    --select @sql

    exec @result=master..xp_cmdshell @SQL;

    --删除文件3天前的文件

    set @SQL=del + @dbbak_path+@DELFileNmae+ \ + @DELFileNmae + .bak

    ExEc xp_cmdshell @SQL;

    --删除文件夹3天前的

    set @SQL=RD +@dbbak_path+@DELFileNmae

    ExEc xp_cmdshell @SQL;

    --删除文件10天前的压缩文件

    set @SQL=del + @dbbak_ys_path + @DELFileNmaeYs + .rar

    ExEc xp_cmdshell @SQL;

    GO

    4/8

    4.接下来我们测试一下,刚才建立的储存过程是否能正常使用。

    刷新数据库,看到我们刚刚创建的存储过程。

    选中以后点击右键,选中“执行存储过程”

    如果提示xp_cmdshell错误,代表xp_cmdshell没有启用,则需要执行下面语句开启功能;

    sp_configure show advanced options,1

    reconfigure

    go

    sp_configure xp_cmdshell,1

    reconfigure

    go

    5/8

    5.执行成功后,到对应的电脑目录查看数据库备份文件以及压缩文件是否成功。

    6/8

    6.上面我们就完成了存储过程,现在我们建立一个计划任务,让SQL server 按照我们指定的周期去自动执行备份。

    SQL Server 代理 —— 作业——新建作业

    7/8

    7.现在我们建立一个定时作业。建立步骤为 常规——步骤——计划

    ①常规:常规里面起一个作业的名字如 TEST_DB_BAK,以及一些情况说明,方便下次或者其他同事看到说明以后,清楚这个作业的功能作用。

    ②步骤:新增步骤——起个名字,选择SQL脚本类型,输入执行语句——分析——确认。

    脚本更改为自己的数据库,已经存储过程名称即可

    USE

    GO

    EXEC .

    ③计划:新建计划——设置执行频率

    三个步骤设置完成,确定即可。

    8/8

    此时我们再到作业中去看,就有我们刚刚建立的作业。只要SQL代理服务不挂,它都会按照我们设置的计划频率去执行备份,自动删除历史备份文件。

    注意事项

    电脑安装了WinRAR压缩软件,开启SQL SERVER 的 xp_cmdshell

    需要有一定存储过程使用基础的朋友使用,挺方便的自动备份自动删除历史文件

    此操作对数据库风险不高,我们只搞备份,就算不成功也不会对它造成损坏

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_942314.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-05 01:34:59  耗时:0.027
    0.0271s