SQL Server教程第10章数据库维护.docx

上传人:b****5 文档编号:7661332 上传时间:2023-01-25 格式:DOCX 页数:18 大小:209.46KB
下载 相关 举报
SQL Server教程第10章数据库维护.docx_第1页
第1页 / 共18页
SQL Server教程第10章数据库维护.docx_第2页
第2页 / 共18页
SQL Server教程第10章数据库维护.docx_第3页
第3页 / 共18页
SQL Server教程第10章数据库维护.docx_第4页
第4页 / 共18页
SQL Server教程第10章数据库维护.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

SQL Server教程第10章数据库维护.docx

《SQL Server教程第10章数据库维护.docx》由会员分享,可在线阅读,更多相关《SQL Server教程第10章数据库维护.docx(18页珍藏版)》请在冰豆网上搜索。

SQL Server教程第10章数据库维护.docx

SQLServer教程第10章数据库维护

学校

教师教案

课程

班级

上课时间

任课教师

课时

审签

教材

SQLServer2005实用教程

参考材料

章节

第10章数据库维护

10.1数据库备份与还原

10.2数据库分离与附加

10.3数据导入导出

10.4数据库快照

教学目标

⏹理解数据库备份、数据库还原的概念。

⏹掌握数据库备份和还原的方法。

⏹掌握数据库分离与附加的方法。

⏹掌握数据的导入和导出的方法。

教学重点

教学难点

教学工具

教案

第10章数据库维护

10.1数据库备份与还原

10.1.1备份与还原概述

1.备份概述

(1)备份内容

(2)备份频率

(3)备份设备

(4)备份类型

2.还原概述

(1)恢复模式

(2)恢复模式的设置

使用ALTERDATABASE命令可以修改数据库的恢复模式属性,该命令的语法如下。

ALTERDATABASEDatabaseName

SETRECOVERY{FULL|BULK_LOGGED|SIMPLE}

例10-1将BlueSkyDB数据库的恢复模式设置为简单恢复模式。

USEmaster

GO

ALTERDATABASEBlueSkyDBSETRECOVERYSIMPLE

GO

10.1.2备份及还原用户数据库

1.创建备份设备

创建备份设备的命令是存储过程sp_addumpdevice,该系统存储过程的使用方法如下。

sp_addumpdevice[@devtype=]'DeviceType'

[@logicalname=]'LogicalName'

[@physicalname=]'PhysicalName'

]

例10-2首先在C盘根目录创建一个文件夹dump。

创建一个名为mydiskdump的磁盘备份设备,其物理名称为C:

\dump\dump1.bak。

USEmaster

GO

EXECsp_addumpdevice'disk','mydiskdump','c:

\dump\dump1.bak'

GO

例10-3创建一个名为tapedump1的磁带备份设备,其物理名称为\\.\tape0。

USEmaster

GO

EXECsp_addumpdevice'tape','tapedump1','\\.\tape0'

GO

删除备份设备的命令是存储过程sp_dropdevice,该系统存储过程的使用方法如下。

sp_dropdevice[@logicalname=]'device'

[,[@delfile=]'delfile']

例10-4删除名为tapedump1的磁带备份设备。

USEmaster

GO

EXECsp_dropdevice'tapedump1'

GO

2.备份数据库

(1)备份整个数据库

BACKUPDATABASE{DatabaseName}

TO[,...n]

[WITH

[DESCRIPTION={'text'}]

[[,]DIFFERENTIAL]

[[,]{INIT|NOINIT}]

[[,]NAME={BackupSetName}]

]

(2)备份文件或文件组

BACKUPDATABASE{DatabaseName}

[,...f]

TO[,...n]

[WITH

[DESCRIPTION={'text'}]

[[,]DIFFERENTIAL]

[[,]{INIT|NOINIT}]

[[,]NAME={BackupSetName}]

]

(3)备份事务日志

BACKUPLOG{DatabaseName}

TO[,...n]

[WITH

[DESCRIPTION={'text'}]

[[,]{INIT|NOINIT}]

[[,]NAME={BackupSetName}]

[[,]NO_TRUNCATE]

[[,]{NORECOVERY|STANDBY=UndoFileName}]

]

=

{

{LogicalBackupDeviceName}|{DISK|TAPE}={'PhysicalBackupDeviceName'}

}

=

{

FILE={LogicalFileName}|FILEGROUP={LogicalFilegroupName}

}

例10-5将数据库BlueSkyDB中的文件组UserGroup2和UserGroup3设为只读,然后对数据库BlueSkyDB进行完全备份,将备份存储到名为mydiskdump的备份设备上,并且覆盖所有的备份集。

