首页计算机计算机软件SQLServer2005数据库技术及应用 05 第5章 SQL SERVER 数据库管理及数据库的备份与恢复.pptx

05 第5章 SQL SERVER 数据库管理及数据库的备份与恢复.pptx

页数:52页文件大小:886.3 KB来源: SQLServer2005数据库技术及应用ppt课件

本章从数据库的操作系统文件与文件组讲起,通过CREATE DATABASE、ALTER DATABASE等语句演示创建、查看、修改、压缩、重命名和删除数据库的全过程,并说明数据库备份的意义与备份计划,以及用T-SQL创建备份设备、执行完整备份、日志备份、文件组备份与相应恢复操作。

第5章数据库管理及备份与恢复章封面,源文件仅提取到书名页眉,章标题据次页目录补全
第5章数据库管理及备份与恢复目录页,列出操作系统文件、文件组、创建与管理数据库等七节
5.1操作系统文件的要点列表,SQL Server中每个数据库由一组操作系统文件组成,数据库中所有数据
查看本课件的文字版(共 52 页,供检索与复制)

第1页:第5章数据库管理与备份

数据库技术及应用

第2页:第5章目录:数据库管理

第5章SQL SERVER数据库管理及数据库的备份与恢复

  • 5.1操作系统文件
  • 5.2数据库文件组
  • 5.3创建数据库
  • 5.4查看数据库信息
  • 5.5管理数据库
  • 5.6数据库备份概念
  • 5.7执行数据库备份与恢复

第3页:5.1操作系统文件

5.1操作系统文件

  • SQL Server中每个数据库由一组操作系统文件组成,数据库中所有数据、对象和数据库操作日志都存储在这些操作系统文件中,根据这些文件作用的不同,可以分为以下三类
    • 主数据库文件
    • 次数据库文件
    • 日志文件
  • 一个数据库可以有一个主数据库文件或一个主数据库文件和多个次数据库文件,而一个数据库文件只能属于一个数据库。

第4页:5.2数据库文件组

5.2数据库文件组

  • 数据库文件组就是多个数据库文件组织在一起,它能够控制各个文件的存放位置(往往每个文件建立在不同的硬盘驱动器上),这样可以分担存储压力,提高数据存储效率,提高系统性能。SQL Server采用比例分配填充的方式使用文件组中每个文件所提供的存储空间,并且提供了三种文件组类型
    • 主文件组
    • 自定义文件组
    • 默认文件组

第5页:5.3创建数据库

5.3创建数据库

  • 创建数据库的过程实际就是确定数据库的名字、大小以及用于存储数据的文件和文件组。数据库不是任何用户都可以创建的,只有sysadmin和dbcreator固定服务器的成员才有创建数据库的权限,当然其他用户也可以被授予这种权限,创建数据库的用户自动成为该数据库的所有者。一个服务器中最多可以创建32767个数据库,数据库的名称必须符合命名规则。
  • 创建数据库常用的方法有两种:一是用SQL Server Management Studio来创建,二是用T-SQL语言来创建。

第6页:5.3.1利用T-SQL语言创建数据库

5.3.1利用T-SQL语言创建数据库

  • 说明:在T-SQL语言的命令格式中,用[ ]括起来的内容表示是可选的;[,…n]表示重复前面的内容;用< >括起来表示在实际编写语句时,用相应的内容替代;用{ }括起来表示是必选的,类似A|B的格式,表示A和B只能选择一个,不能同时都选。

第7页:用T-SQL创建数据库

1.用T-SQL创建数据库

