• 数据库备份和恢复速记!


    数据库备份和恢复速记!

    所谓的速记,就是追求速度,概要的记录下来一些事情。
    一、备份设备

    1.1 添加设备

    EXEC sp_addumpdevice 'disk', 'test01','f:\bak\1.bak'
    go

    EXEC sp_addumpdevice 'disk', 'log02','f:\bak\log2.bak'
    go


    1.2 删除设备

    保存相关文件:
    Exec sp_dropdevice 'test02'

    删除相关设备文件:
    Exec sp_dropdevice 'test02','delfile'

    二、备份

    2.1 备份数据库

    Backup database test01 TO test01
    go

    2.2 备份日志

    BACKUP LOG test01 TO log02
    go

    2.3 多设备备份
    Backup database test01 TO test01
    go
    Backup database test01 TO test02
    go


    三、恢复

    3.1 恢复数据库
    restore database test01 from test01
    go

    3.2 恢复日志
    restore LOG test01 from log02 WITH NORECOVERY
    go

    四、排除疑难

    4.1 打开的数据库进程,不能独占访问

    ▲方案一:
    关闭,然后重启服务器。
    ▲方案二:
    删除,数据库然后重建 。
    ▲方案三:
    分离,然后重新载入。


    ◆◆推荐方案:
    关闭连接到这个数据库的进程。
    这是个存储过程。

    (转自于http://www.yule4.com/?p=267)
    ---------------    ≯  存储过程开始  ≮  ---------------


    use master
    go

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_killspid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[p_killspid]
    GO

    create proc 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
    go

    --用法 
    exec p_killspid  'test01'

    ---------------    ≯  存储过程结束  ≮  ---------------

    4.2 日志
    日志这里有很多的问题,暂进还没有得到解决。

    比如说:

    服务器: 消息 4306,级别 16,状态 1,行 1
    先前的还原操作未指定 WITH NORECOVERY 或 WITH STANDBY。请在除最后步骤之外的所有其它步骤中指定 WITH NORECOVERY 或 WITH STANDBY 后,重新启动该还原序列。
    服务器: 消息 3013,级别 16,状态 1,行 1
    RESTORE LOG 操作异常终止。

  • 相关阅读:
    git 工作流程
    微信小程序 scroll-view 水平滚动使用
    微信小程序 tree组件
    微信小程序各类生命周期
    JS/Jquey 图片链接点击直接下载
    JS/Jquery 表单方式提交总结
    Nodejs 发送邮件 激活邮箱
    搭建Nodejs环境 创建Express应用
    break、continue、return区别
    shell(一)
  • 原文地址:https://www.cnblogs.com/xpnew/p/1404767.html
Copyright © 2020-2023  润新知