[SQL Server]数据库的恢复

数据库恢复是和数据库备份相对应的操作,它是将数据库备份重新加载到系统中的过程。数据库恢复可以创建备份完成时数据库中存在的相关文件,但是备份以后的所有数据库修改都将丢失。

SQL Server进行数据库恢复时,系统将自动进行安全性检查,以防止误操作而使用了不完整的信息或其他的数据备份覆盖现有的数据库。当出现以下几种情况时,系统将不能恢复数据库。

(1)还原操作中的数据库名称与备份集中记录的数据库名称不匹配。

(2)需要通过还原操作自动创建一个或多个文件,但已有同名的文件存在。

(3)还原操作中命名的数据库已在服务器上,但是与数据库备份中包含的数据库不是同一个数据库,例如数据库名称虽相同,但是数据库的创建方式不同。

如果重新创建一个数据库,可以禁止这些安全检查。

一。数据库恢复模型

根据保存数据的需要和对存储介质使用的考虑,SQL Server提供了3种数据库恢复模型:简单恢复、完全恢复、大容量日志记录恢复。

1.简单恢复模型

简单恢复模型可以将数据库恢复到上次备份处,但是无法将数据库还原到故障点或待定的即时点。它常用于恢复最新的完整数据库备份、差异备份。

简单恢复模型的有点是允许高性能大容量复制操作,以及可以回收日志空间。但是必须重组最新的数据库或者差异备份后的更改。

2.完全恢复模型

完全恢复模型使用数据库备份和事务日志备份提供将数据库恢复到故障点或特定即时点的能力。为保证这种恢复程度,包括大容量操作(如SELECT INTO、CREATE INDEX和大容量装载数据)在内的所有操作都将完整地记入日志。

完全恢复模型的优点是可以恢复到任意即时点,这样数据文件的丢失和损坏不会导致工作损失,但是如果事务日志损坏,则必须重新做最新的日志备份后进行修改。

3.大容量日志记录恢复模型

大容量日志记录恢复模型为某些大规模或大容量复制操作提供最佳性能和最少日志使用空间。在这种模型中,大容量复制操作的数据丢失程度要比完全恢复模型严重,因为在这种模型下,只记录操作的最小日志,无法逐个控制这些操作。它只允许数据库恢复到事务日志备份的结尾处,不支持即时点恢复。

大容量日志记录恢复模型的优点是可以节省日志空间,但是如果日志损坏或者日志备份后发生了大容量操作,则必须重做自上次备份后所做的更改。

不同的hi付模型针对不同的性能、磁盘和磁带空间以及保护数据丢失的需要。恢复模型决定总体备份策略,包括可以使用的备份类型,即选择一种恢复模型,可以确定如何备份数据以及能承受何种程度的数据丢失,由此确定了数据的恢复过程。

二。查看备份信息

由于恢复数据库与备份数据库之间往往存在较长的时间差,难以记住备份设备和备份文件及其所备份的数据库,需要对这些信息进行查看。

需要查看的信息通常包括:备份集内的数据和日志文件、备份首部信息、介质首部信息。可以使用SQL Server管理平台和Transact-SQL语句查看这些信息。

1.使用SQL Server管理平台查看备份信息

使用SQL Server查看所有备份介质属性的操作步骤如下:

(1) 打开SQL Server管理平台,在对象资源管理器中,展开结点”服务器树“→”服务器对象“→”备份设备“,右击某个具体备份设备名称,在弹出的快捷菜单上选择”属性“命令,打开”备份设备“属性窗口。

(2)在”备份设备“属性窗口选择”媒体内容“选择卡,打开的窗口,在列表框中列出所选备份媒体的有关信息。

2.使用Transact-SQL语句查看备份信息

RESTORE HEADERONLY语句的格式为:

RESTORE HEADERONLY

FROM <backpi_device>

[WITH {NOUNLOAD|UNLOAD}

[[,]FILE =file_number]

[[,]PASSWORD={password|@password_var}]

[[,]MEDIAPASSWORD={mediapassword|@mediapassword_var}]

<backup_device>::={

{‘logical_backup_device_name‘|@logical_backup_device_name_var}

|{DISK|TAPE}={‘physical_backup_device_name‘|@physical_backup_name_var}

}]