USEmaster

GO

ALTERDATABASEBlueSkyDB

MODIFYFILEGROUPUserGroup2READONLY

GO

ALTERDATABASEBlueSkyDB

MODIFYFILEGROUPUserGroup3READONLY

GO

BACKUPDATABASEBlueSkyDBTOmydiskdump

WITHNAME='BlueSkyDB完整备份',INIT

GO

例10-6对数据库BlueSkyDB进行差异备份,将备份存储到名为mydiskdump的备份设备上,并将本次备份追加到指定的媒体集上。

将日志备份到名为磁盘C:

\dump\dumplog.bak文件上,并且覆盖所有的备份集。

USEmaster

GO

ALTERDATABASEBlueSkyDBSETRECOVERYFULL

GO

BACKUPDATABASEBlueSkyDBTOmydiskdump

WITHDIFFERENTIAL,NAME='BlueSkyDB差异备份'

GO

BACKUPLOGBlueSkyDBTODISK='c:

\dump\dumplog.bak'

WITHNAME='BlueSkyDB日志备份',INIT

GO

例10-7对数据库BlueSkyDB中的文件组UserGroup1进行备份,将备份存储到磁盘c:

\dump\dump2.bak文件上,并且覆盖所有的备份集。

将日志备份到名为mydiskdumpLog的备份设备上,其物理名称为C:

\dump\dumplog1.bak,并且覆盖所有的备份集。

USEmaster

GO

ALTERDATABASEBlueSkyDBSETRECOVERYFULL

GO

EXECsp_addumpdevice'disk','mydiskdumpLog','c:

\dump\dumplog1.bak'

GO

BACKUPDATABASEBlueSkyDBFILEGROUP='UserGroup1'

TODISK='c:

\dump\dump2.bak'

WITHNAME='BlueSkyDB文件组备份',INIT

GO

BACKUPLOGBlueSkyDBTOmydiskdumpLog

WITHNAME='BlueSkyDB文件组日志备份',INIT

GO

3.还原数据库

(1)还原整个数据库

RESTOREDATABASE{DatabaseName}

[FROM[,...n]]

[WITH

[[,]FILE={FileNumber}]

[[,]MOVE'LogicalFileName'TO'OperatingSystemFileName']

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

[[,]REPLACE]

]

(2)还原部分数据库

RESTOREDATABASE{DatabaseName}

[FROM[,...n]]

[WITH

PARTIAL

[[,]FILE={FileNumber}]

[[,]MOVE'LogicalFileName'TO'OperatingSystemFileName']

[[,]NORECOVERY]

[[,]REPLACE]

]

(3)还原文件或文件组

RESTOREDATABASE{DatabaseName}

[,...f]

[FROM[,...n]]

[WITH

[[,]FILE={FileNumber}]

[[,]MOVE'LogicalFileName'TO'OperatingSystemFileName']

[[,]NORECOVERY]

[[,]REPLACE]

]

(4)还原事务日志

RESTORELOG{DatabaseName}

[FROM[,...n]]

[WITH

[[,]FILE={FileNumber}]

[[,]MOVE'LogicalFileName'TO'OperatingSystemFileName']

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

[[,]REPLACE]

]

=

{

{LogicalBackupDeviceName}|{DISK|TAPE}={'PhysicalBackupDeviceName'}

}

=

{

FILE={LogicalFileName}|FILEGROUP={LogicalFilegroupName}

}

例10-8利用备份文件c:

\dump\dump2.bak,恢复数据库BlueSkyDB中的文件组UserGroup1,同时利用备份设备mydiskdumpLog进行数据库BlueSkyDB的日志恢复。

USEmaster

GO

RESTOREDATABASEBlueSkyDBFILEGROUP='UserGroup1'

FROMDISK='c:

\dump\dump2.bak'

GO

RESTORELOGBlueSkyDB

FROMmydiskdumpLog

GO

例10-9利用备份设备mydiskdump中的“BlueSkyDB完整备份”进行数据库完全恢复,恢复后的数据库名为BlueSkyDB。

利用备份设备mydiskdump中的“BlueSkyDB差异备份”进行数据库差异恢复,恢复后的数据库名为BlueSkyDB,同时利用磁盘c:

\dump\dumplog.bak文件进行数据库BlueSkyDB的日志恢复。

USEmaster

GO

RESTOREDATABASEBlueSkyDB

FROMmydiskdump

WITHFILE=1,NORECOVERY,REPLACE

GO

RESTOREDATABASEBlueSkyDB

FROMmydiskdump

