您的当前位置:首页第13章数据备份与还原

第13章数据备份与还原

来源:小侦探旅游网
第13章数据备份与还原

学习导读

本章主要介绍SQL Server 2000中数据库的备份与还原。通过本章的学习,应掌握以下内容:❖了解SQL Server 2000中数据库备份的分类及特点❖掌握使用企业管理器进行备份的方法❖掌握使用Transact-SQL语句进行备份的方法❖掌握使用企业管理器进行还原的方法❖掌握使用Transact-SQL语句进行还原的方法1

13.1 备份和还原构架

尽管数据库系统中采取了各种保护措施来防止数据库的安全性和完整性遭破坏,保证并发事务的正确执行,但是计算机系统中硬件的故障、软件的错误、用户误操作以及恶意的破坏仍是不可避免的。这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此DBMS必须具有把数据库从错误状态还原到某一已知的正确状态的功能。数据库还原(恢复)原理:冗余建立冗余数据常用技术:数据转储登记日志文件▪SQL Server提供了一套功能强大、安全的数据备份和还原工具。数据的备份和还原可以在系统发生错误或故障时,恢复以前的数据。2

13.1 备份和还原构架SQL Server可以备份部分事务,能够保证数据的完整性。SQL Server的备份是动态的,在运行时也能进行备份。数据库ABCDEFGHIJKL备份文件ABCDEF数据库123DEF456JKL备份文件ABCDEF事务日志事务日志ABC=123GHI=456(a)(b)313.1 备份和还原构架数据库123DEF456JKL事务日志备份文件ABCDEF456数据库123DEF456JKL事务日志备份文件ABCDEF456JKLJKL备份日志ABC=123GHI=456(d)ABC=123GHI=456(c)ABC=123GHI=456413.1 备份和还原构架数据库ABC数据库ABCDEF456JKL备份文件ABCDEF456JKL备份日志ABC=123GHI=456(e)(f)DEFGHIJKL513.1 备份和还原构架

SQL Server 2000提供以下完善的备份和还原功能:提供了有关如何备份和还原数据库的选项:完整数据库备份、事务日志备份、差异备份和文件或文件组还原。这些选项允许根据数据库中数据的重要程度调整备份和还原进程。可以不备份能够很容易从其他来源重新创建的非关键数据库,有些数据库可能只需要简单的备份,即只将数据库恢复到故障发生前一天晚上的状态,而关键数据库则需进行完善的备份,即应将数据库还原到故障发生前的状态。由BACKUP和RESTORE语句控制:用户可以直接从应用程序、T-SQL脚本、存储过程和触发器执行BACKUP和RESTORE语句。但是更常见的是使用SQL Server企业管理器定义备份调度,从而使SQL Server代理程序得以按照调度自动运行备份。数据库维护计划向导可用于定义和调度每个数据库的全套备份。这可使备份进程完全自动化,无需或者只需很少的操作员操作。6

13.1 备份和还原构架

维护msdb数据库中的一系列备份历史记录表:备份历史记录表记录每个数据库的备份。如果不得不还原数据库,则SQL Server企业管理器的“还原数据库”对话框将为用户显示数据库的所有可用备份列表。“还原数据库”对话框还用一种逻辑显示使用历史记录中的哪个备份集,可以在最短时间还原数据库。当显示该对话框时,还原数据库所需的备份都将被选中。如果用户知道其中的哪一个备份不可用,则可以取消选择该备份,SQL Server企业管理器将考虑新的还原方法。当用户同意使用新的方法进行还原时,SQL Server企业管理器将还原数据库,并在需要时提示插入磁带。备份可以在数据库正在使用时执行:这样可以为必须不间断运行的系统进行备份。SQL Server 2000的备份处理和内部数据结构已经进行结构化,使备份在最大限度地提高数据传输率的同时,对事务吞吐量的影响保持最小。7

13.1 备份和还原构架

