备份的唯一原因
备份的唯一原因是我们可以还原
 
当我第一次成为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. RSA加密解密及数字签名Java实现--转

    RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的.当时他们三人都在麻省理工学院 ...

  2. Linux Kernel basics

    Linux内核作用: The Linux kernel is the heart of the operating system. It is the layer between the user w ...

  3. AS 自动生成选择器 SelectorChapek

    简介 https://github.com/inmite/android-selector-chapek 设计师给我们提供好了各种资源,每个按钮都要写一个selector是不是很麻烦? 这么这个插件就 ...

  4. Vitamio 多媒体框架 介绍

    功能 Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染.Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐.到目前 ...

  5. ASP.NET-FineUI开发实践-3

    1.参照模拟数据库分页通过缓存重写内存分页,优化页面响应速度 Grid的响应速度是硬伤,我写了个通用方法把所有数据放在缓存中模拟数据库分页,比自带的缓存分页快很多,这里贴上实体类的通用方法,DataT ...

  6. FineUI页面级别的参数配置

    Theme: 控件主题,目前支持三种主题风格(blue/gray/access,默认值:blue) Language: 控件语言(en/zh_CN/zh_TW/...,默认值:zh_CN) FormM ...

  7. TFS统计编码行数语句

    ****** Script for SelectTopNRows command from SSMS ******/ SELECT TeamProjectProjectNodeName 项目名称 ,c ...

  8. UI基本之UITextField相关方法属性

    //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(, , , )]; // ...

  9. VC Windows系统服务创建代码

    Windows系统服务创建步骤,常用类封装,废话不多说,直接上代码 // ServceDemo.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" ...

  10. zepto源码研究 - fx_methods.js

    简要:依赖fx.js,主要是针对show,hide,fadeIn,fadeOut的封装. 源码如下: // Zepto.js // (c) 2010-2015 Thomas Fuchs // Zept ...