zoukankan      html  css  js  c++  java
  • 【Vegas原创】用proc来做SQL数据库备份与还原

    一、DB备份:FlowER DB为例:

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go

    /***********************************
    删除一周前资料;备份当天资料

    For FLowER、持续改善系统

    Vegas Add 08-09-29
    ***********************************
    */

    ALTER proc [dbo].[FlowER_backup]
    as   

    declare   @data_7ago   nvarchar(50)  --获取七天前日期
    declare   @cmd   varchar(50)   --cmd 指令
         

    --删除七天前的备份资料
       set   @data_7ago   ='\\10.91.50.107\DBBackup\FlowER\'+convert(varchar(10),getdate()-7,112)    
       
    set   @cmd   =   'del   '+   @data_7ago    
       
    exec   master..xp_cmdshell   @cmd    
       
    go

    -- 备份当天资料   
    declare   @data   nvarchar(50)    
     
    set   @data='\\10.91.50.107\DBBackup\FlowER\'+convert(varchar(10),getdate(),112)    
     
    BACKUP   DATABASE   FlowER   TO   DISK   =   @data  
      
    with   init

    二、DB还原:

    1,要Kill掉数据库进程的proc:

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go

    /*
    断开所有用户打开的连接

    Vegas Add 08.09.29
    */

     

    ALTER  proc [dbo].[p_killspid]
    @dbname sysname --要关闭进程的数据库名
    as  
    declare @s nvarchar(1000)
    declare tb cursor local for
    select s='kill '+cast(spid as varchar)
    from master..sysprocesses 
    where dbid=db_id(@dbname)

    open tb 
    fetch next from tb into @s
    while @@fetch_status=0
    begin
    exec(@s)
    fetch next from tb into @s
    end
    close tb
    deallocate tb


    2,进行还原:DBBackup DB为例

    exec dbo.p_killspid 'DBBackup'

    RESTORE DATABASE DBBackup 
      
    FROM DISK = '\\10.91.50.107\DBBackup\DBBackup\20080929' 

    WITH REPLACE

    或将备份文件加.bak后缀名,从SQL Server还原。 

    PS:用SQL Server进行还原的注意事项:

    1)新建一个test数据库,点击还原,在选项里选择“覆盖现有数据库”

    2) 如报数据库 '***' 正在使用该文件,在选项里更新新的数据文件 。

  • 相关阅读:
    【转】Windows2012设置文件夹权限报错:failed to enumerate objects in the container.
    Vue 中背景图片路径怎么加参数?
    C#有小数位数直接进位为整数;JavaScript Math有小数位数取整方法
    C# Linq to Entity使用Groupby查询时超时或很慢解决思路
    colModel的设置(给单元格指定颜色等)
    金额的表示方法
    jqGrid表格时间格式化 ,formatoptions: {srcformat:'Y-m-d H:i:s',newformat:'Y-m-d H:i:s H:i:s'}
    HTTP Error 414. The request URL is too long. asp.net解决方案
    radio/checkbox各种操作
    Kubernetes常用命令总结
  • 原文地址:https://www.cnblogs.com/amadeuslee/p/3744461.html
Copyright © 2011-2022 走看看