各选项含义如下:

(1)<backup_device>:指定备份操作时要使用的逻辑或物理设备。

(2)FILE=file_number:标识要处理的备份集。

(3)PASSWORD={password|@password_var}:备份集密码。

(4)MEDIAPASSWORD={mediapassword|@mediapassword_var}:媒体集密码。

RESTORE HEADERONLY 语句返回的结果集包括:备份集名称、备份集类型、备份集的有效时间、服务器名称、数据库名称、备份大小等信息。

举例:使用Transact-SQL语句得到back4数据库备份的信息。

RESTORE HEADERONLY FROM back4

三。恢复数据库

1.使用SQL Server管理平台恢复数据库

其操作步骤如下:

(1)在SQL Server管理平台的”对象资源管理器“中,展开数据库文件夹,右击要进行还原的数据库图标,这里以Sales数据库为例,从弹出的快捷菜单中选择”任务/还原/数据库“选项,打开”还原数据库“窗口。

(2)在”还原数据库“窗口的”常规“选项卡中,”目标数据库“下拉列表框用于选择要还原的数据库;”目标时间点“文本框用于设置还原时间点,可以保留默认值,也可以通过单击旁边的浏览按钮打开”时点还原“对话框,选择具体的日期和时间,对于完整数据库备份恢复,只能恢复到完全备份完成的时间点;”还原的源“区域中的”源数据库“下拉列表框用于选择要还原的备份的数据库存的名称;”源设备“文本框用于设置还原的备份设备的位置;”选择用于还原的备份集“网格用于选择还原的备份。

(3)选择”选项“项。在其中进行还原选项和恢复状态的设置。其中,”覆盖现有数据库“复选框被选中表示恢复操作覆盖所有现有数据库及相关文件;”保留复制设置“复选框被选中表示将已发布的数据库还原到创建该数据库的服务器之外的服务器时,保留复制设置;”还原每个备份之前进行提示“复选框被选中表示在还原每个备份设置之前要求用户确认;”限制访问还原的数据库“复选框被选中表示还原后的数据库仅供db_owner、dbreator或sysadmin的成员使用;”将数据库文件还原为“区域可选择数据文件和日志文件的路径。

(4)设置完成后,单击”确定“按钮,即可还原数据库,并在还原成功后出现消息对话框,要求用户确认还原已成功完成。

差异备份、日志备份、文件和文件组备份的还原操作与完整数据库备份的还原操作过程相似。

2.使用Transact-SQL语句RESTORE恢复数据库

与BACKUP 语句 相对应,RESTORE语句可以恢复整个数据库备份、数据文件及文件组备份、事务日志备份。

RESTORE语句的语法格式为:

RESTORE {DATABASE|LOG}

{database_name|@database_name_var}

<file_or_filegroup>[,...n]

[FROM <backup_device>[,...n]]

[WITH

[RESTRICTED_USER]

[[,]FILE={file_number|@file_number}]

[[,]PASSWORD={password|@password_var}]

[[,]MEDIANAME={media_name|@media_name_var}]

[[,]mediapassword={mediapassword|@mediapassword_var}]

[[,]MOVE‘logical_file_name‘TO‘operating_system_file_name‘][,...n]

[[,]KEEP_REPLICATION]

[[,]{NORECOVERY|RECOVERY|STANDBY=undo_file_name}]

[[,]REPLACE]

[[,]RESTART]

[[,]STATS[=percentage]]

[[,]STOPAT={date_time|@date_time_var}

|[,]STOPATMARK=‘mark_name‘[AFTER datetime]

|[,]STOPBEFOREMARK=‘mark_name‘[AFTER datetime]]

]

各选项含义如下:

(1)DATABASE:指定要恢复备份的数据库。

(2)LOG:指定对数据库恢复事务日志备份。SQL Server检查已备份的事务日志,以确保按正确的序列将事务恢复到正确的数据库。

(3){database_name|@database_name_var}:将日志或整个数据库要还原到的数据库。