CREATEDATABASEdatabase_name
  • [ON[PRIMARY][<filespec>[,…n]
  • [,<filegroupspec>[,…n]]]
[LOGON{<filespec>[,…n]}]
  • [FOR LOAD|FOR ATTACH]
  • <filespec>::=
([NAME=logical_file_name,] FILENAME=‘os_file_name’
  • [,SIZE=size]
  • [,MAXSIZE={max_size|UNLIMITED}]
  • [,FILEGROWTH=growth_increment])[,…n]
  • <filegroupspec>::=
  • FILEGROUP filegroup_name <filespec> [,…n]

第8页:参数说明

2.参数说明

database_name
新数据库的名称。数据库名称在服务器中必须唯一,最长为128个字符,并且要符合标识符的命名规则。每个服务器管理的数据库最多为32767个。
ON
指定存放数据库的数据文件信息。<filespec>列表用于定义主文件组的数据文件,<filegroup>列表用于定义用户文件组及其中的文件。
PRIMARY
用于指定主文件组中的文件。主文件组的第一个由<filespec>指定的文件是主文件。如果不指定PRIMARY关键字,则在命令中列出的第一个文件将被默认为主文件。
LOG ON:指明事务日志文件的明确定义。如果没有本选项,则系统会自动产生一个文件名前缀与数据库名相同,容量为所有数据库文件大小1/4的事务日志文件。
FOR LOAD
表示计划将备份直接装入新建的数据库,主要是为了和过去的SQL Server版本兼容。
FOR ATTACH
表示在一组已经存在的操作系统文件中建立一个新的数据库。

第9页:参数说明(续)

2.参数说明SQL Server 2005

  • NAME:指定数据库的逻辑名称。
FILENAME:指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和NAME的逻辑名称一一对应。
SIZE
指定数据库的初始容量大小。如果没有指定主文件的大小,则SQL Server默认其与模板数据库中的主文件大小一致,其它数据库文件和事务日志文件则默认为1MB。指定大小的数字size可以使用KB、MB、GB和TB后缀,默认的后缀为MB。Size中不能使用小数,默认值为3MB。主文件的size不能小于模板数据库中的主文件。
MAXSIZE
指定操作系统文件可以增长到的最大尺寸。如果没有指定,则文件可以不断增长直到充满磁盘。
FILEGROWTH
指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。增加量可以确定为以KB、MB作后缀的字节数或以%作后缀的被增加容量文件的百分比来表示。默认后缀为MB。如果没有指定FILEGROWTH,则默认值为10%,每次扩容的最小值为64KB。
如果在T-SQL语句中没有说明附加参数,数据库将默认其设置与model数据库参数相同。另外小数不能用于指定SIZE、MAXSIZE、FILEGROWTH参数,例如可用3536KB代替3.5MB。

第10页:【例5.1】建立一个逻辑文件名

3、使用CREATE DATABASE创建数据库

  • 【例5.1】建立一个逻辑文件名为“SCHOOL”的数据库,保存在D盘下的data文件夹中,实际文件名为“school_data.mdf”,初始容量为3MB,最大容量15MB,增长率为3MB;日志文件名为“school_log.ldf”,初始容量为1MB,最大容量5MB,增长率为10%。

第11页:创建数据库的SQL语句如下

  • 创建数据库的SQL语句如下:
CREATE DATABASE SCHOOL ON ( NAME=school_data, FILENAME='d:\data\school_data.mdf',
  • SIZE=3MB,
  • MAXSIZE=15MB,
  • FILEGROWTH=1MB)
LOG ON ( NAME=school_log, FILENAME='d:\data\school_log.ldf',
  • SIZE=1MB,
  • MAXSIZE=5MB,
FILEGROWTH=10%)SQL Server 20053、使用CREATE DATABASE创建数据库

第12页:【例5.2】创建一个指定了多个数据和日志

3、使用CREATE DATABASE创建数据库

【例5.2】创建一个指定了多个数据和日志文件的数据库。CREATEDATABASEstudentONPRIMARY(NAME=Student1,FILENAME='d:\data\student1.mdf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=student2,FILENAME='d:\data\student2.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),

第13页:【例5.2】创建多文件数据库(续)

3、使用CREATE DATABASE创建数据库(NAME=student3,FILENAME='d:\data\student3.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20)LOGON(NAME=studentlog1,FILENAME='d:\data\studentlog1.ldf',SIZE=10MB,MAXSIZE=20,FILEGROWTH=20%),(NAME=studentlog2,FILENAME='d:\data\studentlog2.ldf',SIZE=10MB,MAXSIZE=20,FILEGROWTH=20%)

第14页:【例5.3】创建一个定义文件组的数据库

3、使用CREATE DATABASE创建数据库【例5.3】创建一个定义文件组的数据库。CREATEDATABASEbookONPRIMARY(NAME=book1,FILENAME='d:\data\Book1.mdf',SIZE=10MB,MAXSIZE=30,FILEGROWTH=2),(NAME=book2,FILENAME='d:\data\book2.ndf',SIZE=10MB,MAXSIZE=30,FILEGROWTH=2),

第15页:创建数据库的T-SQL语句

3、使用CREATE DATABASE创建数据库SQL Server 2005FILEGROUPbgroup1(NAME=bg1,FILENAME='d:\data\bg1.ndf',SIZE=10MB,MAXSIZE=30,FILEGROWTH=2),(NAME=bg2,FILENAME='d:\data\bg2.ndf',SIZE=10MB,MAXSIZE=30,FILEGROWTH=2),

第16页:创建数据库T-SQL语法(续)

3、使用CREATE DATABASE创建数据库SQL Server 2005FILEGROUPbgroup2(NAME=bg3,FILENAME='d:\data\bg3.ndf',SIZE=10MB,MAXSIZE=30,FILEGROWTH=2),(NAME=bg4,FILENAME='d:\data\bg4.ndf',SIZE=10MB,MAXSIZE=30,FILEGROWTH=2)

第17页:创建数据库T-SQL语法(续3)

3、使用CREATE DATABASE创建数据库SQL Server 2005LOGON(NAME=booklog,FILENAME='d:\data\booklog.ldf',SIZE=10MB,MAXSIZE=20,FILEGROWTH=20%)GO这个例子中创建了一个book数据库,包括三个文件组:主文件组包含文件book1和book2,bgroup1文件组包含文件bg1和bg2;bgroup2文件组包含文件bg3和bg4。

第18页:注意事项

注意事项:

  • 主数据文件必须至少是3MB以上才能容纳模型数据库的副本,否则不能创建数据库。
  • 书写语句时一定注意标点符号,切勿输入中文状态下的标点符号,除非特殊设置。
另外在FILENAME中的路径一定要在语句运行前创建好,比如本例中的数据库保存在D盘下的data文件夹中,如果事先D盘下并不存在data文件夹,那么要先在D盘根目录下创建data文件夹,然后再书写语句运行。
  • 5.3.2利用SQL Server Management Studio创建数据库

第19页:5.4查看数据库信息

5.4查看数据库的信息使用数据库、修改数据库、为数据库排除故障,经常需要了解数据库的信息,SQL Server提供了用于检索数据库信息的语句。可以使用USE语句选择要执行操作的数据库,语法如下:USE{database_name}例如:USEmodel表示当前操作数据库是model,在没用USE改变数据库前,所有的操作都是对model数据库执行。

第20页:【例5.4】查看book数据库的信息

5.4查看数据库的信息

5.4.1使用SP_HELPDB查看数据库信息使用SP_HELPDD语句的语法如下:SP_HELPDB[@dbname]参数说明:@dbname:指要提供信息的数据库名称。Name的数据类型为sysname,无默认值。如果没有指定name,则查看当前服务器上的所有数据库信息。【例5.4】查看book数据库的信息。SP_HELPDB book

第21页:查看数据库信息(续)

5.4查看数据库的信息

5.4.2使用SP_DATABASES查看所有可以使用的数据库使用SP_DATABASES语句的语法如下:SP_DATABASES 5.4.3使用SP_HELPFILE查看当前数据库文件使用SP_HELPFILE语法如下:SP_HELPFILE[@file_name]参数说明:@file_name:要查询的数据库文件的名称。如果没有指定文件名称,那么将查询所有当前数据库上的文件。

第22页:【例5.5】查看book数据库里所有文件

5.4查看数据库的信息

【例5.5】查看book数据库里所有文件的信息,以及文件bg2的信息。USEbookGOSP_HELPFILEGOSP_HELPFILEbg2GO 5.4.4使用sp_helpfilegroup查看当前数据库的文件组使用SP_HELPFILEGROUP语法如下:SP_HELPFILEGROUP[@filegroup_name]参数说明:@filegroup_name:要查询的数据库文件组的名称。如果没有指定名称,则查询当前数据库中的所有文件组信息。

第23页:【例5.6】查询数据库book

5.4查看数据库的信息

【例5.6】查询数据库book中bgroup2文件组的信息。USEbookGOSP_HELPFILEGROUPbgroup2GO。

第24页:【例5.7】查询JWGL数据库中的数据空

5.4查看数据库的信息

5.4.5使用SP_SPACEUSED查看当前数据库中的数据空间SP_SPACEUSED语法如下:SP_SPACEUSED[@file_name]参数说明:@file_name:要查询的数据库中的表名。如果没有指定表名,则查询当前数据库中的数据空间信息。【例5.7】查询JWGL数据库中的数据空间以及teacher表数据空间。USEJWGLGOSP_SPACEUSEDGOSP_SPACEUSEDteacherGO

第25页:查看数据库信息(续3)

5.4查看数据库的信息

5.4.6使用DBCCSQLPERF查看数据库日志空间使用DBCCSQLPERF语法如下:DBCCSQLPERF(LOGSPACE)
  • 5.4.7使用SQLServerManagementStudio查看数据库信息

第26页:5.5管理数据库

5.5管理数据库5.5.1修改数据库1.使用T-SQL语句修改数据库使用ALTERDATABASE修改数据库的语法结构如下:ALTERDATABASEdatabasename{addfile<filespec>[,…n][tofilegroupfilegroupname]|addlogfile<filespec>[,…n]|addfilegroupfilegroup_name|removefilelogical_file_name|removefilegroupfilegroup_name|modifyfile<filespec>|modifyfilegroupfilegroup_name{filegroup_property|name=new_filegroup_name}}

第27页:参数说明(续)

参数说明

addfile<filespec>[,…n][tofilegroupfilegroupname]表示向指定的文件组中添加新的数据文件。
addlogfile<filespec>[,…n]
增加新的日志文件。
addfilegroupfilegroup_name
增加一个文件组。
removefilelogical_file_name:删除指定的操作系统文件。
removefilegroupfilegroup_name:删除指定的文件组。
modifyfile<filespec>
修改某个操作系统文件。
modifyname=new_databasename:重命名数据库。
modify filegroup filegroup_name:修改某个指定文件组的属性。文件组的属性有以下三种:
READONLY
只能读取该文件组中的数据,而不能修改;
READWRITE
既可以读取又可以修改该文件组中的数据;
DEFAULT
设置该文件组为默认文件组。

第28页:【例5.8】向SCHOOL数据库的默认

5.5管理数据库【例5.8】向SCHOOL数据库的默认Primary文件组里增加一个数据文件。ALTERDATABASESCHOOLADDFILE(NAME=school_data1,FILENAME='d:\data\school_data1.ndf',SIZE=3MB,MAXSIZE=15MB,FILEGROWTH=1MB)GO

第29页:【例5.9】向book数据库

5.5管理数据库【例5.9】向book数据库的bgroup2文件组添加两个数据文件,并将该文件组设置为默认文件组。ALTERDATABASEbookADDFILE(NAME=bg5,FILENAME='d:\data\bg5.ndf',SIZE=10MB,MAXSIZE=30,FILEGROWTH=2),

第30页:管理数据库(续)

5.5管理数据库(NAME=bg6,FILENAME='d:\data\bg6.ndf',SIZE=10MB,MAXSIZE=30,FILEGROWTH=2)TOFILEGROUPbgroup2GOALTERDATABASEbookMODIFYFILEGROUPbgroup2DEFAULTGO

第31页:【例5.10】将book数据库中的bg5

5.5管理数据库【例5.10】将book数据库中的bg5数据文件的长度改变为20MB。ALTERDATABASEbookMODIFYFILE(NAME=bg5,SIZE=20MB)GO注意事项:用MODIFYFILE语句修改文件大小时赋予的新值一定要大于初始值。2、使用SQLServerManagementStudio修改数据库

第32页:管理数据库(续3)

5.5管理数据库5.5.2压缩数据库和数据库文件1.使用DBCCSHRINKDATABASE压缩数据库使用DBCCSHRINKDATABASE的语法结构如下:DBCCSHRINKDATABASE(database_name[,target_percent][,{NOTRUNCATE|TRUNCATEONLY}])

第33页:【例5.11】将SCHOOL数据库压缩到

参数说明

database_name
要收缩的数据库名称。
Target_percent
当数据库收缩后,数据库文件中剩余可用空间的百分比。
NOTRUNCATE:被释放的文件空间依然保持在数据库文件中。如果未指定,将所释放的文件空间被操作系统回收。 TRUNCATEONLY:将数据文件中未使用的空间释放给操作系统。使用TRUNCATEONLY时,将忽略target_percent的限制。
  • 【例5.11】将SCHOOL数据库压缩到原来的20%。
DBCCSHRINKDATABASE(SCHOOL,20) GO

第34页:管理数据库(续4)

5.5管理数据库2.使用DBCCSHRINKFILE压缩数据库指定的数据或日志文件使用DBCCSHRINKFILE的语法结构如下:DBCC SHRINKFILE(file_name{[,target_size]|[,{EMPTYFILE|NOTRUNCATE|TRUNCATEONLY}]})参数说明:
file_name
要收缩文件的逻辑名称。
target_size
将文件缩小到指定的长度,以MB为单位。如果不指定,将文件减少到最大程度。
EMPTYFILE
将数据从指定文件中转移到同一文件组中的其它文件。
NOTRUNCATE和TRUNCATEONLY:与DBCCSHRINKDATABASE命令中相同。

第35页:【例5.12】将student数据库

5.5管理数据库【例5.12】将student数据库中的数据文件student1压缩到30MB。USEstudentGODBCCSHRINKFILE(student1,30)GO3、使用SQLServerManagementStudio压缩数据库

第36页:【例5.13】把数据库book的名字改

5.5管理数据库5.5.3修改数据库名字1.使用系统存储过程SP_RENAMEDB修改数据库的名字语法如下:SP_RENAMEDB@old_name,@new_name【例5.13】把数据库book的名字改为BK。SP_RENAMEDBbook,BK2.使用SQLServerManagementStudio修改数据库的名字1)打开SQLServerManagementStudio,选择想要修改名字的数据库。2)单击鼠标右键选择“重命名”命令,就可以为数据库更名。