使备份和还原操作获得更快的数据传输率:这样使SQL Server能够支持超大型数据库(VLDB)。SQL Server 2000数据库中的数据结构以及备份和还原算法支持备份和还原操作的高数据传输率。SQL Server备份和还原操作还可以并行方式在多个备份文件或磁带驱动器上运行,从而进一步提高备份和还原的数据传输率。在必要时,RESTORE语句将自动重新创建数据库:如果执行RESTORE语句时数据库不存在,那么这一功能可省去单独执行CREATE DATABASE或CREATE DATABASE FOR LOAD语句的必要。在中断时从接近中断点的位置开始进行:当中断的备份和还原操作重新开始时,将从接近中断点的位置开始继续备份和还原操作。8

13.2 备份数据库

数据库备份就是对SQL Server数据库进行复制,以便在数据库遭到破坏时能够及时地将其恢复。13.2.1 备份类型和常用备份策略

1. 备份设备

在进行备份以前必须创建或指定备份设备。备份设备是用来存储数据库、事务日志或文件和文件组备份的存储介质。数据库备份设备可以是磁盘、磁带、命名管道和个人备份驱动设备。SQL Server还支持分区化备份。一个分区化备份可以对应多个备份设备,当备份被分区化时,所备份的数据以相同大小的块写入相应的备份设备。但是分区只被一种单独的设备类型所支持。9

常用备份策略

2. SQL Server常用备份策略

▪完全数据库备份。只备份数据库,占用的时间和空间多。当数据库出现故障时,只能将数据库还原到上一次备份操作结束时的状态,其后的改变都将丢失。▪事务日志备份。包括对数据库的备份和对事务日志的备份。在故障发生的时候可将数据库还原到故障发生前一刻的状况,有效地实现了数据库还原。适用于数据非常重要、数据库经常需要更新的情况。事务日志备份所占用的资源要少于数据库备份所需要的资源,因此可以频繁地对事务日志进行备份,从而减少可能丢失的数据量。10

常用备份策略

▪数据库差异备份。数据库差异备份只备份自上次备份以来,数据库所作的新的改变。差异备份的优点是速度快。注意:单独一个差异备份无法进行数据库的恢复,它必须以上一次的完全数据库备份为基础。而且应该对两次备份之间的事务日志进行备份,把数据的损失风险降到最低。▪数据库文件和文件组备份。只备份指定文件和文件组,而不是整个数据库。11

备份数据库中各种对象

13.2.2 备份数据库中各种对象

1. 创建数据库备份设备

在企业管理器中创建磁盘备份设备的操作步骤如下:(1) 展开相应的服务器组以及服务器。(2) 展开“管理”文件夹,右击“备份”,选择“新建备份设备”命令。12

备份数据库中各种对象(3) 在出现的“备份设备属性”对话框的“名称”文本框中,输入所创建的磁盘备份设备名(如“Backup1”,该名称是备份设备的逻辑名称)。选中“文件名”(表示用磁盘做备份),再单击右边的“…”按钮。13备份数据库中各种对象

(4) 在打开的“备份设备位置”对话框中,选择磁盘备份设备使用的本地计算机和文件,或者在“文件名”文本框中输入备份文件名,如“Backup1”(SQL Server在BACKUP文件夹中创建一个Backup1.bak的备份文件)。单击“确定”按钮完成设置。14

备份数据库中各种对象

(5) 当返回到企业管理器时,在“备份”文件夹中出现刚创建的备份设备。(6) 如果要删除一个备份设备,可以右击指定设备,在弹出的快捷菜单中选择“删除”命令即可。15

备份数据库中各种对象

2. 数据库备份

(1)使用企业管理器备份数据库操作步骤如下:1)展开服务器组,然后展开服务器。2) 展开“数据库”文件夹,右击数据库,指向“所有任务”子菜单,然后单击“备份数据库”命令。(也可以展开“管理”文件夹,右击“备份”,在弹出的快捷菜单中选择“备份数据库”命令。) 16

备份数据库中各种对象

3) 在打开的“SQL Server备份”对话框的“常规”选项卡中,选择备份数据库的名称;在“名称”框内,输入备份集名称,在“描述”框中输入对备份集的描述;在“备份”选项下单击“数据库-完全”;在“目的”选项下,单击“磁带”或“磁盘”,然后指定备份目的地。如果没出现备份目的地,则单击“添加”按钮以添加现有的目的地或创建新目的地。在这里单击“添加”按钮。17

