zoukankan      html  css  js  c++  java
  • SQLServer中的数据库备份和还原

    备份

    SQLServer中的备份,这里是T-SQL的用法,具体示例代码如下,使用也相对简单,其中TestDatabase

    指所需备份的数据库名称,@FileName是需要备份的全路径,例如@FileName的可能值为'D://Backups//file1.bak';

      USE TestDatabase
        BACKUP DATABASE TestDatabase
        TO DISK = @FileName

    还原

    SQLServer中的还原稍微麻烦点,因为涉及到一些权限或者访问的问题,在实际中也遇到过这些问题,

    在此作一个简单介绍,下边是基本的还原T-SQL代码,其中各个元素同备份一样,需要注意的是SQLServer

    建议该脚本的执行环境最好要在MASTER中:

    USE MASTER
        RESTORE DATABASE TestDatabase
        FROM DISK = @FileName

    但是在很多时候,上边的脚本并不理想,一般会出现"[Err] 42000 - [SQL Server]因为数据库正在使用,

    所以无法获得对数据库的独占访问权。42000 - [SQL Server]RESTORE DATABASE 正在异常终止。",

    这样的错误,很明显,当我们在还原数据库的时候,其他用户正在使用的话,该脚本将会执行失败,一般的

    解决方案是杀掉所有正在使用数据库的进程。但断开所有连接用户并回滚事务,并在稍后的某个时间显示的数据

    库处于在线状态,显得更优雅些:

    USE master
    ALTER DATABASE TestDatabase SET offline WITH ROLLBACK IMMEDIATE
    RESTORE DATABASE TestDatabase FROM DISK='F://test.bak' WITH REPLACE
    ALTER DATABASE TestDatabase SET online

    细心的你可能注意到,在还原时加了特殊的OPTION: WITH REPLACE,是因为前面BACKUP时,我们没有备份

    数据库LOG相关的东西,所以我们干脆就直接将其按备份文件(.bak)全部替换就行了。不加,该脚本执行会失败,

    且提示你要么加上REPLACE,要么备份LOG。上边的SET OFFLINE是让数据库暂时处于离线状态,并将事物回滚,接

    着我们执行RESTORE,最后,将数据库重新设置为ONLINE状态,即可完成数据库还原操作。

  • 相关阅读:
    Silverlight如何logging?
    写一个Attribute用于标注类的核心函数, 方便阅读
    WPF : 如何使用DataTemplateSelector
    WPF : 性能调整
    组成UI的元素
    DemoFlowControl
    对象设计: 数据边界(Data Scope)
    sql for xml path用法
    行列转置快速实现
    js移除数组中德重复数据
  • 原文地址:https://www.cnblogs.com/denghejun/p/3760522.html
Copyright © 2011-2022 走看看