第37页:【例5.14】删除SCHOOL

5.5管理数据库5.5.4删除数据库1.使用DROP语句删除数据库使用DROP语句的语法结构如下:DROP database database_name[,…n]参数说明:database_name[,…n]:要删除的数据库的名字,可以一次删除多个数据库。只有处于正常状态下的数据库,才能使用DROP语句删除。当数据库处于以下状态时不能被删除:数据库正在使用;数据库正在恢复;数据库包含用于复制的已经出版的对象。【例5.14】删除SCHOOL和student数据库。DROPDATABASESCHOOL,student2.使用SQLServerManagementStudio删除数据库

第38页:5.6数据库备份概念

5.6数据库备份概念5.6.1备份的重要意义备份就是对SQL Server数据库或事务日志进行备份,数据库备份记录了在进行备份这一操作时数据库中所有数据的状态,以便在数据库遭到破坏时能够及时地将其恢复,使丢失的数据量减少到最小。造成数据丢失的因素很多,常见的有如下情况:

  • 系统或数据库相关软件瘫痪。
  • 用户的错误操作。
  • 服务器的彻底崩溃或其他硬件损坏。还有一些难以预料的因素也可能会导致数据库系统的严重破坏,如破坏性的计算机病毒、电源故障、自然灾害等。如果数据库受到损坏导致不可读,则用户应该首先删除受损的数据库,然后再从备份的文件中进行数据库的重建从而恢复数据库。总之,有一个良好的备份策略,并严格执行是非常重要的。