备份数据库中各种对象

4)在打开的“选择备份目的”对话框中,选中“备份设备”,在对应的下拉列表中选择“Backup1”。单击“确定”按钮。5)返回“SQL Server备份”对话框。在“重写”选项下,可选择:▪▪

“追加到媒体”:将备份追加到备份设备上任何现有的备份。“重写现有媒体”:将重写备份设备中任何现有的备份。如果选择“调度”复选框,将不立即执行备份操作,而是按计划执行数据库的备份,单击旁边的浏览按钮可以编辑调度信息。18

备份数据库中各种对象

6) 单击“选项”选项卡,这里可以进行附加的设置。其中包括:“完成后验证备份”:完成后验证备份的媒体的完整性。“备份后弹出磁带”:在备份操作完成后弹出磁带。“检查媒体集名称和备份集到期时间”:检查备份媒体以防意外重写。在“媒体集名称”框中,输入将用于备份操作的媒体的名称。如果仅指定备份集到期时间,则将其保留为空。7)如果是第一次使用备份媒体,或者要更改现有的媒体标签,则在“媒体集标签”框下选择“初始化并标识媒体”复选框,然后输入媒体集名称和媒体集描述。只有在重写媒体时才能对其进行初始化和标识设置。完成所有的配置后,单击“确定”按钮完成操作。19

备份数据库中各种对象

(2)使用数据库备份向导备份数据库具体步骤如下:1)展开服务器组,然后展开服务器。2)在“工具”菜单上单击“向导”命令。3)在“选择向导”对话框中,展开“管理”。4)选择“备份向导”。5) 完成向导中的各步骤即可。20

备份数据库中各种对象

(3)使用Transact-SQL命令备份数据库

格式:BACKUP DATABASE{database_name| @database_name_var} TO backup_device[, …n ][WITH[[,]FORMAT][[,]{INIT|NOINIT}][[,]RESTART]...]其中:{database_name|@database_name_var}:指定进行备份的数据库。21

备份数据库中各种对象

backup_device:指定备份操作时要使用的逻辑或物理备份设备。可以是下列一种或多种形式:{逻辑备份设备名称}|{@逻辑备份设备名称变量}:由sp_addumpdevice创建的备份设备的逻辑名称,数据将备份到该设备中,其名称必须遵守标识符规则。{DISK|TAPE}=物理备份设备名称:允许在指定的磁盘或磁带设备上创建备份。在执行BACKUP语句之前不必存在指定的物理设备。如果存在物理设备且BACKUP语句中没有指定INIT选项,则备份将追加到该设备。例如:DISK=‘C:\\MyBak.dat’或TAPE=‘\\\\.\\TAPE0’

22

备份数据库中各种对象

BLOCKSIZE={blocksize|@blocksize_variable}:用字节数来指定物理块的大小。在NT系统上,默认设置是设备的默认块大小。一般当SQL Server选择适合于设备的块大小时不需要此参数。在2000的计算机上,默认值为64KB。DESCRIPTION={‘text’|@text_variable}: 指定描述备份集的自由格式文本,最长255字符。DIFFERENTIAL:指定数据库备份或文件备份应该与上一次完整备份后改变的数据库或文件部分保持一致。差异备份一般会比完整备份占用更少的空间。对于上一次完整备份时备份的全部单个日志,使用此选项可以不必再进行备份。EXPIREDATE={date|@date_var}: 指定备份集到期和允许被重写的日期,必须符合datetime格式。RETAINDAYS={days|@days_var}: 指定必须经过多少天才可以重写该备份媒体集。

23

备份数据库中各种对象

PASSWORD={password|@password_variable}:为备份集设置密码。FORMAT: 指定应将媒体头写入用于此备份操作的所有卷。任何现有的媒体头都被重写。FORMAT使整个媒体内容无效,并且忽略任何现有的内容。UNFORMAT:指定媒体头不应写入所有用于该备份操作的卷中,并且不要重写该备份设备除非指定了INIT。INIT:指定应重写所有备份集,但是保留媒体头。如果指定了INIT,将重写那个设备上的所有现有的备份集数据。NOINIT:表示备份集将追加到指定的磁盘或磁带设备上,以保留现有的备份集。NOINIT是默认设置。MEDIADESCRIPTION={‘text’|@text_variable}: 指明媒体集的自由格式文本描述,最多为255字符。