(4)<file_or_filegroup>:指定包括在要恢复的数据库中的逻辑文件或文件组的名称,可以指定多个文件或文件组。

(5)FROM<backup_device>:指定从中恢复备份的备份设备,其定义与BACKUP语句相同。

(6)RESTRICTED_USER:限制只有db_owner、db_creator或sysadmin角色的成员才能访问最近恢复的数据库。该选项与RECOVERY一起使用。

(7)FILE={file_number|@file_number}:标识要恢复的备份集。

(8)PASSWORD={password|@password_var}:提供备份集密码。

(9)MEDIAPASSWORD={mediapassword|@mediapassword_var}:提供媒体的密码。

(10)MOVE‘logical_file_name‘TO‘operating_system_file_name‘:指定将给定的logical_file_name移到operating_system_file参数指定的位置。默认情况下,logical_file_name将恢复到其原始位置。

(11)NORECOVERY:指示在执行恢复操作后不回退任何未提交事务。

(12)RECOVERY:指示在执行恢复操作后回退未提交的事务,为默认值。

(13)STANDBY=undo_file_name:指定撤销文件名从而可以取消恢复。

(14)REPLACE:表示如果已经存在具有相同名称的数据库时,则删除已有的数据库,创建指定的数据库。

(15)STOPAT={date_time|@date_time_var}:指定只恢复数据库在指定的日期和时间之间的内容。该选项只与RESTORE LOG 一起使用。

(16)STOPATMARK=‘mark_name‘[AFTER datetime]:表示恢复到指定的标记,包括包含该标记的事务。该选项只与RESTORE LOG一起使用。

(17)STOPBEFOREMARK=‘mark_name‘[AFTER datetime]:表示恢复到指定的标记,但不包括包含该标记的事务。该选项只与RESTORE LOG一起使用。

举例:从一个已存在的备份媒体back1恢复整个数据库Sales.

RESTORE DATABASE Sales

FROM back1

举例:从磁盘上的备份文件D:\Sales_back.bak中恢复数据库Sales.

RESTORE DATABASE Sales FROM DISK=‘D:\Sales_back.bak‘

举例:将一个数据库备份和一个事务日志进行数据库的恢复操作。

RESTORE DATABASE Sales

FROM back1 WITH NORECOVERY

RESTORE LOG Sales

FROM back1 WITH NORECOVERY

举例:恢复数据库Sales中指定数据文件Sales_data1.

RESTORE DATABASE Sales

FILE=‘Sales_data1‘

FROM back4

WITH NORECOVERY

原文地址:https://www.cnblogs.com/XuCode/p/9222608.html

时间: 2024-11-10 18:11:47

[SQL Server]数据库的恢复的相关文章

SQL Server数据库备份恢复(Simple Recovery Model和Full Recovery Model)(链接)

下面这篇微软文档,介绍了SQL Server数据库在Simple Recovery Model下的备份和恢复机制: Complete Database Restores (Simple Recovery Model) 下面这篇微软文档,介绍了SQL Server数据库在Full Recovery Model下的备份和恢复机制: Complete Database Restores (Full Recovery Model) 原文地址:https://www.cnblogs.com/OpenCod

SQL SERVER数据库master数据库恢复

一.实验步骤大概 1.先创建一个数据库和表,用来做恢复之后的验证. 2.把master数据库提前做好备份. 3.模拟master数据库删除,在服务里边关闭SQL server服务然后才能删除master数据库. 4.重启SQL server服务,发现无法启动! 5.重建数据库. 6.进入单用户模式,恢复master数据库. 7.再次重启,进入数据库查看之前创建的数据库和表已经恢复,发现恢复正常! *:本案例实验环境为2008 R2 二.实验步骤 1.先创建一个数据库和表,用来做恢复之后的验证.

Sql Server数据库由于未知原因丢失的恢复方法