第39页:数据库备份概念(续)

5.6数据库备份概念5.6.2数据库备份计划数据库备份前,应该对备份内容、备份频率以及数据备份存储介质进行计划。5.6.3备份设备创建备份时,必须选择存放备份数据的备份设备。SQLServer使用物理设备名称或逻辑设备名称标识备份设备。物理备份设备是操作系统用来标识备份设备的名称。逻辑备份设备是用来标识物理备份设备的别名或公用名称,用以简化物理设备的名称。例如,一个物理备份设备名可能是D:\Student\data.bak,用逻辑备份设备则可简单的表示为Student_Backup。

第40页:5.7.1创建备份设备

5.7执行数据库备份与恢复5.7.1创建备份设备1.使用系统存储过程SP_ADDUMPDEVICE创建备份设备用系统存储过程SP_ADDUMPDEVICE可以实现创建永久备份设备的逻辑名称,它们记录在数据库master的sysdevices系统表中;未经SP_ADDUMPDEVICE创建的备份设备为临时备份设备。SP_ADDUMPDEVICE的语法格式为:SP_ADDUMPDEVICE[‘device_type’][,‘logical_name’][,‘physical_name’][,{{controller_type|’device_status’}}]

第41页:参数说明(续3)

参数说明参数说明:

  • ‘device_type’:备份设备的类型,有Disk(硬盘)、Pipe(命名管道)等。