24

备份数据库中各种对象

MEDIAPASSWORD={meidapassword|@mediapassword_var}:为媒体集设置密码。NAME={backup_set_name|@backup_set_var}: 指定备份集的名称。名称最长可达128个字符。如果没有指定则为空。NOSKIP:指示BACKUP语句在可以重写媒体上的所有备份集之前先检查它们的过期时间。SKIP:禁用备份集过期和名称检查,这些检查一般由BACKUP语句执行以防重写备份集。NOREWIND:指定SQL Server在备份操作完成后使磁带保持打开。NOREWIND意即NOUNLOAD。SQL Server将保留磁带驱动器的所有权,直到BACKUP或RESTORE命令使用REWIND为止。REWIND: 指定SQL Server将释放磁带和倒带。REWIND是默认值。

25

备份数据库中各种对象

NOUNLOAD:指定不在备份后从磁带驱动器中自动卸载磁带。设置始终为NOUNLOAD,直到指定UNLOAD为止。该选项只用于磁带设备。UNLOAD: 指定在备份完成之后自动倒带并卸载磁带。启动新用户会话时期默认设置为UNLOAD。该设置一直保持到用户指定了NOUNLOAD时为止。只用于磁带设备。RESTART:指定SQL Server重新启动一个被中断的备份操作。因为RESTART选项在备份操作被中断处重新启动该操作,所以它节省了时间。若要重新启动一个特定的备份操作,需重复整个BACKUP语句并且加入RESTART选项。STATS[=percentage]: 每当另一个“percentage”结束时显示一条消息,用来测量进度。如果省略percentage,将会以10%作为间隔。

26

备份数据库中各种对象

例:以下命令将test数据库备份到Backup1备份设备上:BACKUP DATABASE test TO Backup1执行结果如下:已处理144页,这些页属于数据库‘test’的文件‘test’(位于文件2上)。已处理1页,这些页属于数据库‘test’的文件‘test_log’(位于文件2上)。BACKUP DATABASE操作成功地处理了145页,花费了0.289秒(4.088MB/秒)。27

备份数据库中各种对象

3. 事务日志备份

(1)使用企业管理器备份事务日志操作步骤如下:1)展开服务器组,然后展开服务器。2) 展开“数据库”文件夹,右击数据库,指向“所有任务”子菜单,然后单击“备份数据库”命令。(也可以展开“管理”文件夹,右击“备份”,在弹出的快捷菜单中选择“备份数据库”命令。) 28

备份数据库中各种对象

3)在打开的“SQL Server备份”对话框的“常规”选项中,选择备份数据库的名称;在“名称”框内,输入备份集名称,在“描述”框中输入对备份集的描述;在“备份”选项框下,选择“事务日志”选项。其余操作与备份数据库相同。如果“事务日志”不可用,需要在数据库属性中将其恢复模型设置为“完全”或“大容量日志记录还原”。

29

备份数据库中各种对象

(2)使用向导备份事务日志具体步骤如下:1)展开服务器组,然后展开服务器。2)在“工具”菜单上单击“向导”命令。3)在“选择向导”对话框中,展开“管理”。4)选择“备份向导”。5) 完成向导中的各步骤即可。说明:与备份数据库的差别是在选择备份类型时选择“事务日志”而不是“数据库备份”选项。

30

备份数据库中各种对象

(3)使用Transact-SQL命令备份事务日志格式:BACKUP LOG{database_name| @database_name_var} TO backup_device[, …n ]...例:将school数据库的事务日志备份到Backup1备份设备上。BACKUP LOG school TO backup131

备份数据库中各种对象