WITHFILE=2,NORECOVERY,REPLACE

GO

RESTORELOGBlueSkyDB

FROMDISK='c:

\dump\dumplog.bak'

GO

例10-10利用备份设备mydiskdump中的“BlueSkyDB完整备份”进行文件组“UserGroup1”的部分恢复,还原后的数据库名为“BlueSkyDB1”。

USEmaster

GO

RESTOREDATABASEBlueSkyDB1FILEGROUP='UserGroup1'

FROMmydiskdump

WITHPARTIAL,REPLACE,

MOVE'BSGroup1File1'TO'F:

\Group1File1Data.ndf',

MOVE'BSGroup1File2'TO'F:

\Group1File2Data.ndf',

MOVE'BSPrimaryFile1'TO'F:

\PrimaryFile1Data.mdf',

MOVE'BSLogFile1'TO'F:

\LogFile1.ldf'

GO

10.1.3备份和还原系统数据库

1.备份和还原master数据库

2.备份和还原model和msdb数据库

10.2数据库分离与附加

例10-11将数据库BlueSkyDB从当前的数据库服务器中分离出去。

步骤1启动SSMS,使用“Windows身份验证”使“对象资源管理器”连接到本地服务器。

步骤2在【对象资源管理器】中展开【数据库】节点,右键单击BlueSkyDB数据库节点,在弹出的快捷菜单中选择【任务】命令,在弹出的下一级菜单中选择【分离】命令。

步骤3弹出【分离数据库】对话框,【更新统计信息】复选按钮选择与否,是用来指定是否设置更新统计信息,单击【确定】按钮关闭【分离数据库】对话框,在SSMS的【对象资源管理器】窗口中已经看不到数据库BlueSkyDB了。

例10-12将数据库BlueSkyDB附加到当前的数据库服务器中。

步骤1启动SSMS,使用“Windows身份验证”使“对象资源管理器”连接到本地服务器。

步骤2在【对象资源管理器】中,右键单击【数据库】节点,在弹出的快捷菜单中选择【附加】命令。

步骤3弹出【附加数据库】对话框,在【要附加的数据库】区域单击【添加】按钮,在弹出的【定位数据库文件】对话框中选择数据库的主文件,单击【确定】按钮返回【附加数据库】对话框,如图10-7所示,单击【确定】按钮,完成数据库附加操作。

如果如图10-8所示,则表示有文件在原有路径中无法找到,需要用户重新定位。

在【“BlueSkyDB”数据库详细信息】区域中单击【当前文件路径】中D:

\BlueSky\Group1File1Data.ndf项右侧的按钮,在弹出的【定位数据库文件】对话框中选择文件的正确位置,单击【确定】按钮返回【附加数据库】对话框,单击【确定】按钮,完成数据库附加操作。

 

图10-7附加数据库对话框设置1

 

图10-8附加数据库对话框设置2

10.3数据导入导出

例10-13将数据库BlueSkyDB中的数据表Categories导出到EXCEL文件D:

\Categories.xls中。

步骤1启动SSMS,使用“Windows身份验证”使“对象资源管理器”连接到本地服务器。

步骤2在【对象资源管理器】中展开【数据库】节点,右键单击BlueSkyDB数据库节点,在弹出的快捷菜单中选择【任务】命令,在弹出的子菜单中选择【导出数据】命令,弹出【SQLSERVER导入和导出向导】对话框。

步骤3向导第一页,在该页进行数据源选择:

在【数据源】下拉列表中选择【SQLNativeClient】,在【服务器名称】下拉列表中选择本地服务器名称,例如【YVONNE】,在【身份验证】中选择【使用Windows身份验证】,【数据库】中输入BlueSkyDB,如图10-9所示。

 

图10-9SQLServer导入和导出向导之选择数据源

步骤4单击【下一步】按钮,进入向导第二页,在该页进行目标选择。

在【目标】下拉列表中选择【MicrosoftExcel】,单击【浏览】按钮,弹出【打开】对话框,【查找范围】中选择【D:

】,【文件名】中输入Categories.xls,单击【打开】按钮,返回向导,如图10-10所示。

 

图10-10SQLServer导入和导出向导之选择目标

步骤5单击【下一步】按钮,进入向导第三页,在该页进行表复制或查询的选择。

单击选中【复制一个或多个表或视图的数据】选项,如图10-11所示。

 

图10-11SQLServer导入和导出向导之指定表复制或查询

步骤6单击【下一步】按钮,进入向导第四页,在该页进行源表的选择。

在【源】列中选择Categories表所在行的复选按钮,如图10-12所示。

 