‘logical_name’:备份设备的逻辑名称,该逻辑名称用于BACKUP或RESTORE语句中。
‘physical_name’
备份设备的物理名称。物理名称必须遵照操作系统文件名称的规则或着网络设备的通用命名规则,并且必须使用完整的路径。
controller_type
当创建备份设备时,该参数并不是必须的。为脚本提供该参数比较合适。具体为2(设备类型为disk时使用)、5(设备类型为tape时使用)。
’device_status’
指明是读取(noskip)ANSI磁带标签,还是忽略(skip)。默认值为noskip。

第42页:【例5.15】添加本地磁盘备份设备

5.7.1创建备份设备【例

5.15】添加本地磁盘备份设备。USEmasterGOEXECSP_ADDUMPDEVICE'disk','mydiskdump','d:\data\student.bak'该例子添加了一个逻辑文件名为mydiskdump的磁盘备份设备,其物理名称为d:\data\student.bak。【例 5.16】添加网络磁盘备份设备USEmasterGOEXECSP_ADDUMPDEVICE'disk','networkdevice',‘\\Servername\sharename\Path\filename.ext'2.使用SQLServerManagementStudio创建备份设备

第43页:5.7.2备份数据库

5.7.2备份数据库1.。使用T-SQL语句备份数据库SQLServer针对不同的备份对象给出了不同的备份语句,在这里只是简单介绍一下,分以下三中情况:1)备份整个数据库的简单语法结构如下:BACKUPDATABASE{database_name|@database_name_var}to<backup_device>[,…n][withDIFFERENTIAL]