与BACKUP DATABASE不同的参数:NO_TRUNCATE:允许在数据库损坏时备份日志。NORECOVERY: 备份日志尾部并使数据库处于正在还原的状态。当将故障转移到辅助数据库或在RESTORE操作前保存日志尾部时,NORECORVERY很有用。STANDBY=undo_file_name: 备份日志尾部并使数据库处于只读或备用模式。撤销文件名指定了容纳回滚更改的存储,如果随后应用RESTORE LOG操作,则必须撤销这些回滚更改。如果指定的撤销文件不存在,SQL Server将创建该文件。如果已存在,则会被重写。NO_LOG|TRUNCATE_ONLY: 无需备份复制日志即删除不活动的日志部分,并且截断日志。该选项会释放空间。因为并不保存日志备份,所以没有必要指定备份设备。NO_LOG和TRUNCATE_0NLY是同义的。使用NO_LOG或TRUNCATE_ONLY备份日志后,记录在日志中的更改不可还原,为了还原,需立即执行BACKUP DATABASE。32

备份数据库中各种对象

例13.1以下语句创建了一个数据库和日志的完整备份。将数据库备份到backup2的逻辑备份设备上,将日志备份到backuplog2的逻辑备份设备上。--创建完全school数据库备份的备份设备backup2USE schoolEXEC sp_addumpdevice‘disk’,’backup2’,’c:\\backup2’--创建日志备份设备backuplog2USE schoolEXEC sp_addumpdevice‘disk’,’backuplog2’,’c:\\backuplog2’--完全备份数据库school

BACKUP DATABASE school TO backup2--备份school的日志

BACKUP LOG school TO backuplog233

备份数据库中各种对象

4. 数据库差异备份

差异备份只记录从上次备份之后发生更改的数据。差异备份比完全备份数据量小且速度快,因此可以经常备份,减少数据丢失的危险。使用差异备份可以将数据库恢复到完成备份的那一点,如果要精确地恢复到故障点,必须使用事务日志备份。使用差异备份的情况:自上次数据库备份后只有少量数据发生了更改使用简单恢复模型,希望进行频繁的备份使用完全恢复模型或大容量日志记录恢复模型,希望需要最少的时间在还原数据库时前滚事务日志备份34

备份数据库中各种对象

①②③

执行差异备份的过程:创建定期的数据库备份;在每个数据库备份之间定期创建差异数据库备份;如果使用完全恢复模型或者大容量日志记录恢复模型,则创建事务日志备份的频率比差异数据库备份大,如每隔30分钟。35

差异备份

同样可以使用企业管理器和向导进行数据库差异备份,只是在“备份”选项框下,选择“数据库-差异”选项,其他操作相同。如果使用Transact-SQL命令实现差异数据库备份,需使用DIFFERENTIAL子句。例:

--首先创建一个完全数据库备份

BACKUPDATABASEschoolTOBackup1WITHINITGO--创建一个差异数据库备份,添加该备份到包含数据库备份的备份设备中BACKUPDATABASEschoolTOBackup1WITHDIFFERENTIALGO36

13.3 数据库还原

数据库还原--是指将数据库备份重新加载到系统中的过程。13.3.1 数据库恢复模型

简单恢复模型。可以将数据库还原到上次备份的即时点。但无法将数据库还原到故障点或特定的即时点。(1)简单还原的备份策略数据库备份差异备份(可选)(2)在媒体发生故障时进行还原的过程还原最新的完整数据库备份如果有差异备份,则还原最新的那个备份。上次的数据库备份或差异备份后的更改将丢失。

37

13.3 数据库还原

完全恢复模型。使用数据备份和事务日志备份提供对媒体故障的完全防范。可以将数据库还原到故障点或特定即时点。为了达到这一目标,包括大容量操作(SELECT INTO等)在内的所有操作都将完整地记入日志。

(1)完全还原的备份策略数据库备份差异备份(可选)事务日志备份完全还原和大容量日志记录还原很相似,而且很多使用完全恢复模型的用户有时将使用大容量日志记录模型38

13.3 数据库还原

(2)在媒体发生故障时进行还原的过程如果数据库的当前事务日志可用并且没有损坏,则可以将数据库还原到故障点发生时的状态,过程如下:备份当前活动事务日志还原最新的数据库备份如果有差异备份,则还原最新的那个备份按照创建时的相同顺序,还原自数据库备份或差异备份之后创建的每个事务日志备份应用最新的日志备份并还原数据库39

