SQL Server数据库备份和恢复数据库的全过程

目录
  • 1. 概述
  • 2. 备份类型
  • 3. 恢复模式
    • 3.1 简单恢复模式
    • 3.2 完全恢复模式和大容量日志恢复模式
  • 4. 备份数据库
  • 5. 恢复数据库
  • 总结

1. 概述

在一些对数据可靠性要求很高的行业,若发生意外停机或数据丢失,其损失是十分惨重的;

数据库管理员应针对具体的业务要求指定详细的数据库备份与灾难恢复策略,并通过模拟故障对每种可能的情况进行严格测试,只有这样才能保证数据的高可用性;

数据库的备份是一个长期过程,而恢复只在发生事故后才能进行,恢复后可看做是备份数据库的逆过程,恢复程度的好坏很大程度上依赖于备份的情况;

数据库管理员在恢复时采取的步骤正确与否也会直接影响最终的恢复结果;

2. 备份类型

备份数据库是指对数据库或事务日志进行复制,当系统,磁盘或数据库文件损坏时,能使用备份文件进行恢复,防止数据丢失;
SQL Server 数据库备份支持以下几种类型,分别应用于不同的场合:

仅复制备份

独立于正常 SQL Server 备份序列的特殊用途备份;

数据备份

完整数据库的数据备份(数据库备份)、部分数据库的数据备份(部分备份)或一组数据文件或文件组的备份(文件备份);

数据库备份

数据库的备份,完整数据库备份表示备份完成时的整个数据库;差异数据库备份植保会自最近完整备份以来对数据库所做的更改;

差异备份

基于完成数据库或部分数据库以及一组数据文件或文件组的最新完整备份的数据备份(“差异基准”),仅包含自差异基准以来发生了更改数据区;部分差异备份仅记录自上一次部分备份(称为“差异基准”)以来文件组中发证更改的数据区;

完整备份

一种数据备份,包含特定数据库或者一组特定的文件组或文件中的所有数据,以及能恢复这些数据的足够的日志;

日志备份

包括以前日志备份中未备份的所有日志记录的事务日志备份,完整恢复模式;

文件备份

一个或多个数据库文件或文件组的备份;

部分备份

仅包含数据库中部分文件组的数据(包含主要文件组、每个读/写文件组以及任何可选指定的只读文件中的数据);

3. 恢复模式

恢复模式在控制事务日志维护,提供给用户选择;SQL Server 数据库中有3中恢复模式:简单恢复模式、完全恢复模式、大容量日志恢复模式;
通常,数据库使用完全恢复模式或简单恢复模式;

3.1 简单恢复模式

简单恢复模式能最大限度地减少事务日志的管理开销,因为它不备份事务日志;若数据库损坏,则简单恢复模式将面临极大的工作丢失风险,数据只能恢复到已丢失数据的最新备份

所以,在简单恢复模式下,备份间隔应尽可能短,以防止大量丢失数据,但,间隔的长度应该足以避免备份开销影响生产工作;在备份策略中加入差异备份有助于减少开销;

对于用户数据库,简单恢复模式用于测试和开发数据库,或用于主要包含只读数据的数据库(如数据仓库);简单恢复模式并不适用生产系统,因为对于生产系统来说,丢失最新的更改是无法接受的,在这种情况下建议使用完全恢复模式;

3.2 完全恢复模式和大容量日志恢复模式

相对于简单恢复模式,完全恢复模式和大容量日志恢复模式提供了更强的数据保护功能;这些恢复模式基于备份事务日志来提供完整的可恢复性及在最大范围的故障情形内防止丢失工作;

完全恢复模式

完全恢复模式需要日志备份;此模式完整记录所有事务,并将事务日志记录保留到对其备份完毕为止;若能够在出现故障后备份日志尾部,就能使用完全恢复模式将数据库恢复到故障点;完全恢复模式也支持还原单个数据页;

大容量日志恢复模式