第44页:【例5.17】备份整个book数据库

5.7.2备份数据库参数说明:DATABASE:指定一个完整的数据库备份。{database_name|@database_name_var}:指定要备份的数据库。<backup_device>:指定备份操作时要使用的逻辑或物理备份设备。DIFFERENTIAL:说明以差异备份的方式进行备份数据库。差异备份一般会比完整备份占用更少的空间。【例5.17】备份整个book数据库。USEmasterGOEXECSP_ADDUMPDEVICE'disk','bookbp1','d:\data\bookbp1.bak'GOBACKUPDATABASEBooktobookbp1GO

第45页:5.7.2备份数据库参数说明

5.7.2备份数据库2)备份日志文件的简单语法结构如下:BACKUPLOG{database_name|@database_name_var}to<backup_device>[,…n][withNO_TRUNCATE]参数说明:LOG:指定只备份事务日志。NO_TRUNCATE:表示在完成事务日志备份后,并不清空原有日志的数据。

第46页:【例5.18】备份book数据库的日志文

5.7.2备份数据库【例5.18】备份book数据库的日志文件。USEmasterGOEXECSP_ADDUMPDEVICE'disk','booklog1','d:\data\booklog1.bak'GOBACKUPLOGbooktobooklog1GO

第47页:备份数据库参数说明(续)

