原文链接:http://www.simple-talk.com/sql/backup-and-recovery/faster-restores-best-practices-to-increase-speed/
以下是基于原文的翻译及精简后的内容.
如何提高SQL Server数据库的还原速度
- 经常练习还原数据所使用的命令.
每隔一段时间(最少一个月)演练一两遍还原数据库的操作. 如果真的碰到需要还原数据库的操作, 就可以直接写需要的语句, 减少查找联机丛书的时间, 避免语句中的语法错误. 这样可以节省至少一刻钟的时间.
- 启用文件快速初始化.
还原数据库的时候, 如果使用with move参数, 操作系统会在新的路径下创建数据库所需要的文件. 从SQL Server 2005开始, SQL Server可以使用windows的文件快速初始化功能来初始化还原数据库所生成的文件. 要启用这个功能,需要将SQL Server database engine 的启动账户添加到'执行卷维护任务'(Perform Volume Maintenance Tasks)的组策略中. 启用这个功能可以快速提高初始化数据文件的速度,
节省大量的时间.(有两点需要注意一下, 一个是文件快速初始化只能应用于数据文件, 对日志文件不适用; 二是文件快速初始化有安全上的隐患, 因为通过快速初始化创建的文件中含有磁盘中原有的数据, 而没有用0覆写.)
- 服务器硬件
存储的读写速度如何, 对数据库的恢复速度影响也比较大. 更多的磁盘或者使用SSD会加快还原的速度, 另外更大的内存和更快更多的CPU也是一样.
- 备份压缩
从SQL Server 2008开始, 支持对数据库进行压缩备份. 磁盘是系统中最慢的部分, 而压缩后的数据库备份数据量更小, 这样节省了生成备份时,往磁盘上写数据的时间, 同样也节省了还原时,从磁盘上读备份的时间. 当然压缩或者解压是需要额外的CPU资源, 这点需要注意.
- 多文件
在备份数据库时,备份到多个文件,这样并行处理可以提高备份的速度; 如果这些备份文件又是分散在不同的物理磁盘上, 那么会节省更多的备份时间. 还原时也是一样.
- 就地还原
在还原已有数据库的备份时, 不使用with move的选项, 直接覆盖已有文件, 可以节省文件初始化所需要的时间.
- 恢复
数据库备份的还原过程中, 先是做restore, 然后是recover, 恢复的操作就是回滚或者前滚事务, 以保持数据库的一致性. SQL Server 有一个(Recovery Interval) 的选项,控制checkpoint发生的频率. 这个选项的默认值是0, 也就是由SQL Server自动调整checkpoint发生的频率. 除非由SQL Server自动控制的checkpoint发生频率严重影响了系统性能, 否则建议不修改这个选项.(曾经在生产环境中碰到过这样的问题,
由于把recovery interval改到24小时, 导致数据库意外重启后, 恢复了20个小时以上, 不得已用备份库当做生产库用, 后来花了很长时间去补数据.)
分享到:
相关推荐
本书首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和...
SQLServer安全及性能优化 修补漏洞 安装程序补丁修补漏洞 随时关注微软官方网站补丁升级 关闭不必要的端口 关闭联必要的服务 数据库引擎 SQL Server Analysis Services SQL Server Reporting Services SQL ...
本书首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和...
本书首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和...
本书首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和...
本书首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和...
本书首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和...
+增加内存管理页,控制SQL Server内存占用,与企业管理器相同。 1.2.1 ^未开启服务时,关闭窗口会退出程序,开启服务时,关窗窗口则是隐藏; *附加数据库时,修正目标目录与源目录相同时无法附加的问题。 1.2.0 ...
1、检查数据库完整性 代码如下:dbcc checkdb(test)–通过加tablock提高速度 dbcc checkdb(test) with tablock2、数据库重命名、修改恢复模式、修改用户模式 代码如下:–数据库重命名 ALTER DATABASE WC MODIFY ...
对于希望提高SQL应用性能的读者来说,这本书将非常有帮助。 因此,《SQL从小白到大牛》是一本非常实用的SQL教程,它能够帮助读者从零开始学习SQL,并且逐步提高自己的SQL技能,从小白成长为大牛。
+增加内存管理页,控制SQL Server内存占用,与企业管理器相同。 1.2.1 ^未开启服务时,关闭窗口会退出程序,开启服务时,关窗窗口则是隐藏; *附加数据库时,修正目标目录与源目录相同时无法附加的问题。 1.2.0 ...
运行平台,使用 Asp.net 做为开发环境,使用微软的 SQLServer 数据库做为数据库服 务器。这样可能会使开发效率有一点提高,但是如果从长期考量这种搭配是不合适的。 首先,Windows 操作系统、SQLServer 数据库系统都...
TOAD 的高级编辑窗口包括众多的特性来提高开发人员编写SQL语句的产品化程度。例如,简单地生成代码模板,在编写SQL前自动发现包的内容和列的名字等等。 SQL编辑器包括一个编辑窗口和运行结果窗口,允许开发人员在...
在Framework1.0下同时连接SqlServer和Oracle的一些体会 XML XPath XPath最通俗的教程(ZZ) XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下的XSLT转换技术简介 一个...
SQL Server数据库的复制/订阅技术 复制/订阅数技术可以实现读、写分离,数据先写到中心数据库上,写成功即返回给应用 程序;通过复制将数据复制到只读服务器,查询时从只读服务器查。 意味着订阅端的数据和中心...
3.2.1. Web应用程序开发环境—SQLserver数据库 SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。SQL Server 2000是Microsoft公司于...