大容量日志记录大多数大容量操作,他只用在完全恢复模式的附加模式;对于某些大规模大容量操作(如大容量导入或索引创建),暂时切换到大容量日志恢复模式可提供性能并减少日志空间使用量;与完全恢复模式相同,大容量日志恢复模式也能将事务日志记录保留到对其备份完毕为止;

注意: 由于大容量日志恢复模式不支持时点恢复,所以必须在增大日志备份与增加工作丢失风险之间进行权衡;

4. 备份数据库

为了方便用户,SQL Server 数据库支持用户在数据库在线并正在使用时进行备份;

但,存在以下限制:

无法备份脱机数据; 隐式或显式引用脱机数据的任何备份操作都会失败;即使一个或多个数据文件不可以,日志备份也能成功;

注意: 若某个文件包含大容量日志恢复模式下所作的大容量日志更改,则所有文件都必须处于联机状态才能成功备份;

备份过程中的并发限制; 数据库仍在使用时,SQL Server 能使用联机备份过程来备份数据库;在备份过程中,能进行多个操作;但,若正在创建或删除数据库文件时尝试启动备份操作,则备份文件将等待,直到创建或删除完成或备份超时;

若备份操作与文件管理操作或收缩操作重叠,就会发生冲突;无论哪个冲突操作首先开始,第二个操作总会等待第一个操作设置的锁超时(超时期限由会发超时设置控制);若在超市期限内释放锁,第二个操作将继续执行;若锁超时,则第二个操作失败;

使用 SSMS 继续备份的过程如下:

右击要备份的数据库,任务备份

先删除,再添加;

在弹出的选择备份目标对话框汇总,选择好备份的路径;文件类型选择备份文件文件名 填写需要备份的数据库的名称,最好在备份的数据库的名称后加上日期,方便以后查找,再连续单击确定,即可完成备份;

5. 恢复数据库

数据库完整还原的目的还是还原整个数据库,真个数据库在还处于脱机状态

在数据库的任何部分变成联机之前,必须将所有数据恢复之前,必须将所哟数据恢复到同一点,即数据库的所有部分都处于同一时间点并不存在未提交的事务;

简单恢复模式下,数据库不能还原到特定备份中的特定时间点;

完整恢复模式下,还原备份数据库之后,必须还原所有后续的事务日志备份,再恢复数据库,能将数据库还原到这些日志备份之一的特定恢复点;恢复点可以是特定的日期和时间、标记的事务或日志序列号,还原数据库时,特别是在完整恢复模式大容量日志恢复模式下,应使用一个还原顺序;

注意: 还原顺序由通过一个或多个还原阶段来移动数据的一个或多个还原操作组成;

用 SSMS 对象管理资源管理器恢复数据库,操作步骤如下:

展开数据库,根据具体的数据库选择一个用户数据库,或展开系统数据库并选择一个系统数据库;右击数据库,单击还原数据库

常规,使用部分指定要还原的备份集和位置;在目标部分,数据库文本框自动填充要还原的数据库的名称;

若要更改数据库名称,可在数据库文本框中输入新名称;

还原到框中,保留默认选项至最近一次进行的备份,或单击时间线访问备份时间线,以手动选择要停止恢复的时间点;

总结

