版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQLServer数据库应用技术第11章数据库备份与还原第11章数据库备份与还原*
备份数据库是DBA最重要的任务之一。DBA可以使用备份文件恢复还原数据库,从而最大程度地减少灾难损失。良好的备份和还原策略是保证数据库安全运行的保证,是每个DBA都必须认真对待的任务。主要内容:备份和还原的基本概念、SQLServer2005数据库的备份和还原技术与方法、备份和还原全文目录、表数据的导入与导出等。目录11.1备份与还原概述11.2数据库备份11.3数据库还原11.4备份与还原全文目录11.5表与视图的导入与导出练习题11上机实习1011.1备份与还原概述返回本节首页11.1.1备份和还原的策略11.1.2恢复模式
11.1备份与还原概述返回本节首页“备份”是数据的副本,用于在系统发生故障后还原和恢复数据。备份使您能够在发生故障后还原数据,包括:媒体故障、用户错误(例如,误删除了某个表或表中部分数据)、硬件故障(例如,磁盘驱动器损坏或服务器报废)、自然灾难等。数据库备份对于例行的工作也很有用。例如,将数据库从一台服务器复制到另一台服务器、设置数据库镜像、政府机构文件归档和灾难恢复。通过备份一台计算机上的数据库,再将该数据库还原到另一台计算机上,可以快速容易地生成数据库的副本。11.1备份与还原概述返回本节首页图11-1数据库从完整备份中还原数据此示例说明备份和还原的最简单形式:只将数据库恢复到其最近一次的备份。备份点和故障点之间的所有更新将全部丢失。但是通过添加日志备份,通常可将数据库还原到故障点,而不会丢失数据(如果使用的SQLServer版本支持时点恢复)。
11.1备份与还原概述返回本节首页SQLServer有数据库完整备份、差异备份、事务日志文件备份、文件及文件组备份等几种形式,备份创建在备份设备上,如磁盘或磁带媒体。SQLServer使用物理设备名称或逻辑设备名称标识备份设备。物理备份设备是操作系统用来标识备份设备的名称,如C:\Backups\Accounting\Full.bak;逻辑备份设备是用来标识物理备份设备的别名或公用名称。逻辑设备名称永久地存储在SQLServer内的系统表中。使用逻辑备份设备的优点是引用它比引用物理设备名称简单。
执行备份操作对运行中的事务影响很小,因此可以在正常操作过程中执行备份操作。返回本节首页设计良好的备份和还原策略可尽量提高数据的可用性及尽量减少数据丢失,并考虑到特定的业务要求。备份和还原策略包含备份部分和还原部分。备份策略定义备份的类型和频率、它们所需硬件的特性和速度、测试备份的方法以及存储备份媒体的位置和方法(包含安全注意事项)。还原策略为定义负责执行还原的人员以及满足数据库可用性和尽量减少数据丢失目标的方法。记录备份和还原过程并在运行手册中保留文档的副本。11.1.1备份和还原的策略返回本节首页设计有效的备份和还原策略需要仔细计划、实现和测试。需要考虑各种因素,包含:1)本组织对数据库的生产目标,尤其是对可用性和防止数据丢失的要求;2)每个数据库的特性,其大小、其使用模式、其内容特性及其数据要求等;3)对资源的约束,例如硬件、人员、存储备份媒体的空间以及存储媒体的物理安全性等。11.1.1备份和还原的策略返回本节首页备份和还原操作是在“恢复模式”下进行的。恢复模式是一个数据库属性,它用于控制数据库备份和还原操作基本行为。例如,恢复模式控制了将事务记录在日志中的方式、事务日志是否需要备份以及可用的还原操作。新的数据库可继承model数据库的恢复模式。11.1.2恢复模式返回本节首页
1、恢复模式的优点1)简化了恢复计划;2)简化了备份和恢复过程;3)明确了系统操作要求之间的权衡;4)明确了可用性和恢复要求之间的权衡。
11.1.2恢复模式返回本节首页2、恢复模式以下是可以选择的三种恢复模式:简单模式、完整模式大容量日志模式。11.1.2恢复模式返回本节首页(1)简单恢复模式:此模式简略地记录大多数事务,所记录的信息只是为了确保在系统崩溃或还原数据备份之后数据库的一致性。由于旧的事务已提交,已不再需要其日志,因而日志将被截断。截断日志将删除备份和还原事务日志。没有日志备份,数据库只可恢复到最近的数据备份时间。该模式不支持还原单个数据页。简单恢复模式并不适合生产系统,因为对生产系统而言,丢失最新的更改是无法接受的,建议使用完整恢复模式。11.1.2恢复模式返回本节首页(2)完整恢复模式此模式完整地记录了所有的事务,并保留所有的事务日志记录,直到将它们备份。在SQLServerEnterpriseEdition中,完整恢复模式能使数据库恢复到故障时间点(假定在故障发生之后备份了日志尾部)。11.1.2恢复模式返回本节首页(3)大容量日志恢复模式此模式简略地记录大多数大容量操作(例如,索引创建和大容量加载),完整地记录其它事务。大容量日志恢复提高大容量操作的性能,常用作完整恢复模式的补充。大容量日志恢复模式支持所有的恢复形式,但是有一些限制。11.1.2恢复模式返回本节首页
3、恢复模式的选择每种恢复模式(简单恢复模式、完整恢复模式和大容量日志恢复模式)对可用性、性能、磁盘和磁带空间以及防止数据丢失方面都有特别要求。根据所执行的操作,可能存在多个适合的模式。选择恢复模式时须在下列业务要求之间进行权衡:1)大规模操作(例如创建索引或大容量加载)的性能;2)数据丢失情况(例如已提交的事务丢失);3)事务日志的空间占用情况;4)备份和恢复的简化。11.1.2恢复模式返回本节首页表11-1三种恢复模式的优点和影响模式优点数据丢失情况能否恢复到时间点?简单允许执行高性能大容量复制操作。回收日志空间以使空间要求较小。必须重做自最新数据库或差异备份后所做的更改。可以恢复到任何备份的结尾。随后必须重做更改。完整数据文件丢失或损坏不会导致丢失工作。可以恢复到任意时间点(例如应用程序或用户错误之前)。正常情况下没有。如果日志损坏,则必须重做自最新日志备份后所做的更改。可以恢复到任何时间点。大容量日志允许执行高性能大容量复制操作。大容量操作使用的最小日志空间。如果日志损坏或自最新日志备份后执行了大容量操作,则必须重做自上次备份后所做的更改。否则不丢失任何工作。可以恢复到任何备份的结尾。随后必须重做更改。11.1.2恢复模式返回本节首页
4、指定数据库的恢复模式(1)在ManagementStudio中查看或更改数据库的恢复模式,11.1.2恢复模式返回本节首页
4、指定数据库的恢复模式(2)利用ALTERDATABASE设置数据库的恢复模式例11-1本例设置AdventureWorks示例数据库的恢复模式。
USEmaster;ALTERDATABASEAdventureWorksSETRECOVERYFULL--完整模式11.1.2恢复模式11.2数据库备份返回本节首页11.2.1使用ManagementStudio创建完整备份11.2.2使用ManagementStudio创建完整差异备份11.2.3使用ManagementStudio创建事务日志备份11.2.4使用ManagementStudio创建文件和文件组备份11.2.5BACKUP命令
11.2数据库备份返回本节首页数据库备份易于使用并且适用于所有数据库,与恢复模式无关。数据库备份包括完整备份和完整差异备份。完整备份包含数据库中的所有数据,并且可以用作完整差异备份所基于的“基准备份”。完整差异备份仅记录自前一完整备份后发生更改的数据扩展盘区数。与完整备份相比,完整差异备份较小且速度较快,便于进行较频繁的备份,同时降低丢失数据的风险。11.2数据库备份返回本节首页创建正确的备份对成功执行备份并还原策略非常重要。在备份过程中,SQLServer将数据从数据库文件直接复制到备份设备中。您的数据不会改变,并且备份过程中运行的事务也决不会延迟。可以在完成生产工作负荷的同时执行SQLServer备份,这只会对工作负荷造成很小的影响。备份吞吐量由基础I/O设备的速度决定。若要实现最高传输速率,备份应按顺序读取。如果I/O系统能够支持生产工作负荷和备份的I/O组合,备份将执行得非常快,而系统的效率却非常低。返回本节首页使用ManagementStudio创建完整备份过程如下(略):创建完整差异备份需要具有上一个完整备份。如果选定的数据库从未进行备份,则必须先执行一次完整备份才能创建差异备份。创建完整差异备份的操作过程与创建完整备份的操作过程相同11.2.1使用ManagementStudio
创建完整备份11.2.1使用ManagementStudio
创建完整备份返回本节首页完整恢复模式和大容量日志恢复模式:都应备份事务日志。创建事务日志备份的操作过程与创建完整备份的操作过程也基本相同,主要的不同是:在“备份类型”列表框中,选择“事务日志”而非“完整”。另外,在“事务日志”区域中还需选定:1)对于例行的日志备份,请保留默认选项“通过删除不活动的条目截断事务日志”;2)若要备份日志尾部(即活动的日志),请选中“备份日志尾部,并使数据库处于还原状态”。选择此选项等效于在T-SQLBACKUPLOG语句中指定NORECOVERY选项。11.2.3使用ManagementStudio
创建事务日志备份返回本节首页文件和文件组完整备份仅适用于包含多个文件组的数据库。在简单恢复模式下,仅适用于包含只读文件组的数据库。完整文件备份备份一个或多个完整的文件,相当于完整备份。优点是:文件或文件组备份能够更快地从隔离的媒体故障中恢复。可以迅速还原损坏的文件。可以同时创建文件和事务日志备份。文件备份增加了计划和媒体处理的灵活性,增加了文件或文件组备份的灵活性,对于包含具有不同更新特征的数据的大型数据库也很有用。11.2.4使用ManagementStudio创建文件和文件组备份返回本节首页文件备份也有缺点主要是管理较复杂。如果某个损坏的文件未备份,那么媒体故障可能会导致无法恢复整个数据库。必须维护完整的文件备份,包括完整恢复模式的文件备份和日志备份。维护和跟踪这些完整备份是一种耗时的任务,所需空间可能会超过完整数据库备份的所需空间。若要以增加管理复杂性为代价来减少恢复时间,请考虑使用文件差异备份。创建文件和文件组完整备份的操作过程与创建完整备份的操作过程也基本相同,主要的不同是:1)在“备份类型”列表框中,选择完全或差异。2)对于“备份组件”选项,请单击文件和文件组。11.2.4使用ManagementStudio创建文件和文件组备份返回本节首页BACKUPDATABASE{database_name|@database_name_var}TO<backup_device>[,...n][[MIRRORTO<backup_device>[,...n]][...next-mirror]][WITH……(省略)][;]--备份整个数据库BACKUPDATABASE{database_name|@database_name_var}<file_or_filegroup>[,...n]TO<backup_device>[,...n]--备份文件或文件组BACKUPLOG{database_name|@database_name_var}{TO<backup_device>[,...n][[MIRRORTO<backup_device>[,...n]][...next-mirror]]--备份日志BACKUPLOG{database_name|@database_name_var}{WITH{NO_LOG|TRUNCATE_ONLY}]}--截去日志11.2.5BACKUP命令返回本节首页执行BACKUPDATABASE语句来创建完整备份,同时需要指定:1)要备份的数据库的名称;2)写入完整备份的备份设备;3)还可以指定:①INIT子句,通过它可以改写备份媒体,并在备份媒体上将该备份作为第一个文件写入。②SKIP和INIT子句,用于重写备份媒体,即使备份媒体中的备份未过期,或其名称与备份媒体中的名称不匹配也重写。③FORMAT子句,第一次使用媒体时对备份媒体进行初始化,并覆盖任何现有的媒体标头,有则不需要INIT字句。11.2.5BACKUP命令返回本节首页例11-2备份到磁盘设备,本例将把整个AdventureWorks数据库备份到磁盘上,并使用FORMAT创建一个新的媒体集'C:\AdventureWorks.Bak':USEAdventureWorks;BACKUPDATABASEAdventureWorksTODISK='C:\MSSQL\BACKUP\AdventureWorks.Bak'WITHFORMAT,NAME='FullBackupofAdventureWorks'GO11.2.5BACKUP命令返回本节首页USEmaster--可选地,也可以为这备份文件创建一个逻辑设备名AdventureWorks_Backup:EXECsp_addumpdevice'disk','AdventureWorks_Backup','C:\MSSQL\BACKUP\AdventureWorks.Bak‘--说明:定义转储设备的语法格式如下:sp_addumpdevice[@devtype=]'device_type',[@logicalname=]'logical_name',[@physicalname=]'physical_name',{[@cntrltype=]controller_type|[@devstatus=]'device_status'}]11.2.5BACKUP命令返回本节首页例11-3备份到磁带设备,本例将把整个MyAdvWorks数据库备份到磁带。USEMyAdvWorks;BACKUPDATABASEMyAdvWorksTOTAPE='\\.\Tape0'WITHFORMAT,NAME='FullBackupofMyAdvWorks‘USEmaster--可选地,也可以为这备份磁带创建一个逻辑设备名AdventureWorks_Backup:EXECsp_addumpdevice'tape','MyAdvWorks_Bak','\\.\tape0‘11.2.5BACKUP命令返回本节首页例11-4备份整个AdventureWorks数据库,本例将创建用于存放AdventureWorks数据库完整备份的逻辑备份设备AdvWorksData。USEmaster--为备份AdventureWorks创建逻辑设备名EXECsp_addumpdevice'disk','AdvWorksData','C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\BACKUP\AdvWorksData.bak‘BACKUPDATABASEAdventureWorksTOAdvWorksData--完整备份AdventureWorks数据库11.2.5BACKUP命令11.3数据库还原返回本节首页11.3.1还原完整备份11.3.2使用ManagementStudio还原事务日志备份11.3.3RESTORE命令11.3数据库还原返回本节首页数据库还原方案是从一个或多个备份中还原数据并在还原最后一个备份后恢复数据库的过程。使用还原方案可以还原下列某个级别的数据:数据库、数据文件和数据页。每个级别的影响如下:
1)数据库级别:还原和恢复整个数据库,并且数据库在还原和恢复操作期间处于离线状态。
2)数据文件级别:还原和恢复一个数据文件或一组文件。在文件还原过程中,包含相应文件的文件组在还原过程中自动变为离线状态。访问离线文件组的任何尝试都会导致错误。
3)数据页级别:可以对任何数据库进行页面还原,而不管文件组数为多少。11.3数据库还原返回本节首页数据库还原方案一般分为:简单恢复模式下的还原方案与完整恢复模式下的还原方案(适用于完整恢复模式和大容量日志恢复模式)两种。返回本节首页1、还原完整备份的一般方法还原完整备份是指用备份完成时数据库中包含的所有文件重新创建数据库。通常,将数据库恢复到故障点分为下列基本步骤:备份活动事务日志(称为日志尾部)。此操作将创建尾日志备份。如果活动事务日志不可用,则该日志部分的所有事务都将丢失;还原最新的完整备份但不恢复数据库(WITHNORECOVERY);如果存在差异备份,则还原最新的差异备份,而不恢复数据库(WITHNORECOVERY);11.3.1还原完整备份返回本节首页4)从还原备份后创建的第一个事务日志备份开始,使用NORECOVERY依次还原日志;5)恢复数据库(RESTOREDATABASE<database_name>WITHRECOVERY)。此步骤也可以与还原上一次日志备份结合使用;6)数据库完整还原通常可以恢复到日志备份中的某一时间点或标记的事务。但是,在大容量日志恢复模式下,如果日志备份包含大容量更改,则不能进行时点恢复。11.3.1还原完整备份返回本节首页还原整个数据库(完整恢复模式)时,应当使用单一还原顺序。还原顺序由一个或多个还原操作组成,这些还原操作通过一个或多个还原阶段来移动数据。数据库将还原并前滚。数据库差异用于减少前滚时间。此还原顺序用于避免丢失工作;上次还原的备份为尾日志备份。11.3.1还原完整备份返回本节首页RESTOREDATABASE<database>FROM<fullbackup>WITHNORECOVERY
RESTOREDATABASE<database>FROM<full_differential_backup>WITHNORECOVERY
RESTORELOG<database>FROM<log_backup>WITHNORECOVERY
RESTORELOG<database>FROM<tail_logbackup>WITHRECOVERY11.3.1还原完整备份返回本节首页例11-10本例说明:如何创建AdventureWorks
数据库的完整备份、纯日志备份和尾日志备份如何按顺序还原这些备份。还原尾日志备份后,在单独的步骤中恢复数据库。在此示例中,AdventureWorks
数据库临时设置为使用完整恢复模式。11.3.1还原完整备份返回本节首页USEmaster;ALTERDATABASEAdventureWorksSETRECOVERYFULL;GO--以下为完整数据库备份创建逻辑备份设备EXECsp_addumpdevice'disk','MyAdvWorks_FullRM','C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\BACKUP\MyAdvWorks_FullRM.bak';GO--以下创建完整备份BACKUPDATABASEAdventureWorksTOMyAdvWorks_FullRMWITHFORMAT;GO--以下创建纯日志备份到备份文件BACKUPLOGAdventureWorksTOMyAdvWorks_FullRM;GO--以下创建尾日志备份BACKUPLOGAdventureWorksTOMyAdvWorks_FullRMWITHNORECOVERY;GO11.3.1还原完整备份返回本节首页--从备份集1中还原完整备份RESTOREDATABASEAdventureWorksFROMMyAdvWorks_FullRMWITHNORECOVERY;--从备份集2中还原纯日志备份RESTORELOGAdventureWorksFROMMyAdvWorks_FullRMWITHFILE=2,NORECOVERY;--从备份集3中还原尾日志备份RESTORELOGAdventureWorksFROMMyAdvWorks_FullRMWITHFILE=3,NORECOVERY;GORESTOREDATABASEAdventureWorksWITHRECOVERY;--恢复整个数据库GO11.3.1还原完整备份返回本节首页2、使用ManagementStudio还原完整备份在完整恢复模式或大容量日志恢复模式下,必须先备份活动事务日志(称为日志尾部),然后才能在ManagementStudio中还原数据库。尾日志备份是使数据库处于还原状态的一种日志备份。通常会在失败之后进行尾日志备份来备份日志尾部,以防丢失工作。11.3.1还原完整备份返回本节首页一般的还原过程需要在“还原数据库”对话框中同时选择日志备份以及数据和差异备份。备份必须按照其创建顺序进行还原。在还原给定的事务日志之前,必须已经还原下列备份,但不用回滚未提交的事务:事务日志备份之前的完整备份和差异备份(如果存在);在完整备份和现在要还原的事务日志之间所做的全部事务日志备份(如果存在)。11.3.2使用ManagementStudio
还原事务日志备份返回本节首页利用RESTORE命令还原使用BACKUP命令所做的备份。使用此命令您可以实现以下操作:1)基于完整备份还原整个数据库(完整还原);2)还原数据库的一部分(部分还原);3)将特定文件、文件组或页面还原到数据库(文件还原或页面还原);4)将事务日志还原到数据库(事务日志还原);5)将数据库恢复到数据库快照捕获的时间点。
11.3.3RESTORE命令返回本节首页表11-2还原方案和RESTORE语句之间的关系还原类别语句操作数据库完整还原RESTOREDATABASE<数据库名称>...WITHNORECOVERY...复制备份中的所有数据,如果备份包含日志,还会前滚数据库。文件还原RESTOREDATABASE<数据库名称><文件或文件组>[n]...WITHNORECOVERY...仅从备份复制指定的文件或文件组,如果备份包含日志,则前滚数据库。页面还原RESTOREDATABASE<数据库名称>PAGE='文件:页[,...p]'...WITHNORECOVERY...仅从备份中复制指定的页,如果某个页的备份包含日志,还会前滚数据库。段落还原RESTOREDATABASE<数据库>[<文件组>[n]]...WITHPARTIAL,NORECOVERY...复制主文件组以及指定的文件组或组,如果备份包含日志,则前滚数据库。注意如果未指定任何文件组,则还原备份集的所有内容。用于恢复数据库的日志还原RESTORELOG<数据库名称>...WITHRECOVERY...还原日志备份并使用该日志前滚数据库。11.3.3RESTORE命令返回本节首页RESTOREDATABASE{database_name|@database_name_var}[FROM<backup_device>[,...n]][WITH[{CHECKSUM|NO_CHECKSUM}][WITH……(省略)][;]RESTOREDATABASE{database_name|@database_name_var}<files_or_filegroups>[FROM<backup_device>[,...n]]--恢复部分数据库RESTOREDATABASE{database_name|@database_name_var}<file_or_filegroup_or_pages>[,...f][FROM<backup_device>[,...n]]--恢复文件、文件组或页RESTORELOG{database_name|@database_name_var}[<file_or_filegroup_or_pages>[,...f]][FROM<backup_device>[,...n]]--恢复事务日志11.3.3RESTORE命令返回本节首页例11-11还原完整数据库,MyAdvWorks数据库仅供举例说明。RESTOREDATABASEMyAdvWorksFROMMyAdvWorks_1例11-12还原完整数据库备份和差异备份,本例还原完整数据库备份后还原差异备份。另外,以下示例还说明如何还原媒体上的另一个备份集。差异备份追加到包含完整数据库备份的备份设备上。RESTOREDATABASEMyAdvWorksFROMMyAdvWorks_1WITHNORECOVERYRESTOREDATABASEMyAdvWorksFROMMyAdvWorks_1WITHFILE=211.3.3RESTORE命令返回本节首页例11-13使用RESTART语法还原数据库,本例使用RESTART选项重新启动因服务器电源故障而中断的RESTORE操作。RESTOREDATABASEMyAdvWorksFROMMyAdvWorks_1--电源故障而中断的RESTORERESTOREDATABASEMyAdvWorksFROMMyAdvWorks_1WITHRESTART--重新启动11.3.3RESTORE命令返回本节首页例11-14还原数据库并移动文件,本例还原完整数据库和事务日志,并将已还原的数据库移动到C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data目录下。RESTOREDATABASEMyAdvWorksFROMMyAdvWorks_1WITHNORECOVERY,MOVE'MyAdvWorks'TO'c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\NewAdvWorks.mdf',MOVE'MyAdvWorksLog1'TO'c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\NewAdvWorks.ldf'RESTORELOGMyAdvWorksFROMMyAdvWorksLog1WITHRECOVERY11.3.3RESTORE命令返回本节首页例11-15使用BACKUP和RESTORE语句创建AdventureWorks数据库的副本。MOVE语句使数据和日志文件还原到指定的位置。RESTOREFILELISTONLY语句用于确定待还原数据库内的文件数及名称。该数据库的新副本称为TestDB。BACKUPDATABASEAdventureWorksTODISK='C:\AdventureWorks.bak'RESTOREFILELISTONLYFROMDISK='C:\AdventureWorks.bak'RESTOREDATABASETestDBFROMDISK='C:\AdventureWorks.bak'WITHMOVE'AdventureWorks_Data'TO'C:\testdb.mdf',MOVE'AdventureWorks_Log'TO'C:\testdb.ldf‘11.3.3RESTORE命令返回本节首页例11-16使用STOPAT语法还原到时间点和使用多个设备进行还原,本例将数据库还原到它在2006年4月25日中午12点时的状态,并显示涉及多个日志和多个备份设备的还原操作。RESTOREDATABASEMyAdvWorksFROMMyAdvWorks_1,MyAdvWorks_2WITHNORECOVERY,STOPAT='Apr25,200612:00AM'RESTORELOGMyAdvWorksFROMMyAdvWorksLog1WITHNORECOVERY,STOPAT='Apr25,200612:00AM'RESTORELOGMyAdvWorksFROMMyAdvWorksLog2WITHRECOVERY,STOPAT='Apr25,200612:00AM'11.3.3RESTORE命令11.4备份与还原全文目录返回本节首页1、使用BACKUP语句备份全文目录每个全文目录均被当作一个文件处理,并将包括在已备份的数据库文件集中。在备份过程中,不会删除或添加全文目录。通常情况下,SQLServer会在BACKUP操作中执行下列任务:暂时挂起,MicrosoftFull-TextEngineforSQLServer(MSFTESQL)服务,并将对全文目录所做的所有挂起的更改刷新到磁盘。此外,SQLServer还会停止对目录的所有写活动,并在备份之初将所有尚未处理的更改排队到通知日志中,以便在备份完成后将这些更改提交给全文目录。磁盘上的目录状态保持不变。此时仍然可以查询该目录。备份所有表、全文目录数据、更改跟踪日志以及元数据。备份自开始备份以来事务日志中出现的所有数据。恢复MSFTESQL服务并填充全文索引。备份完全文目录之后,SQLServer将启动MSFTESQL服务,提交通知日志中排队的更新,然后恢复正常操作。11.4备份与还原全文目录返回本节首页2、差异备份若要备份自上次完整备份以来对数据库数据和全文目录所做的更改,请在BACKUP命令中指定WITHDIFFERENTIAL。例11-21以下语句备份自上次完整备份以来对数据库数据(包括全文目录)所做的更改。BACKUPDATABASEdatabase_nameTObackup_deviceWITHDIFFERENTIALFAT32文件系统不支持对全文目录进行差异备份。11.4备份与还原全文目录返回本节首页3、全文目录的文件备份若要只备份全文目录(而不备份数据库数据),请在BACKUP命令中指定FILE子句。例11-22以下语句只备份全文目录fulltext_cat。BACKUPDATABASEdatabase_nameFILE='sysft_fulltext_cat'TObackup_device例11-23以下语句只备份文件组fulltext_catFG。BACKUPDATABASEdatabase_nameFILEGROUP='fulltext_catFG'TObackup_device11.4备份与还原全文目录返回本节首页4、全文目录的差异文件备份,若要只备份对全文目录所做的更改,请在BACKUP命令中指定FILE子句和WITHDIFFERENTIAL。例11-24以下语句备份自上次完整备份以来对全文目录fulltext_cat所做的更改。BACKUPDATABASEdatabase_nameFILE='sysft_fulltext_cat'TObackup_deviceWITHDIFFERENTIAL例11-25以下语句备份自上次完整备份以来对存储在文件组fulltext_catFG中的所有全文目录所做的更改。BACKUPDATABASEdatabase_nameFILEGROUP='fulltext_catFG'TObackup_deviceWITHDIFFERENTIAL11.4备份与还原全文目录返回本节首页5、若要还原全文目录RESTOREDATABASEdatabase_nameFROMbackup_device发出此命令后,将从备份数据(包括全文目录数据)所在的磁盘位置还原数据。11.4备份与还原全文目录返回本节首页6、还原到替代位置若要为全文目录的根路径指定替代位置,请在RESTORE命令中指定WITHMOVE。例11-26以下语句会将全文目录fulltext_cat还原到F:\FtCat目录中。RESTOREDATABASEAdventureWorksFROMbackup_deviceWITHMOVE'sysft_fulltext_cat'TO'F:\FtCat’11.4备份与还原全文目录返回本节首页7、还原全文目录的差异备份若要还原全文目录和数据库数据的差异备份,请执行两步还原操作:先进行完整还原,再进行差异还原。第二步还原只更新在完整备份与差异备份之间改变过的数据库区。RESTOREDATABASEAdventureWorksFROMbackup_deviceWITHNORECOVERYRESTOREDATABASEAdventureWorksFROMbackup_device2FILE='sysft_fulltext_cat‘在此方案中,数据库在两步还原操作之间将保持离线且MicrosoftSearch将停止运行。只有当第二步还原完成后,它们才会恢复在线。还可以还原文件和文件组的差异备份。11.4备份与还原全文目录返回本节首页8、还原全文目录的文件备份若要还原全文目录的文件备份和文件组备份,请在RESTORE命令中指定FILE或FILEGROUP子句。RESTOREDATABASEAdventureWorksFILE='sysft_fulltext_cat'FROMbackup_device--或--RESTOREDATABASEAdventureWorksFILEGROUP='fulltext_catFG'FROMbackup_device注意:在还原事务日志备份时,全文索引可能会处于不一致状态。若要使全文索引恢复为一致状态,需要执行一次完全爬网。11.5表与视图的导入与导出返回本节首页11.5.1表与视图的导入与导出操作11.5.2SQLServer的复制功能11.5.3SQLServer的其它数据移动方法
返回本节首页启动导入或导出功能:在ManagementStudio的对象资源管理器中,选择某数据库,鼠标右键弹出的快捷菜单中“任务”->选择“导入数据”或“导出数据”菜单即可。导入与导出数据的过程是类似的,不同处为数据源与数据目的的指定不同,数据复制的方向不同,导入往往是指从其它数据源复制到本数据库(作为数据目的),导出往往是指从本数据库(作为数据源)复制到其它数据源。导入与导出是相对的,也就是说导入能完成导出功能,导出也能完成导入功能,关键在于指定什么样的数据源与数据目的。在数据源与数据目的均指定非SQLServer数据库时,导入或导出还能实现非SQLServer数据源间的数据复制,如ACCESS数据库间,ACCESS数据库与Excel数据表间等的数据复制。11.5.1表与视图的导入与导出操作返回本节首页
SQLServer提供了强大的数据复制功能,通过复制数据库向导可以在不同服务器之间轻松移动或复制数据库及其对象(在服务器不停机的情况下)。可以复制关联的元数据,如,master数据库中的登录名和对象,复制的数据库需要这些登录名和对象。不能通过复制数据库向导来复制或移动model数据库、msdb
数据库和master数据库。11.5.2SQLServer的复制功能返回本节首页复制数据库说明几点:1)model、msdb和master:不能通过复制数据库向导复制或移动model数据库、msdb数据库和master数据库;2)全文目录:SQL管理对象方法可移动全文目录。移动后,必须重新启动索引填充。如果使用的是分离和附加方法,则必须手动移动全文目录;3)源服务器上的数据库:当在不同的服务器或磁盘驱动器之间移动数据库时,复制数据库向导将把数据库复制到目标服务器,并验证其是否在线。4)使用复制数据库向导升级至SQLServer2005。11.5.2SQLServer的复制功能返回本节首页1、利用Bcp工具这种工具虽然在SQLServer7的版本中不推荐使用,但许多数据库管理员仍很喜欢用它,尤其是用过SQLServer早期版本的人。Bcp有局限性,首先它的界面不是图形化的,其次它只是在SQLServer的表(视图)与文本文件之间进行复制,但它的优点是性能好,开销小,占用内存少,速度快。11.5.3SQLServer的其它数据移动方法
返回本节首页2、利用备份和恢复先对源数据库进行完整备份,备份到一个设备(device)上,然后把备份文件复制到目的服务器上(恢复的速度快),进行数据库的恢复操作,在恢复的数据库名中填上源数据库的名字(名字必须相同),选择强制型恢复(可以覆盖以前数据库的选项),在选择从设备中进行恢复,浏览时选中备份的文件就行了。这种方法可以完全恢复数据库,包括外键,主键,索引。11.5.3SQLServer的其它数据移动方法
返回本节首页3、直接拷贝数据文件直接COPY数据库数据与日志文件,在目的数据库系统中利用sp_attach_db将数据库附加到服务器在目的服务器查询窗口中用语句进行恢复:EXECsp_attach_db@dbname='test',@filename1='c:\test_data.mdf',@filename2='c:\test_log.ldf'这样就把test数据库附加到SQLServer中,可以照常使用。如果不想用原来的日志文件,可以用如下的命令:EXECsp_attach_single_file_db@dbname='test',--单文件附加数据库@physname='c:\test_data.mdf'11.5.3SQLServer的其它数据移动方法
返回本节首页4、编程序式数据移动、备份与恢复可以在应用程序(PB、VB)中执行自己编写的程序,也可以在QueryAnalyzer中执行,这种方法比较灵活,其实是在某平台上连接到数据库,利用SQL语句实现数据操作,这种方法对数据库的影响小,但是如果用到远程链接服务器,要求网络之间的传输性能好,一般主要使用两种语句:
1>onew_tablenamewhere...2>insert(into)old_tablenameselect...from...where...区别是前者把数据插入一个新表(先建立表,再插入数据),后者是把数据插入已经存在的一个表中。11.5.3SQLServer的其它数据移动方法
返回本节首页5、从某个OLEDB提供程序中选择数据,并将数据从外部数据源复制到SQLServer实例,详细略。
6、使用分布式查询从另一个数据源中选择数据并指定要插入的数据,详细略。
7、使用BULKinsert语句将数据从数据文件导入到SQLServer实例。例11-27从c:\sc.txt导入数据到SC表
bulkinsertjxgl.dbo.scfrom'c:\sc.txt'with(FIELDTERMINAtoR=',',ROWTERMINAtoR='|\n')11.5.3SQLServer的其它数据移动方法
练习题11
返回本节首页一、填空题1、SQLServer数据库备份的设备类型包括:________、________和________。2、SQLServer数据库恢复模式有三种类型,它们分别是______、______和______。3、完整恢复模式下的备份可以分为三类,它们分别是_______、_______和_______。二、选择题1、下列关于数据库备份的叙述错误的是:_____。A、如果数据库很稳定就不需要经常做备份,反之要经常做备份以防数据库损坏B、数据库备份是一项很复杂的任务,应该由专业的管理人员来完成C、数据库备份也受到数据库恢复模式的制约D、数据库备份策略的选择应该综合考虑各方面因素,并不是备份做得越多越全就越好2、关于SQLServer2005的恢复模式叙述正确的是:______。A、简单恢复模式支持所有的文件恢复B、大容量日志模式不支持时间点恢复C、完全恢复模式是最好的安全模式D、一个数据库系统中最好是用一种恢复模式,以避免管理的复杂性三、简答题1、数据库备份和还原的概念和作用是什么?2、什么是备份?备份分为哪几种类型?3、确定备份计划应该考虑哪些因素?4、进行数据库恢复应该注意哪几点?5、数据库故障有哪几类?6、什么是物理备份设备和逻辑备份设备?它们的区别是什么?7、数据库导入和导出的概念和作用是什么?它是否具有备份和还原作用?请说明。上机实习10
返回本节首页实验目的1)了解SQLServer2005数据库备份和还原的基本概念;2)实践数据库的备份和还原技术与方法、备份和还原全文目录、表数据的导入与导出等的基本操作。实验内容1、备份设备管理(1)创建备份设备1)在ManagementStudio中创建备份设备KCGL的步骤如下:①在对象资源管理器中依次展开某数据库服务器->服务器对象->备份设备->某备份设备,在“备份设备”或“某备份设备”上按鼠标右件,从弹出的快捷菜单中选择“新建备份设备”菜单项;②系统会打开“备份设备”新建对话框;③在设备名称文本框中输入新设备名如:“KCGL”,对应在“文件”文本框中会自动出现“KCGL.BAK”的文件名称;④单击“确定”按钮,在“备份设备”文件夹下即能看到新建的“KCGL”设备名。2)使用系统存储过程sp_addumpdevice例11-28通过命令方式创建“KCGL_1”备份设备,命令为:USEmaster;EXECsp_addumpdevice'disk','KCGL_1','c:\KCGL_1.bak'上机实习10
返回本节首页(2)查看备份设备的信息1)在ManagementStudio中查看备份设备的方法类似于创建备份设备,只要在备份设备列表中,双击某要查看的备份设备或从某备份设备快捷菜单中选择“属性”命令即可。在打开的备份设备对话框中,按左上“媒体内容”选项卡,在对话框右边可列出该设备上保存的所有备份信息,包括每个备份的类型、日期、位置、大小等信息;2)在查询窗口中使用如下语句也可以查看备份设备的详细信息:RESTOREHeaderonlyFrom备份设备逻辑名例11-29查看备份设备KCGL_1的信息命令为:RESTOREHeaderonlyFromKCGL_1(3)删除备份设备1)在ManagementStudio中删除备份设备的方法:从数据库引擎->服务器对象->备份设备,定位到待删除备份设备后,通过按快捷菜单中选择“删除”命令,再在删除对象对话框中单击“确定”按钮即可完成。注意要彻底删除备份设备,需手工从磁盘上删除备份设备对应的操作系统备份文件。2)利用T-SQL命令进行删除。sp_dropdevice,从SQLServer除去数据库设备或备份设备,语法:sp_dropdevice[@logicalname=]'device'[,[@delfile=]'delfile']其中,如果指定了defile参数,则在删除备份设备的同时删除它使用的操作系统文件。例如:除去“KCGL_1”备份设备,并同时删除操作系统文件的命令为:sp_dropdevice'KCGL_1','delfile'上机实习10
返回本节首页2、备份数据库本实验主要介绍数据库完整备份,备份的执行主要有以下2种方法:(1)在ManagementStudio中对KCGL数据库进行完整备份(还请参阅11.2.1)。完成备份设备的创建后便可以进行数据库的备份。若没有创建任何备份设备,则打开备份数据库程序时会提醒用户必须先创建备份设备。备份过程如下:①在某备份设备的快捷菜单中选择“备份数据库”命令;②打开“SQLServer备份”对话框,选择所要备份的数据库KCGL;③选择完全数据库备份的方式;④单击“目的”区中的“添加”按钮,进入“选择备份目标”对话框;⑤更改“磁盘上的目标”的方式,选择所创建的备份设备KCGL_1;⑥单击“确定”按钮,回到“备份数据库”对话框;⑦在“备份数据库”对话框点击左上的“选项”选项卡,图略,在此可选择“备份到现有媒体集”或“备份到现新媒体集并清除所有现有备份集”等;⑧备份信息设置完成后,按“确定”按钮正式开始备份。说明:在ManagementStudio中,展开数据库服务器,展开“数据库”文件夹,右击要备份的数据库名,例如KCGL,将鼠标指针指向弹出的快捷菜单中的“任务(T)”选项,单击“备份(B)”,也能打开“备份数据库”对话框。上机实习10
返回本节首页(2)使用T-SQL命令执行备份在T-SQL命令中,使用不同形式的backup命令能实现不同形式的备份:例11-30完成以下备份操作①创建用于存放kcgl数据库完整备份的逻辑备份设备,然后备份整个kcgl数据库。命令:usemaster;execsp_addumpdevice'disk','kcgl_1','c:\ProgramFiles\MicrosoftSQLServer\MSSQL\backup\kcgl_1.dat';backupdatabasekcgltokcgl_1②创建了一个数据库和日志的完整备份。将数据库备份到称为kcgl_1的逻辑备份设备上,然后将日志备份到称为kcglLog1的逻辑备份设备上。usemaster;execsp_addumpdevice'disk','kcgl_1','c:\ProgramFiles\MicrosoftSQLServer\MSSQL\backup\kcgl_1.dat';execsp_addumpdevice'disk','kcglLog1','c:\ProgramFiles\MicrosoftSQLServer\MSSQL\backup\kcglLog1.dat';backupdatabas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租赁加工合同范例
- 直接提车购车合同范例
- 环卫工人劳动合同范例
- 纯水制取设备销售合同模板
- 绿化设备租凭合同范例
- 2024二手汽车买卖合同样本3篇
- 绿植售卖合同范例
- 船舶配件采购合同范例
- 租赁炼油场地合同范例
- 基于AR技术的虚拟试衣软件开发合同(04版)
- 全球及中国疤痕治疗行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告(2024-2030)
- 2024委托物业管理电梯协议书
- 传统医学与区块链技术结合探索
- 2024年刑法知识考试题库及参考答案(满分必刷)
- 生命科学导论(上海交通大学)智慧树知到期末考试答案章节答案2024年
- 2024年辽宁省沈阳市中考物理模拟试题
- 妙手传译手语 知到智慧树网课答案
- 无人机结构与系统教学大纲
- 小猪佩奇第1季第19集新鞋子-中英台词
- 部编版历史《第11课 元朝的统治》课件
- 计算机网络技术智慧树知到期末考试答案2024年
评论
0/150
提交评论