备份的唯一原因
备份的唯一原因是我们可以还原
 
当我第一次成为sqlserver数据库管理员,只要备份工作都能成功运行,我就会觉得一切都很好。我会查看sqlserver代理,保证那些作业都在运行,然后就这样了。
我想只要发生灾难了,我只需要做一个恢复。这能有多难?
 
理论上,我们使用凯德拉的5个简单问题来测试我们的备份策略,并且我们要记住会导致dba被解雇的9个注意事项。
 
在实践中,有一些小问题会困扰我们。当出现问题的时候,我们是否要还原整个数据库——即只恢复几个表还是一个完整的数据库。有些人把生产环境的数据库当做开发环境从而不小心删除了数据库,接下来的事情当然是大家都疯掉了。提前思考我们的备份计划可以使危机处理地更加容易。
 
 
在那里做恢复
​当你恢复代码(存储过程、视图、触发器等)或者表时,不要恢复到生产服务器上。 
我并不喜欢去动生产数据库,当我们面对这些事故时——你就已经有了糟糕的一天。这就是你为什么做还原,还记得吗?
让我们在不同的环境(开发或者测试)做不同的事情,远离生产环境。我也会写如何在开发、测试和生产环境中还原。 
当我们安全的恢复一个数据库后,可以很容易的把数据复制到其他的服务器上面。你可以在生产环境上通过连接服务器安全而简单的访问只读的恢复服务器上的数据库。并且,从生产数据库可以通过连接服务器把数据导到恢复数据库上。 
然后,如果要恢复的数据超过10G,那么你可能必须在生产数据库上恢复以加快速度。我们必须非常小心,并且确保你的脚本和数据库名称正确——我们不想覆盖正在工作中的数据库。这可能需要生产服务器增加额外的空间,在一个紧急情况下,我不得不把tempdb和log文件缩小到1M来释放可用空间。tempdb在一个非常快的磁盘上,并且恢复过程中没出现例如断电等其它问题,因此这次恢复完美的完成了。我们并不会总是这么好运,但这有利于我们想出更多这样的情形。 
一个警告:如果存在依赖性关系,比如一个表和其他表存在依赖关系,而你恢复了这个表,而没有恢复这个表依赖的那个表,那么这会造成伤害。我们不能说到所有的场景——真的,每种情况都是不同的。
 
执行恢复 
使用no recovery选项来恢复最近一次完整备份——这是非常重要的。
这使得数据库处于恢复状态,并且可以恢复其他的备份。如果你忘记了这两点,那么可能你就需要再一次的从头恢复了,所以在你恢复之前,请务必仔细检查。 
如果我恢复的代码或者配置表在上一次完成备份后并没有更改,那么我不会还原之后的差异备份和事务日志备份,我们的目标是尽可能快的完成还原。 
接下来,在还原差异备份后还原事务日志备份(如果你在上一次完整备份后没有差异备份),同样,不要忘了no recovery。 
用图形界面执行这一切实在是糟透了。备份越多,你还原的时间就越长,并且更加容易出错。相反,你需要脚本来管理备份文件夹,找到对应的文件并进行自动回复。在接下来的培训里我们会讨论自动还原模块。 
学习备份和还原知识,我们推荐下列这些文章: 