13.3 数据库还原

大容量日志记录恢复模型。提供对大容量操作的恢复支持,并对某些大规模或大容量赋值操作提供最佳性能和最少的日志使用空间。在这种模型中,大容量复制操作的数据丢失程度要比完全恢复模型严重。虽然在完全恢复模型下记录大容量复制操作的完整日志,但在大容量日志记录恢复模型中,只记录这些操作的最小日志,而且无法逐个控制这些操作。在大容量日志记录恢复模型中,数据文件损坏可能导致必须手工重做工作。另外,当日志备份包含大容量更改时,大容量日志记录恢复模型只允许数据库还原到事务日志备份的结尾处。不支持时间点还原。在SQL Server 2000中,可以很容易地在完全恢复模型和大容量日志记录恢复模型之间进行切换。在大容量日志记录恢复模型中,不需要在完成大容量复制操作后执行完整数据库备份。在这个模型中,事务日志备份捕获日志和上次备份后执行的任何大容量操作的结果。

40

13.3 数据库还原

(1)大容量日志记录还原的备份策略数据库备份差异备份(可选)日志备份。备份包含大容量日志记录操作的日志时,需要访问数据库内的所有数据文件。如果数据文件不可访问,则无法备份最后的事务日志,而且该日志中所有已提交的操作都将丢失(2)在媒体发生故障时进行还原的过程备份当前活动事务日志还原最新的完整数据库备份如果有差异备份,则还原到最新的那个备份按顺序应用自最新的差异备份或完整数据库备份后创建的所有事务日志备份手工重做最新日志备份后的所有修改41

13.3 数据库还原

13.3.2 还原数据库备份

还原前的准备工作:

由于数据库的还原操作是静态的,所以在还原数据库时,必须限制用户对该数据库进行其他操作,因而在还原数据库之前,首先要设置数据库访问属性。在SQLServer企业管理器中,右击要还原的数据库,从弹出的快捷菜单中选择“属性”选项,弹出数据库“属性”对话框。在“选项”选项卡中,选择“限制访问”复选框,再选择“单用户”单选钮。这样就保证还原时,不会受到其他操作者的影响了。

42

还原数据库备份

1. 使用企业管理器还原数据库备份操作步骤如下:(1)展开服务器组,然后展开服务器。(2) 展开“数据库”文件夹,右击数据库,指向“所有任务”子菜单,然后单击“还原数据库”命令。打开“还原数据库”对话框。43

还原数据库备份

(3)在“还原为数据库”旁的下拉列表中选择要还原的数据库(如果想要还原产生一个新的数据库则在此处直接输入数据库名称);在“还原”单选按钮组中单击“数据库”;在“要还原的第一个备份”列表中,选择要还原的备份集,在默认情况下使用最近的一次备份;在“还原”列表中,单击要还原的数据库备份。44

还原数据库备份

(4)在“选项”页中有一些可选项:在“还原为”中输入组成数据库备份的各数据库文件的新名称或新位置。为数据库指定新名称将自动为从数据库备份中还原的数据库文件指定新名称。如果没有其他要应用的事务日志或差异数据备份,单击“使数据库可以继续运行,但无法还原其他事务日志”选项。如果要应用另一个事务日志或差异数据库备份,则单击“使数据库不再运行,但能还原其他事务日志”选项。(5)单击“确定”按钮,SQL Server开始还原操作。45

还原数据库备份

2.使用Transact-SQL命令还原数据库备份

格式:RESTOREDATABASE {database_name| @database_name_var} [ FROMbackup_device[ ,…n ]] ...例:从backup2备份设备上还原完全school数据库备份。RESTOREDATABASEschoolFROMbackup2WITHNORECOVERY其中:FROM:指定从中还原备份的备份设备。如果没有指定FROM子句,则不会发生备份还原,而是还原数据库。可用省略FROM子句的办法尝试还原通过NORECOVERY选项还原的数据库,或切换到一台备用服务器上。如果省略FROM子句,则必须指定NORECOVERY、RECOVERY或STANDBY。46

还原数据库备份

