`

如何提高SQL Server的恢复速度?

 
阅读更多

原文链接:http://www.simple-talk.com/sql/backup-and-recovery/faster-restores-best-practices-to-increase-speed/

以下是基于原文的翻译及精简后的内容.

如何提高SQL Server数据库的还原速度

  1. 经常练习还原数据所使用的命令.
    每隔一段时间(最少一个月)演练一两遍还原数据库的操作. 如果真的碰到需要还原数据库的操作, 就可以直接写需要的语句, 减少查找联机丛书的时间, 避免语句中的语法错误. 这样可以节省至少一刻钟的时间.


  2. 启用文件快速初始化.
    还原数据库的时候, 如果使用with move参数, 操作系统会在新的路径下创建数据库所需要的文件. 从SQL Server 2005开始, SQL Server可以使用windows的文件快速初始化功能来初始化还原数据库所生成的文件. 要启用这个功能,需要将SQL Server database engine 的启动账户添加到'执行卷维护任务'(Perform Volume Maintenance Tasks)的组策略中. 启用这个功能可以快速提高初始化数据文件的速度, 节省大量的时间.(有两点需要注意一下, 一个是文件快速初始化只能应用于数据文件, 对日志文件不适用; 二是文件快速初始化有安全上的隐患, 因为通过快速初始化创建的文件中含有磁盘中原有的数据, 而没有用0覆写.)

  3. 服务器硬件
    存储的读写速度如何, 对数据库的恢复速度影响也比较大. 更多的磁盘或者使用SSD会加快还原的速度, 另外更大的内存和更快更多的CPU也是一样.

  4. 备份压缩
    从SQL Server 2008开始, 支持对数据库进行压缩备份. 磁盘是系统中最慢的部分, 而压缩后的数据库备份数据量更小, 这样节省了生成备份时,往磁盘上写数据的时间, 同样也节省了还原时,从磁盘上读备份的时间. 当然压缩或者解压是需要额外的CPU资源, 这点需要注意.

  5. 多文件
    在备份数据库时,备份到多个文件,这样并行处理可以提高备份的速度; 如果这些备份文件又是分散在不同的物理磁盘上, 那么会节省更多的备份时间. 还原时也是一样.

  6. 就地还原
    在还原已有数据库的备份时, 不使用with move的选项, 直接覆盖已有文件, 可以节省文件初始化所需要的时间.

  7. 恢复
    数据库备份的还原过程中, 先是做restore, 然后是recover, 恢复的操作就是回滚或者前滚事务, 以保持数据库的一致性. SQL Server 有一个(Recovery Interval) 的选项,控制checkpoint发生的频率. 这个选项的默认值是0, 也就是由SQL Server自动调整checkpoint发生的频率. 除非由SQL Server自动控制的checkpoint发生频率严重影响了系统性能, 否则建议不修改这个选项.(曾经在生产环境中碰到过这样的问题, 由于把recovery interval改到24小时, 导致数据库意外重启后, 恢复了20个小时以上, 不得已用备份库当做生产库用, 后来花了很长时间去补数据.)

分享到:
评论

相关推荐

    SQL Server 2008高级程序设计 4/6

     本书首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和...

    SQLServer安全及性能优化

    SQLServer安全及性能优化 修补漏洞 安装程序补丁修补漏洞 随时关注微软官方网站补丁升级 关闭不必要的端口 关闭联必要的服务 数据库引擎 SQL Server Analysis Services SQL Server Reporting Services SQL ...

    SQL Server 2008高级程序设计 2/6

     本书首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和...

    SQL Server 2008高级程序设计 5/6

     本书首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和...

    SQL Server 2008高级程序设计 6/6

     本书首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和...

    SQL Server 2008高级程序设计 1/6

     本书首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和...

    SQL Server 2008高级程序设计 3/6

     本书首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和...

    迷你版SQL2000服务器

    +增加内存管理页,控制SQL Server内存占用,与企业管理器相同。 1.2.1 ^未开启服务时,关闭窗口会退出程序,开启服务时,关窗窗口则是隐藏; *附加数据库时,修正目标目录与源目录相同时无法附加的问题。 1.2.0 ...

    SQL Server DBA维护常用语句

    1、检查数据库完整性 代码如下:dbcc checkdb(test)–通过加tablock提高速度 dbcc checkdb(test) with tablock2、数据库重命名、修改恢复模式、修改用户模式 代码如下:–数据库重命名 ALTER DATABASE WC MODIFY ...

    SQL从小白到大牛.pptx

    对于希望提高SQL应用性能的读者来说,这本书将非常有帮助。 因此,《SQL从小白到大牛》是一本非常实用的SQL教程,它能够帮助读者从零开始学习SQL,并且逐步提高自己的SQL技能,从小白成长为大牛。

    迷你SQL2000

    +增加内存管理页,控制SQL Server内存占用,与企业管理器相同。 1.2.1 ^未开启服务时,关闭窗口会退出程序,开启服务时,关窗窗口则是隐藏; *附加数据库时,修正目标目录与源目录相同时无法附加的问题。 1.2.0 ...

    基于 jQuery 的 Web 源程序在线评测系统的设计与实现

    运行平台,使用 Asp.net 做为开发环境,使用微软的 SQLServer 数据库做为数据库服 务器。这样可能会使开发效率有一点提高,但是如果从长期考量这种搭配是不合适的。 首先,Windows 操作系统、SQLServer 数据库系统都...

    Toad 使用快速入门

    TOAD 的高级编辑窗口包括众多的特性来提高开发人员编写SQL语句的产品化程度。例如,简单地生成代码模板,在编写SQL前自动发现包的内容和列的名字等等。 SQL编辑器包括一个编辑窗口和运行结果窗口,允许开发人员在...

    asp.net知识库

    在Framework1.0下同时连接SqlServer和Oracle的一些体会 XML XPath XPath最通俗的教程(ZZ) XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下的XSLT转换技术简介 一个...

    分布式数据库设计方案.doc

    SQL Server数据库的复制/订阅技术 复制/订阅数技术可以实现读、写分离,数据先写到中心数据库上,写成功即返回给应用 程序;通过复制将数据复制到只读服务器,查询时从只读服务器查。 意味着订阅端的数据和中心...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    3.2.1. Web应用程序开发环境—SQLserver数据库 SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。SQL Server 2000是Microsoft公司于...

Global site tag (gtag.js) - Google Analytics