故障描述: 5块2T硬盘组建RAID5,划分LUN供windows服务器使用.在windows服务器内装有Sql Server2008数据库.存储空间内共有三个逻辑分区,大小分别为500G.800G.2.3T.数据库文件丢失,主要涉及五个数据库,表个数约为6000个左右.丢失原因未知,且不能确定数据存储位置.三个数据库的大小分别为8G.15G.20G.在文件丢失后服务器仍处于开机状态,但并未写入大量数据. 初检流程: 1.使用RAID信息及内部数据块信息重组RAID.重组RAID2.提取LUN内

SQL Server数据库的三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式

SQL Server数据库的三种恢复模式:简单恢复模式.完整恢复模式和大容量日志恢复模式 这篇文章主要介绍了SQL Server数据库的三种恢复模式:简单恢复模式.完整恢复模式和大容量日志恢复模式,需要的朋友可以参考下 如何图形界面下修改恢复模式 找到你想修改的数据库 右键 > 属性  > 左侧 选项既可看到 1.Simple 简单恢复模式, Simple模式的旧称叫"Checkpoint with truncate log",其实这个名字更形象,在Simple模式下,SQ

你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)

前言 本篇主要是上一篇文章的补充篇,上一篇我们介绍了SQL Server服务启动过程所遇到的一些问题和解决方法,可点击查看,我们此篇主要介绍的是SQL Server启动过程中关于用户数据库加载的流程,并且根据加载过程中所遇到的一系列问题提供解决方案. 其实SQL Server作为微软的一款优秀RDBMS,它启动的过程中,本身所带的那些系统库发生问题的情况相对还是很少的,我们在平常使用中,出问题的大部分集中于我们自己建立的用户数据库. 而且,相对于侧重面而言,其实我们更关注的是我们自己建立的用户数

SQL Server数据库学习总结

经过一段时间的学习,也对数据库有了一些认识,数据库基本是由表,关系,操作组成:对于初学者首先要学的 一图胜"十"言:SQL Server 数据库总结 一个大概的总结 经过一段时间的学习,也对数据库有了一些认识.  数据库基本是由表,关系,操作组成:对于初学者首先要学的:  1.数据库是如何存储数据的  表,约束,触发器  2.数据库是如何操作数据的  insert,update,delete T-sql 函数 存储过程 触发器  3.数据库是如何显示数据的  select SQLSer

sql server 数据库的管理以及维护

   http://xiaorenwutest.blog.51cto.com                 数据库和表的管理 前言:上次主要介绍的是sql server数据库的搭建以及通过SSMS工具进行连接数据库,本次内容主要介绍数据库的表进行管理.在工作中DBA通常对数据库进行创建和删除以及修改表的内容,扩展和收缩.分离及附加. 表是存放数据.查找数据以及更新数据的基本数据构建,在对数据的操作都是在表的基础上进行的,以及如何维护表.   注:实际上表是逻辑的存在,事实上数据存放在硬盘上面.

《SQL Server企业级平台管理实践》读书笔记——关于SQL Server数据库的备份方式

数据备份一直被认为数据库的生命,也就是一个DBA所要掌握的主要技能之一,本篇就是介绍SQL Server备份原则,SQL Server数据库分为数据文件和日志文件.为了使得数据库能够恢复一致点,备份不仅需要拷贝数据数据文件里的内容,还要拷贝日志文件里的内容.那么根据每次备份的目标不同,我们可以将备份分为数据备份和日志备份. 数据备份的范围可以是完整的数据库.部分数据库.一组文件或文件组.所以根据备份下来的数据文件的范围,又分为了完整数据库备份.文件备份和部分备份. 完整数据库备份 完整数据库备份

第一章、关于SQL Server数据库的备份和还原(sp_addumpdevice、backup、Restore)

在sql server数据库中,备份和还原都只能在服务器上进行,备份的数据文件在服务器上,还原的数据文件也只能在服务器上,当在非服务器的机器上启动sql server客户端的时候,也可以通过该客户端来备份和还原数据库,但是这种操作实质是在服务器上进行的,备份的数据文件在服务器上,还原的数据文件也只能在服务器上,这个原则不会变,只是使用了客户端的一个工具来操作这个过程而已. 1.1.备份数据库 备份数据库有两种方式: 第一种是在企业管理器中,利用工具对数据库进行备份,这种备份的文件只会有一个,即以