到此这篇关于SQL Server数据库备份和恢复数据库的文章就介绍到这了,更多相关SQLServer数据库备份恢复内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SQL Server中通过扩展存储过程实现数据库的远程备份与恢复

    本文通过实例解析了 SQL Server 数据库扩展存储过程,实现远程备份与恢复的方法和步骤实例说明: 环境:win2k+sqlserver 2K+查询分析器 SQL SERVER服务实例名称:mainserver 需要备份的数据库名称: msdb 本地机器名称(Client端):david 本地用户:zf 密码:123 本地域名:domain 本地提供备份需求的文件夹:e: est 第一步: 建立共享文件夹 在程序代码中调用(或者CMD窗口) net share test=e: est 或者用

  • 快速实现SQL Server数据库恢复备份

    本文为大家分享了SQL Server数据库恢复备份的两种方法,供大家参考,具体内容如下 第一种方法:通常我们采用恢复备份的方式,选择目标数据库,选择源设备进行恢复. 截图如下: 第二种方法:这种方式有时候不太方便,而脚本方式将更方便,使用脚本方式如下. /* 备份数据DB 到.bak文件.然后利用此bak文件恢复一个新的数据库DBTest. */ USE master BACKUP DATABASE DB TO DISK = 'e:\DBTest.bak' RESTORE FILELISTONL

  • SQL server 2008 数据安全(备份和恢复数据库)

    下边是我对部分内容的总结,里边偏向了T-SQL语句实现的总结,对于SQL Server Management Studio中对象管理器的操作并没有太多的总结,因为这些都有一些向导,而且,大部分都是在对应的节点,右击找相应的操作,相应的对象,然后根基向导去操作! 首先是大概知识点的总结: 下边是一些T-SQL语句对应的总结,1,管理备份设备的语句: 2,备份的语句: 3,数据恢复的对应语句: 最后, 上边讲到了备份有完全备份,差异备份,事务日志备份和文件组和数据文件备份,恢复有简单恢复,简单恢复,

  • sqlserver 数据库日志备份和恢复步骤

    --创建测试数据库 CREATE DATABASE Db GO --对数据库进行备份 BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMAT GO --创建测试表 CREATE TABLE Db.dbo.TB_test(ID int) --延时1秒钟,再进行后面的操作(这是由于SQL Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败) WAITFOR DELAY '00:00:01' GO --假设我们现在误操作删

  • sqlserver2005 master与msdb数据库备份恢复过程

    由于系统数据库对Sql Server来说尤其重要,为了确保SQL SERVER系统的正常运行,除了日常备份用户的数据库之外,我们还需要备份系统数据库,如对Master,Model,Msdb(TempDB不需备份)进行完整备份 1.还原Master数据库 如果系统配置丢失或Master出现问题,可以进入单用户模式进行还原:如果出现下列情况,必须重新生成损坏的 master 数据库:A. master 数据库的当前备份不可用.B. 存在 master 数据库备份,但由于 Microsoft SQL

  • sql server中通过查询分析器实现数据库的备份与恢复方法分享

    sql server的备份与恢复(查询分析器) 查询分析器: 命令: 1:备份数据库命令: backup database whdb1(要备份的数据库名) to disk='d:/zwh.bak'; 2:恢复数据库命令: restore database whdb1(要恢复的数据库名) from disk='d:/zwh.bak'; 3: 备份表的命令: select * into share_20090605(备份的数据) from share(表名); 作者 庄伟鸿

  • 数据库备份 SQLServer的备份和灾难恢复

    各大服务器硬件厂商(IBM,HP等)提供有很好的数据保护策略(硬件或软件).如大家熟知的RAID磁盘阵列(Redundant Array of Independent Disks)就是很好的数据保护方法.就SQL Server而言,通过维护计划可以制定详细的数据备份计划. 数据备份策略(full backup, differential backup and  transaction log backup) 数据备份是为数据恢复服务的,所以建立数据备份计划之前,应先考虑是否能利用该备份有效的恢复

  • SQL Server数据库备份和恢复数据库的全过程

    目录 1. 概述 2. 备份类型 3. 恢复模式 3.1 简单恢复模式 3.2 完全恢复模式和大容量日志恢复模式 4. 备份数据库 5. 恢复数据库 总结 1. 概述 在一些对数据可靠性要求很高的行业,若发生意外停机或数据丢失,其损失是十分惨重的: 数据库管理员应针对具体的业务要求指定详细的数据库备份与灾难恢复策略,并通过模拟故障对每种可能的情况进行严格测试,只有这样才能保证数据的高可用性: 数据库的备份是一个长期过程,而恢复只在发生事故后才能进行,恢复后可看做是备份数据库的逆过程,恢复程度的好

  • sql server 2012 备份集中的数据库备份与现有的xxx数据库不同

    SQL Server 2005备份的数据库还原到SQL Server 2012失败,错误信息如下: 解决方法 由于是还原完整数据库备份,因此删除SQL Server 2012同名数据库再还原,还原成功:

  • SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法

    以前一直使用SQL Server2000,现在跟潮流都这么紧,而且制定要求使用SQL Server2005,就在现在的项目中使用它了.  对于SQL Server 2005,有几个地方是要注意的,比方在还原数据库时,不像2000里边将数据库和文件区分的很细,统一均为文件,这就使还原的数据库文件制定为. bak.那么想还原2000的数据库(备份数据库文件,无后缀名的),就需要自己手工选择. 选择下拉框中的"所有文件",这时就会显示"备份数据库文件"了,选择-确定 最主

  • SQL Server数据库之备份和恢复数据库

    目录 1. 概述 2. 备份类型 3. 恢复模式 3.1 简单恢复模式 3.2 完全恢复模式和大容量日志恢复模式 4. 备份数据库 5. 恢复数据库 1. 概述 在一些对数据可靠性要求很高的行业,若发生意外停机或数据丢失,其损失是十分惨重的:数据库管理员应针对具体的业务要求指定详细的数据库备份与灾难恢复策略,并通过模拟故障对每种可能的情况进行严格测试,只有这样才能保证数据的高可用性:数据库的备份是一个长期过程,而恢复只在发生事故后才能进行,恢复后可看做是备份数据库的逆过程,恢复程度的好坏很大程度

  • ASP中怎么实现SQL数据库备份、恢复!

    1.ASP中怎么实现SQL数据库备份.恢复! 答:asp在线备份sql server数据库: 1.备份 <% SQL="backup database 数据库名 to disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'" set cnn=Server.createobject("adodb.conn

  • SQL Server 2008 备份数据库、还原数据库的方法

    SQL Server 2008 备份数据库: 1.打开SQL , 找到要备份的数据库 , 右键 >> 任务 >>备份 2.弹出 [ 备份数据库对话框 ] ,如图: 3.点击添加 [ 按钮 ] . 如下图: 4.选择要备份的路径 和 备份的文件名 点击 [ 确定 ]. 5.然后就一直点击确定就可以了 . 然后我们来到D:\ 看看 6.这个时候 , 你可以把它压缩打包什么的 , 要用的时候 , 在文件后面加 .bak 后缀 就可以用SQL 来还原了,还原可以来看这里~ SQL Serv

  • SQL Server实时同步更新远程数据库遇到的问题小结

    工作中遇到这样的情况,需要在更新表TableA(位于服务器ServerA 172.16.8.100中的库DatabaseA)同时更新TableB(位于服务器ServerB 172.16.8.101中的库DatabaseB). TableA与TableB结构相同,但数据数量不一定相同,应为有可能TableC也在更新TableB.由于数据更新不频繁,为简单起见想到使用了触发器Tirgger.记录一下遇到的一些问题: 1. 访问异地数据库 在ServerA 中创建指向ServerB的链接服务器,并做好

  • sql server实现在多个数据库间快速查询某个表信息的方法

    本文实例讲述了sql server实现在多个数据库间快速查询某个表信息的方法.分享给大家供大家参考,具体如下: 最近出来实习,所在公司的服务器有十几个数据库,为了方便根据某个数据表的  表名  快速找到对应的数据库,又复习了一下游标的知识,写了下面这个sql代码,方便自己的工作. 1.先了解一下系统存储过程和系统表的使用,简单介绍一下我用到的几个系统存储过程(资料参考网络) use master --切换到系统数据库,因为下面用到的系统存储过程和系统表大部分存在于该数据库 go exec sp_

  • SQL Server 完整备份遇到的一个不常见的错误及解决方法

    1. 错误详情 有一次在手动执行数据库完整备份时遇到如下错误: 执行多次都是这个错误信息. 提示无法生成检查点,原因可能是由于系统资源(如磁盘或内存空间)不足或者有时是由于数据库损坏而造成的. 我们检查数据库资源可以排除磁盘资源不足的情况. 2.检查点相关知识 事务日志.数据文件 和checkpoint的关系. 在SQL Server中,进行insert, update, delete时,数据并没有直接写入数据库对应的mdf文件中,而是写入了缓存里,这时,就要提到一个非常重要机制:CheckPo

随机推荐