图10-12SQLServer导入和导出向导之选择源表和源视图

步骤7单击【下一步】按钮,进入向导第五页,在该页进行包执行设定。

选中【立即执行】的复选按钮,单击【下一步】按钮,进入向导第六页,该页显示出用户在前面的向导页中进行的设置,如果有问题,用户可能通过单击【上一步】按钮进行修改,如果没问题则单击【完成】按钮,进入向导第七页,系统立即按用户的设置进行数据导出,完成后显示【执行成功】,如图10-13所示。

单击【关闭】按钮。

 

图10-13SQLServer导入和导出向导之执行成功

例10-14将EXCEL文件D:

\Categories.xls中的记录导入数据库BlueSkyDB中的数据表Categories1中。

步骤1启动SSMS,使用“Windows身份验证”使“对象资源管理器”连接到本地服务器。

步骤2在【对象资源管理器】中展开【数据库】节点,右键单击BlueSkyDB数据库节点,在弹出的快捷菜单中选择【任务】命令,在弹出的子菜单中选择【导出数据】命令,弹出【SQLSERVER导入和导出向导】对话框。

步骤3向导第一页,在该页进行数据源选择。

在【数据源】下拉列表中选择【MicorosoftExcel】,单击【浏览】按钮,弹出【打开】对话框,【查找范围】中选择【D:

】,【文件名】中输入Categories.xls,单击【打开】按钮,返回向导。

步骤4单击【下一步】按钮,进入向导第二页,在该页进行目标选择。

在【目标】下拉列表中选择【SQLNativeClient】,在【服务器名称】下拉列表中选择【YVONNE】,在【身份验证】中选择【使用Windows身份验证】,【数据库】中输入BlueSkyDB。

步骤5单击【下一步】按钮,进入向导第三页,在该页进行表复制或查询的选择。

单击选中【复制一个或多个表或视图的数据】选项。

步骤6单击【下一步】按钮,进入向导第四页,在该页进行源表的选择。

在【源】列中选择Categories所在行的复选按钮,修改其对应的【目标】中的数据表名为Categories1,如图10-14所示。

 

图10-14SQLServer导入和导出向导之数据导入

步骤7单击【下一步】按钮,进入向导第五页,在该页进行包执行设定。

选中【立即执行】的复选按钮,单击【下一步】按钮,进入向导第六页,该页显示出用户在前面的向导页中进行的设置,如果有问题,用户可能通过单击【上一步】按钮进行修改,如果没问题则单击【完成】按钮,进入向导第七页,系统立即按用户的设置进行数据导出,完成后显示【执行成功】,单击【关闭】按钮。

10.4数据库快照

10.4.1数据库快照概述

1.数据库快照的工作原理

2.数据库快照的优点

3.数据库快照的限制

10.4.2数据库快照的使用

1.创建数据库快照

用CREATEDATABASE命令创建数据库快照,该命令的语法如下所示。

CREATEDATABASEDatabaseSnapshotName

ON(NAME=LogicalFileName,

FILENAME='OsFileName')[,...n]

ASSNAPSHOTOFSourceDatabaseName

例10-15对BlueSkyDB数据库创建数据库快照BlueSkyDB_snapshot。

CREATEDATABASEBlueSkyDB_snapshotON

(NAME=BSPrimaryFile1,FILENAME='C:

\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\BSPrimaryFile1.ss'),

(NAME=BSGroup1File1,FILENAME='C:

\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\BSGroup1File1.ss'),

(NAME=BSGroup1File2,FILENAME='C:

\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\BSGroup1File2.ss'),

(NAME=BSGroup2File1,FILENAME='C:

\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\BSGroup2File1.ss'),

(NAME=BSGroup3File1,FILENAME='C:

\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\BSGroup3File1.ss')

ASSNAPSHOTOFBlueSkyDB

GO

2.查看数据库快照

3.删除数据库快照

用DROPDATABASE命令删除数据库快照,该命令的语法如下所示。

DROPDATABASEDatabaseSnapshotName

例10-31删除名为BlueSkyDB_snapshot的数据库快照,而不影响源数据库。

USEmaster

GO

DROPDATABASEBlueSkyDB_snapshot

GO

10.4.3利用数据库快照进行数据库恢复

用RESTOREDATABASE命令恢复数据库,该命令的语法如下所示。

RESTOREDATABASE

FROMDATABASE_SNAPSHOT=

例10-32从数据库快照BlueSkyDB_snapshot中恢复数据库。

USEmaster

RESTOREDATABASEBlueSkyDBFROMDATABASE_SNAPSHOT='BlueSkyDB_snapshot'

GO

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1