brent ozar的sqlserver dba训练课程翻译——第二章:手动恢复数据库的更多相关文章

  1. 翻译brent ozar的sqlserver dba训练课程——第一章:建立数据库服务器清单

    在公司里,走进销售副总裁的办公室,询问他手下有多少销售人员.不,我的意思是你并不要那么做,他们会问你销售工具为什么那么慢.  其实我的意思是,如果你能走进他的办公室问他这个问题.我敢打赌,他会马上回答 ...

  2. ORACLE AUTOMATIC STORAGE MANAGEMENT翻译-第二章 ASM instance(1)

    第二章  ASM INSTANCE ASM的类型,例如可以: 10g后ORACLE instance 类型增加了一个ASM种类.参数INSTANCE_TYPE=ASM进行设置. ASM实例启动命令: ...

  3. Gradle2.0用户指南翻译——第二章. 概述

    翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc本文翻译所在分支:https://github.com/msdx/gradledoc/tree/2 ...

  4. ORACLE AUTOMATIC STORAGE MANAGEMENT翻译-第二章ASM Instance(4)完

    ASM安全 这个小节主要描写叙述与ASM相关的各种安全配置话题,像 配置ASM须要的userids.groupids:ASM权限如 SYSOPER,SYSDBA和新的SYSASM权限,最后还有ASM ...

  5. Learning Scrapy 中文版翻译 第二章

    为了从网页中提取信息,你有必要对网页的结构做一些了解.我们将快速学习HMTL,HTML数状结构以及用XPath在网页上提取信息 HTML, DOM树结构以及XPath 让我们花一点时间来了解当用户在浏 ...

  6. Scyther-Semantics and verification of Security Protocol 翻译 (第二章 2.2.2----2.3)

    2.2.2  事件顺序 协议中的每个角色对应于事件列表,换句话说, 在属于角色 R 的协议事件集上施加结构,总的排序表示为 $ \prec $ , 如此任何角色 R∈Role 和 $\varepsil ...

  7. 1_02_MSSQL课程_T_SQL语句_手动创建数据库和表

    1. 基本的DML SQL脚本 ->简单的查询: Select 列名 From 表明 where 条件表达式 ->插入数据: Insert Into 表名(列名1,列名2,列名3..... ...

  8. 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...

  9. 计算机网络课程优秀备考PPT之第二章物理层(二)

    为了记录自己从2016.9~2017.1的<计算机网络>助教生涯,也为了及时梳理和整写笔记! 前期博客是, 计算机网络课程优秀备考PPT之第一章概述(一) 以上是<计算机网络> ...

随机推荐

  1. IntelliJ IDEA 中module的dependencies是其它module时的注意事项

    Dependencies on other modules If a module (module A) depends on another module (module B), IntelliJ ...

  2. 《AngularJS》--指令的相互调用

    转载自http://blog.csdn.net/zhoukun1008/article/details/51296692 人们喜欢AngularJS,因为他很有特色,其中他的指令和双向数据绑定很吸引着 ...

  3. nginx 根据IP 进行灰度发布

    灰度发布,简单来说,就是根据各种条件,让一部分用户使用旧版本,另一部分用户使用新版本. nginx 的语法本身可以看作是一门小型的编程语言,通过简单的编程,可以轻松实现基于IP的灰度发布. 需求:搭建 ...

  4. C#链接远程SQL 服务器方法

     C#链接远程SQL 服务器方法第一步:申请花生壳内网版,要求交1块钱给花生壳服务器做验证.第二步:把你自己主机本地连接那里的内网地址不要自动获取,写成192.168.0.105,子网掩码255.25 ...

  5. 阿里云linux的nginx下面配置多站点

    假设有服务器ip为 114.214.85.35 域名1为  www.jieshendada.cn 域名2为 www.jieshenxiaoxiao.cn 1.首先打开nginx域名配置文件存放目录:/ ...

  6. rmi rpc restful soa 区别

    rmi rpc restful soa 区别 rmi vs rpc 参考文档:http://stackoverflow.com/questions/2728495/what-is-the-differ ...

  7. BestCoder Round 59 (HDOJ 5500) Reorder the Books

    Problem Description dxy has a collection of a series of books called “The Stories of SDOI”,There are ...

  8. jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)

    这篇文章主要介绍了jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate),需要的朋友可以参考下 使用jQuery ui首先需要引入jQuery类库 ...

  9. 学OpenGL的一些好的网站

    好的资源太多,自己懂的太少,而今迈步从头越!!fighting...... 一些OpenGL资源链接 这是前几天自己简单整理的几个链接,希望对大家有用 顺便问一下http://www.spacesim ...

  10. HTML5 canvas文本属性与方法

    文本属性和方法 font                        设置或返回文本内容的当前字体属性 textAlign                设置或返回文本内容的当前对齐方式 start ...