博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server 2012笔记分享-12:理解备份与恢复新特性
阅读量:6941 次
发布时间:2019-06-27

本文共 1603 字,大约阅读时间需要 5 分钟。

SQL Server 备份和还原组件为保护存储在 SQL Server 数据库中的关键数据提供了基本安全保障。 为了最大限度地降低灾难***数据丢失的风险,您需要定期备份数据库以保留对数据所做的修改。 规划良好的备份和还原策略有助于防止数据库因各种故障而造成数据丢失。 通过还原一组备份,然后恢复数据库来测试您的策略,以便为有效地应对灾难做好准备。

使用有效的数据库备份,可从多种故障中恢复数据,例如:

  • 介质故障。 

  • 用户错误(例如,误删除了某个表)。 

  • 硬件故障(例如,磁盘驱动器损坏或服务器报废)。 

  • 自然灾难。 通过使用 SQL Server 备份到 Windows Azure Blob 存储服务,您可以在本地位置之外的其他区域创建一个站外备份,这样在发生影响您的本地位置的自然灾难时仍可以使用数据库。

(一)支持压缩备份(Backup … with compression)

优点:因为相同数据的压缩的备份比未压缩备份小,所以压缩备份所需的设备 I/O 通常较少,因此通常可大大提高备份速度。

压缩的备份具有以下限制条件: 压缩的备份和未压缩的备份不能共存于一个介质集中。 早期版本的 SQL Server 无法读取压缩的备份。 NTbackup 无法共享包含压缩的 SQL Server 备份的磁带。

对***能的影响:默认情况下,压缩会显著增加 CPU 的使用,并且压缩进程所消耗的额外 CPU 可能会对并发操作产生不利影响。 因此,您可能需要在会话中创建低优先级的压缩备份,其 CPU 使用率受资源调控器限制。

可以通过评估以下类型的***能计数器来分别考察进入设备或来自设备的备份 I/O:

Windows I/O ***能计数器,例如物理磁盘计数器

SQLServer:Backup Device 对象的 Device Throughput Bytes/sec 计数器

SQLServer:Databases 对象的 Backup/Restore Throughput/sec 计数器

参考:

(二)数据库恢复顾问(简化时间点还原)

参考:

Database Recovery Advisor feature of SQL Server 2012

点开上图的时间线,可以看到备份时间线,如图。

   

(三)Indirect checkpoint

在系统崩溃时,间接检查点与自动检查点相比,恢复时间可能更短更可预测。

数据库引擎支持几种类型的检查点:自动、间接、手动和内部。

间接检查点是 SQL Server 2012 中引入的新检查点类型,优点如下。

  • 间接检查点可以减少整体数据库恢复时间。 

  • 间接检查点使您可以通过控制 REDO 期间随机 I/O 的开销来可靠控制数据库恢复时间。 这使服务器实例不超过给定数据库的恢复时间上限(长时间运行的事务导致过多 UNDO 时间时除外)。 

  • 间接检查点通过在后台不断地将脏页写入磁盘来减小与检查点有关的 I/O 蜂值。

但是,为间接检查点配置的数据库上的联机事务工作负荷可能导致***能下降。 这是因为间接检查点使用的后台写入线程有时增加了服务器实例的总写入负荷。

详细情况可参考:

数据库检查点 (SQL Server)

可以右击数据库的属***,选择“选项”,找到“目标恢复时间(秒)”,来进行设置,默认的值是0,如果值大于0,则是间接检查点时间。

下表总结了服务器端 sp_configure'recovery interval' 设置和数据库特定的 ALTER DATABASE … TARGET_RECOVERY_TIME 设置之间的相互影响。

也可以使用语句来设置:

ALTER DATABASE 数据库名称 SET TARGET_RECOVERY_TIME = 时间 SECONDS;

转载地址:http://vqnnl.baihongyu.com/

你可能感兴趣的文章
捕获未处理的Promise错误
查看>>
mac-switch-meta.el
查看>>
spring源码分析(一)资源文件的加载
查看>>
基于卷积神经网络的以图搜图算法实现
查看>>
同步与异步的区别
查看>>
SQL获取上月第一天和最后一天
查看>>
填报表更新时去除重复数据
查看>>
淘宝分词怎么查看,详谈淘宝分词原则
查看>>
对于sqli-labs基础篇全程使用sqlmap不用手工注入(七夕礼物!!!)
查看>>
C++雾中风景11:厘清C++类型转换(static_cast,dynamic_cast,reinterpret_cast,const_cast)
查看>>
为什么开发人员必须要了解数据库锁?
查看>>
Lua 学习笔记(二)—— 语句
查看>>
制作自己的Vagrant Box
查看>>
NetCore实践篇:分布式监控客户端ZipkinTracer从入门到放弃之路
查看>>
JAVA学习摘要
查看>>
[Java开发之路](23)装箱与拆箱
查看>>
TextView实现跑马灯效果
查看>>
Mysql字段名与保留字冲突导致的异常解决
查看>>
Rust 1.33.0 发布,OSC 上堪称“零差评”的编程语言
查看>>
Android MotionEvent详解
查看>>