备份的唯一原因
备份的唯一原因是我们可以还原
 
当我第一次成为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. linux命令之partprobe

    使用fdisk工具只是将分区信息写入到磁盘,如果需要使用mkfs格式化并使用分区,则需要重新启动系统.partprobe 是一个可以修改kernel中分区表的工具,可以使kernel重新读取分区表而不 ...

  2. eclipse-android-activity_main/fragment_main文件处理

    android新建工程后,在res/layout/下有两个文件,之前用studio的时候貌似没有,只有一个文件,然后再测试Activity切换的时候,一直在纠结这个问题,下面是解决方法: 1)将fra ...

  3. maven部署命令

    参考文档:http://blog.csdn.net/woshixuye/article/details/8133050 http://www.blogjava.net/itvincent/archiv ...

  4. Android开发中在一个Activity中关闭另一个Activity

    比如有ActivityA, ActivityB,在ActivityB中关闭ActivityA 解决方案: 1. 在 ActivityA 里面设置一个静态的变量instance,初始化为this在 Ac ...

  5. 破解Windows Server 2003只允许3个用户远程登陆

    导读:WIN2003在使用远程桌面登录的时候,一台机器默认情况下只允许3个用户同时登录. 这很不方便.我们修改WIN2003远程桌面的连接数,可以设置3个以上用户远程桌面. 1.启动终端服务:在&qu ...

  6. libthrift0.9.0解析(二)之TSimpleServer

    TSimpleServer简单实现Tserver,代码如下. /** * Simple singlethreaded server for testing. * */ public class TSi ...

  7. icon font

    简而言之,就是: 使用 特殊字符 + (使用@font-face)自定义的字体 来代替图片文件显示图标. 关于@font-face, 参考来自W3CPLUS 的详细解释: css3 @font-fac ...

  8. Indy10 即时通讯Demo

    最近闲来无事,重新学习了Indy10,顺手写了一段即时通讯代码.与上次写的笔记有不同之处,但差别不大. 未研究过TCP打洞技术,所以下面的代码采用的是  客户端--服务器--客户端  模式,也就是服务 ...

  9. Pyhton 操作MySQL数据库

         MySQL数据库的接口程序下载地址:https://sourceforge.net/projects/mysql-python/ 操作数据库的大致步骤如下: 1:首先先创建一个数据库的连接对 ...

  10. SQLite3简单入门及C++ API

    转载请注明出处:http://www.cnblogs.com/StartoverX/p/4660487.html 项目用到SQLite3,简单记录一下. MySQL不同,SQLite3的数据库基于文件 ...