5.7.2备份数据库3)备份文件或文件组的简单语法结构如下:BACKUPDATABASE{database_name|@database_name_var}<file_or_filegroup>[,…n]to<backup_device>[,…n]<file_or_filegroup>::={FILE={logical_file_name|@logical_file_name_evar}|FILEGROUP={logical_filegroup_name|@logical_filegroup_name_evar}

第48页:备份数据库参数说明(续3)

5.7.2备份数据库参数说明:

  • <file_or_filegroup>:指定包含在数据库备份中的文件或文件组的逻辑名。可以指定多个文件或文件组。
  • FILE={logical_file_name|@logical_file_name_evar}:给一个或多个包含在数据库备份中的文件命名。
  • FILEGROUP={logical_filegroup_name|@logical_filegroup_name_evar}:给一个或多个包含在数据库备份中的文件组命名。注意事项:
必须通过使用BACKUPLOG提供事务日志的单独备份,才能使用文件和文件组备份来恢复数据库。
  • 如果恢复模型为SIMPLE,则不允许文件和文件组备份。2、使用SQLServerManagementStudio备份数据库

第49页:5.7.3恢复数据库

5.7.3恢复数据库1.使用T-SQL语句恢复数据库与前面的BACKUP语句相对应,RESTORE语句也有三种形式,分别用来恢复整个数据库备份、事务日志备份以及文件和文件组备份。1)利用数据库备份恢复数据库的语法结构如下:RESTORE DATABASE database_name[from<backup_device[],…n>][WITH[[,]{NORECOVERY|RECOVERY}][[,]REPLACE]]

第50页:【例5.19】利用数据库备份恢复book

5.7.3恢复数据库参数说明:backup_device:指定还原操作要使用的逻辑或物理备份设备。NORECOVERY:表示在执行恢复操作后不回滚任何未提交的事务。RECOVERY:表示在执行恢复操作后回滚未提交的事务,为默认值。REPLACE:表示如果已经存在具有相同名称的数据库时,则删除已有的数据库,创建指定的数据库。【例5.19】利用数据库备份恢复book数据库。RESTOREDATABASEbookFROMbookbp1WITHNORECOVERY

第51页:【例5.20】利用事务日志备份恢复

5.7.3恢复数据库2)利用事务日志备份恢复数据库的语法结构如下:RESTORE LOG database_name[from<backup_device[],…n>][WITH[[,]{NORECOVERY|RECOVERY}][[,]STOPAT=date_time]]参数说明:STOPAT=date_time:指定将数据库恢复到指定时刻的状态。【例5.20】利用事务日志备份恢复book数据库。RESTORELOGbookFROMbooklog1WITHSTOPAT='July28,200612:00AM'

第52页:恢复数据库(续)

5.7.3恢复数据库3)利用文件及文件组备份恢复数据库的语法结构如下:RESTOREDATABASEdatabase_name<file_or_filegroup>[,…n][from<backup_device[],…n>][WITH[[,]{NORECOVERY|RECOVERY}][[,]REPLACE]]<file_or_filegroup>::={FILE={logical_file_name|@logical_file_name_evar}|FILEGROUP={logical_filegroup_name|@logical_filegroup_name_evar}具体参数前面已经介绍过,这里就不再说明了。2.使用SQLServerManagementStudio恢复数据库
顶部目录