SQL Server教程第10章数据库维护.docx
- 文档编号:7661332
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:18
- 大小:209.46KB
SQL Server教程第10章数据库维护.docx
《SQL Server教程第10章数据库维护.docx》由会员分享,可在线阅读,更多相关《SQL Server教程第10章数据库维护.docx(18页珍藏版)》请在冰豆网上搜索。
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
[WITH
[DESCRIPTION={'text'}]
[[,]DIFFERENTIAL]
[[,]{INIT|NOINIT}]
[[,]NAME={BackupSetName}]
]
(2)备份文件或文件组
BACKUPDATABASE{DatabaseName}
TO
[WITH
[DESCRIPTION={'text'}]
[[,]DIFFERENTIAL]
[[,]{INIT|NOINIT}]
[[,]NAME={BackupSetName}]
]
(3)备份事务日志
BACKUPLOG{DatabaseName}
TO
[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
[WITH
[[,]FILE={FileNumber}]
[[,]MOVE'LogicalFileName'TO'OperatingSystemFileName']
[[,]{RECOVERY|NORECOVERY|STANDBY={StandbyFileName}}]
[[,]REPLACE]
]
(2)还原部分数据库
RESTOREDATABASE{DatabaseName}
[FROM
[WITH
PARTIAL
[[,]FILE={FileNumber}]
[[,]MOVE'LogicalFileName'TO'OperatingSystemFileName']
[[,]NORECOVERY]
[[,]REPLACE]
]
(3)还原文件或文件组
RESTOREDATABASE{DatabaseName}
[FROM
[WITH
[[,]FILE={FileNumber}]
[[,]MOVE'LogicalFileName'TO'OperatingSystemFileName']
[[,]NORECOVERY]
[[,]REPLACE]
]
(4)还原事务日志
RESTORELOG{DatabaseName}
[FROM
[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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL Server教程第10章数据库维护 Server 教程 10 数据库 维护