NORECOVERY:表示系统既不取消事务日志中未完成的事务,也不提交完成的事务,它用于还原多个数据库备份。若还原某一数据库备份后又将还原多个事务日志,或在还原过程中执行多个RESTORE命令,则要求除最后一条RESTORE命令外,其他的必须使用该选项。RESTRICTED_USER:限制只有db_owner、dbcreator或sysadmin角色的成员才能访问新近还原的数据库。在SQL Server 2000中,RESTRICTED_USER替换了DBO_ONLY。FILE={file_number|@file_number}:标识要还原的备份集。值为1就表示备份媒体上的第一个备份集。PASSWORD={password|@password_var}:提供备份集的密码。MEDIANAME={media_name|@media_name_var}:指定媒体名称。如果提供媒体名称,该名称必须与备份卷上的媒体名称相匹配,否则还原操作将终止。如果没有给出媒体名称则跳过这一检查。

47

还原数据库备份

MOVE ‘logcial_file_name’TO

‘operating_system_file_name’:默认情况下前者将被还原到其原始位置。如果使用RESTORE语句将数据库复制到相同或不相同的服务器上,可以通过MOVE选项为文件改变名称或位置以避免冲突。KEEP_REPLICATION:指示还原操作在将发布的数据库还原到创建它的服务器以外的服务器上时保留复制设置。当设置复制与日志传送一同使用时,需使用该选项。这样,当在备份服务器上还原数据库或日志备份并且还原数据库时,可以防止删除复制设置。该选项不能与NORECOVERY共存。NORECOVERY:指示还原操作不回滚任何未提交的事务。如果需要应用另一个事务日志,则必须指定NORECOVERY或STANDBY选项。如果NORECOVERY、RECOVERY和STANDBY均未指定,默认为RECOVERY。

48

还原数据库备份

RECOVERY:指示还原操作回滚任何未提交的事务。在还原进程后即可随时使用数据库。STANDBY=undo_file_name:指定撤销文件名以便可以取消还原效果。撤销文件的大小取决于因未提交的事务所导致的撤销操作量。STANDBY:允许将数据库设定为在事务日志还原期间只能读取,并且可用于备用服务器情形,或用于需要在日志还原操作之前检查数据库的特殊还原情况。NOREWIND、REWIND、NOUNLOAD、UNLOAD、RESTART、STATS:和BACKUP相同。REPLACE:指定即使存在另一个具有相同名称的数据库,SQL Server也应该创建指定的数据库和数据文件。会删除现有数据库。如果没有指定REPLACE,在下列情况下不会进行数据库的还原:

➢在RESTORE语句中命名的数据库已经存在,并且与备份集中的数据库名称不同➢对于已经存在的文件拒绝重写49

还原事务日志备份

13.3.3 还原事务日志备份

格式:RESTORE LOG{ database_name| @database_name_var} [ FROM backup_device[ ,…n ]]例:从backuplog2日志备份设备上还原school的日志备份。RESTORELOGschoolFROMbackuplog250

还原事务日志备份

与RESTORE DATABASE不同的参数:STOPAT={datetime|@date_time_var}:指定将数据库还原到其在指定的日期和时间时的状态。STOPATMARK=‘mark_name’[AFTER datetime]:指定还原到指定的标记,包括包含该标记的事务。如果省略AFTER,还原操作将在含有指定名称的第一个标记处停止。如果指定AFTER,还原操作将在含有datetime时或datetime时之后的指定名称的第一个标记处停止。STOPBEFOREMARK=‘mark_name’[AFTER datetime]:指定还原到指定的标记,但不包括包含该标记的事务。如果省略AFTER,还原操作将在含有指定名称的第一个标记处停止。如果指定AFTER,还原操作将在含有datetime时或datetime时之后的指定名称的第一个标记处停止。51

练习题

1.什么是备份?备份分为哪几种类型?2.何为差异数据库备份?3.进行数据库还原应该注意哪两点?4.使用企业管理器和Transact-SQL语句两种方法对factory数据库执行完全备份(备份到E:\\DBF\\backup1文件中)和还原操作。52

因篇幅问题不能全部显示,请点此查看更多更全内容