第4章_SQLSERVER数据库管理数据库原理及应用SQL_Server_2008数据库原理及应用课件.ppt_第1页
第4章_SQLSERVER数据库管理数据库原理及应用SQL_Server_2008数据库原理及应用课件.ppt_第2页
第4章_SQLSERVER数据库管理数据库原理及应用SQL_Server_2008数据库原理及应用课件.ppt_第3页
第4章_SQLSERVER数据库管理数据库原理及应用SQL_Server_2008数据库原理及应用课件.ppt_第4页
第4章_SQLSERVER数据库管理数据库原理及应用SQL_Server_2008数据库原理及应用课件.ppt_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章SQLSERVER数据库管理 本章的学习目标 了解数据库的存储结构理解数据库文件和文件组的基本特征了解SQLServer2008R2系统的数据库了解数据库的物理存储方式和大小估算方法熟练掌握用ManagementStudio工具和T SQL语句创建数据库熟练掌握用ManagementStudio工具和T SQL语句修改数据库熟练掌握扩大数据库的原因和方法掌握数据库的分离和附加掌握收缩数据库的原因和方法掌握数据库的删除掌握数据库的备份和还原 本章内容 4 1SQLSERVER数据库的存储结构4 2数据库的创建4 3数据库的修改4 4数据库的分离和附加4 5数据库的收缩4 6数据库删除4 7数据库的备份和还原4 8本章小结 4 1SQLSERVER数据库的存储结构 数据库的两种存储结构 逻辑存储结构和物理存储结构 数据库物理存储结构表现为存储数据的各类操作系统文件 SQLServer2008R2数据库在磁盘上是以文件为单位存储的 由数据文件和事物日志文件组成 每个数据库至少要具有两种操作系统文件 一个数据文件和一个事务日志文件 数据库的逻辑存储结构 是指数据库有哪些性质的信息组成 即一个数据库由若干用户可视的各种数据库对象构成 诸如表 视图 索引 存储过程等 4 1 1数据库对象 数据库的逻辑存储结构数据库的逻辑存储结构 是指数据库有哪些性质的信息组成 即一个数据库由若干用户可视的各种数据库对象构成 诸如表 视图 索引 存储过程等 SQLServer2008R2中常用的数据库对象1 表 表是数据库中用于容纳所有数据的最常用的数据库对象 由行和列组成的二维的行列结构 2 视图 视图是用户查看数据库表中数据的一种方式 它其实相当于一种虚拟表 但是可以像使用真实表一样使用视图 视图又被称为一种逻辑对象 并不占用物理空间 其作用像相当于查询 所包含的列和行的数据只来源于视图所查询的表 这种实际的表称为视图的基表 在引用视图时动态生成 3 索引 数据库中的索引类似于书籍中的目录 对一个没有索引的表进行的查询操作 系统将检查表中的每一个数据行 这就好比在一本没有目录的书中查找信息 4 存储过程 存储过程是SQLServer2008R2服务器上一组预编译的Transact SQL语句 它可以接受参数 返回状态值和参数值 并且可以嵌套调用 使用服务器上存储过程而不使用客户机本地上的Transact SQL程序的优点有 保证各个客户端操作一致性 提供安全机制 有权限的才能操作 及减少网络传输等 5 触发器 触发器是一种特殊类型的存储过程 当执行某些操作导致表中的数据被修改时 触发器会自动触发执行 它主要用来实现复杂的数据完整性 6 函数 SQLServer2008R2中包含有大量的函数 我们用函数可以完成特定的计算功能 在SQLServer2008R2中除了有内置函数 还允许用户自定义函数 4 1 2数据库文件及文件组 数据库的物理存储结构数据库的物理存储结构 表现为存储数据的各类操作系统文件 SQLServer2008R2数据库在磁盘上是以文件为单位存储的 由数据文件和事物日志文件组成 每个数据库至少要具有两种操作系统文件 一个数据文件和一个事务日志文件 数据文件可以隶属于某个文件组中以便于对该文件中数据存储的管理 数据文件 又可以分成主数据文件和次数据文件两种形式 主数据文件是数据库的起点 用来存储数据库的启动信息和部分或全部数据 每一个数据库都有且仅有一个主数据文件 主数据文件名称的默认后缀是mdf 次数据文件是可选的 它们可以存储不在主数据文件中的全部数据和对象 数据库既可能没有次数据文件 也可能有多个次数据文件 次数据文件名称的默认后缀是ndf 事务日志文件 事务就是一个单元的工作 该单元的工作要么全部完成 要么全部不完成 SQLServer2008R2系统具有事务功能 可以保证数据库操作的一致性和完整性 事务日志以操作系统文件的形式存在 在数据库中被称为事务日志文件 每一个数据库都至少有一个事务日志文件 事务日志文件名称的后缀默认是ldf 主数据文件 次数据文件 事务日志文件 文件组文件组就是文件的逻辑集合 为了方便数据的管理和分配 文件组允许对文件进行分组以便于管理数据的分配或放置 可以把一些指定的文件组合在一起 也就是说 当你的数据库中包含很多数据文件时 你可以将这些数据文件存储在不同的地方 然后用文件组把它们作为一个单元来管理 文件组对组内的所有文件都使用按比例填充策略 即当将数据写入文件组时 SQLServer2008R2根据文件中的可用空间量将按一定比例的数据写入文件组的每个文件 而不是将所有的数据先写满第一个文件 接着再写入下一个文件 例如 在某个数据库中 3个文件 data1 ndf data2 ndf和data3 ndf 分别创建在3个不同的磁盘驱动器中 然后为它们指定一个文件组fgroup1 以后 所创建的表可以明确指定放在文件组fgroup1上 对该表中数据的查询将分布在这3个磁盘上 因此 可以通过执行并行访问而提高查询性能 在创建表时 不能指定将表放在某个文件上 只能指定将表放在某个文件组上 因此 如果希望将某个表放在特定的文件上 那么必须通过创建文件组来实现 文件组SQLServer2008R2一共有三种类型的文件组 它们分别是主文件组 primary 用户定义文件组 还可选中一个文件组为默认文件组 default SQLServer2008R2至少包含一个文件组 即主文件组 主文件组包含主数据文件 存放系统表格等 Primary不能被更改 默认文件组 default 用来存放任何没有指定文件组的对象 任何时候只能有一个文件组被指定为default 默认情况下主文件组被当做默认的文件组 使用文件和文件组时 应该考虑下列因素 一个文件或者文件组只能用于一个数据库 不能是多个数据库 一个文件只能是某一个文件组的成员 不能是多个文件组的成员 数据库的数据信息和日志信息不能放在同一个文件中 即数据文件和日志文件总是分开的 日志文件永远也不能是任何文件组的一部分 4 1 3SQLServer2008R2数据库类型 SQLServer2008R2中的数据库有两种类型 系统数据库和用户数据库 1 系统数据库系统数据库由master model msdb tempdb和隐藏的Resource数据库组成 1 master数据库 master数据库用于记录SQLServer2008R2中所有服务器级别的对象 这包括了服务器登录帐户 链接服务器定义以及端点 master数据库同时还记录服务器上其他所有数据库的信息 SQLServer2008R2并不把系统信息存储在master数据库中 而是存储在Resource数据库中 不过在master数据库中 系统信息逻辑呈现为sys架构 4 1 3SQLServer2008R2数据库类型 2 model数据库 model数据库是一个模板数据库 每当创建新的数据库时 包括系统数据库tempdb 就会创建model数据库的一个副本 并以新创建数据库的名称重命名该副本 3 msdb数据库可以把msdb数据库看作是SQLServer代理的数据库 这是因为SQLServer2008R2代理广泛地使用msdb数据库存储自动化作业定义 作业计划 操作员定义以及警报定义 4 tempdb数据库SQLServer2008R2使用tempdb数据库临时性地存储数据 在SQLServer2008R2操作中 tempdb数据库有广泛的运用 因此要确保SQLServer2008R2数据库有效的操作 就需要仔细计划和评估tempdb数据库的规模和位置 5 Resource数据库它是一个只读数据库 包含SQLServer2008R2实例使用的所有系统对象 4 1 3SQLServer2008R2数据库类型 2 用户数据库用户数据库就是用户创建的数据库 它们存储数据应用程序所使用的数据 这也是拥有一个数据库服务器的主要目的 4 2数据库的创建 数据库创建的方法 创建数据库的方法有多种 使用ManagementStudio工具创建数据库 可以使用CREATEDATABASE语句创建数据库 在创建数据库之前要需估算所建数据库的大小和增幅 创建数据库就是确定数据库名称 文件名称 数据文件大小 数据库的字符集 是否自动增长以及如何自动增长等信息的过程 数据库的名称必须满足系统的标识符规则 在命名数据库时 一定要使数据库名称简短和有一定的含义 4 2 1使用ManagementStudio工具创建数据库 要求 创建一个酒店管理系统所使用的数据库 名为JdglSys 因为酒店管理系统中涉及到的容纳数据的表大致有7个 估计总数据量为20000行记录 根据课本介绍的估算数据库大小的方法 估算JdglSys数据库中的数据文件的大小为10M 日志文件为3M 步骤 1 从 开始 程序 MicrosoftSQLServer2008R2 SQLServer2008R2ManagementStudio 点击后 打开该工具 首先点击 连接 到SQLServer2008R2数据库引擎实例 详见图4 3连接ManagementStudio工具 4 2 1使用ManagementStudio工具创建数据库 图4 3连接ManagementStudio工具 4 2 1使用ManagementStudio工具创建数据库 2 展开该实例后 如图4 4ManagementStudio工具界面图 图4 4ManagementStudio工具界面 4 2 1使用ManagementStudio工具创建数据库 3 右击上图中的 数据库 在弹出菜单中选择 新建数据库 会弹出新建数据库窗口 如图4 5新建数据库所示 在 数据库名称 项中输入新数据库的名称JdglSys 下面数据库文件中的逻辑名称就会自动设置完成 注意 此处要修改一下数据文件的大小为10M 日志文件的大小为3M 单击 确定 按钮即完成 图4 5新建数据库JdglSys 4 2 1使用ManagementStudio工具创建数据库 4 创建完成JdglSys数据库后的ManagementStudio的工具界面如下 图4 6ManagementStudio工具界面 新建的JdglSys数据库 4 2 2使用T SQL语言创建数据库 CREATEDATABASE语句的常用语法格式如下 CREATEDATABASEdatabase nameON PRIMARY NAME logical file name FILENAME os file name SIZE size MAXSIZE max size UNLIMITED FILEGROWTH growth increment n LOGON NAME logical file name FILENAME os file name SIZE size MAXSIZE max size UNLIMITED FILEGROWTH growth increment n 4 2 2使用T SQL语言创建数据库 Createdatabase语句中参数说明 database name 新数据库的名称 ON 指定用来存储数据库数据部分的磁盘文件 数据文件 LOGON 指定显式定义用来存储数据库日志的磁盘文件 日志文件 NAMElogical file name 指定文件的逻辑名称 FILENAME 指定操作系统 物理 文件名称 SIZE 指定文件的大小 MAXSIZE 指定文件可增大到的最大大小 FILEGROWTH 指定文件的自动增量 也可以指定百分比 4 2 1使用ManagementStudio工具创建数据库 例4 1 创建JdglSys数据库 其数据文件初始大小为10MB 最大值UNLIMITED 文件大小增长量为1MB 日志文件初始大小为3MB 最大大小为UMLIMITED 增量为10 文件的位置在默认安装的位置 4 2 1使用ManagementStudio工具创建数据库 具体的T SQL语句为 CREATEDATABASEJdglSysONPRIMARY NAME JdglSys Data FILENAME C ProgramFiles MicrosoftSQLServer MSSQL10 MSSQLSERVER MSSQL DATA JdglSys Data mdf SIZE 10MB MAXSIZE UNLIMITED FILEGROWTH 1 LOGON NAME JdglSys Log FILENAME C ProgramFiles MicrosoftSQLServer MSSQL10 MSSQLSERVER MSSQL DATA JdglSys Log ldf SIZE 3MB MAXSIZE UNLIMITED FILEGROWTH 10 GO 4 2 2使用T SQL语言创建数据库 连接上ManagementStudio工具 点击右上角的 新建查询 出现如下图示 在其中输入该语句 点击 执行 即可 4 2 3查看数据库的相关信息 SQLServer2008R2系统中 可以使用一些系统视图 存储过程查看有关数据库的基本信息 常用的有以下几个 1 sys databases 可以查看该服务器上所有数据库的基本信息 图4 8使用sys databases系统视图查看服务器上的数据库 4 2 3查看数据库的相关信息 2 sp helpdb 可以查看该服务器上所有数据库或指定单个数据库的基本信息 如图4 9所示存储过程查看所有数据库 使用sp helpdbJdglSys命令可以查看单个数据库的详细信息 图4 9使用sp helpdb存储过程查看所有数据库 4 2 3查看数据库的相关信息 使用sp helpdbJdglSys命令可以查看单个数据库的详细信息 图4 10使用sp helpdb存储过程查看单个数据库 4 2 3查看数据库的相关信息 3 sp helpfile 显示当前数据库关联的文件的名称及属性 如图4 11所示 其中 use语句用来改变当前数据库 把JdglSys数据库作为当前查询的数据库 图4 11使用sp helpfile查看相关数据库的文件信息 4 2 3查看数据库的相关信息 4 sp helpfilegroup系统存储过程查看JdglSys数据库中的所有文件组或某一个文件组的信息 如图4 12所示 图4 12使用sp helpfilegroup查看相关数据库的文件组信息 4 2 3查看数据库的相关信息 5 sp spaceused系统存储过程显示由整个数据库保留和使用的磁盘空间 如图4 13所示 图4 13使用sp spaceused查看数据库空间使用状况信息 4 3数据库的修改 数据库创建之后 根据需要可以使用ManagementStudio工具或ALTERDATABASE语句对数据库进行修改 修改操作包括更改数据库名称 扩大数据库 修改数据库文件 管理数据库文件组等 数据库修改的方法 修改数据库的方法也有两种 使用ManagementStudio工具修改数据库 可以使用alterDATABASE语句创建数据库 4 3 1使用ManagementStudio工具修改数据库 1 重命名数据库数据库创建之后 一般情况下不要更改数据库的名称 因为许多应用程序都可能使用了该数据库的名称 数据库名称更改之后 需要修改相应的应用程序 但是 如果确实需要更改数据库名称 可以使用ManagementStudio工具修改数据库很轻松的修改数据库名 比如 修改数据库JdglSys为hotel 4 3 1使用ManagementStudio工具修改数据库 选中 要更名的数据库 右击 重命名 JdglSys可更改为hotel 4 3 1使用ManagementStudio工具修改数据库 2 扩大数据库在SQLServer2008R2系统中 如果数据库的数据量不断膨胀 可以根据需要扩大数据库的尺寸 有3种扩大数据库的方式 第一种方式是设置数据库为自动增长方式 可以在创建数据库时设置 第二种方式是直接修改数据库的数据文件或日志文件的大小 第三种方式是在数据库中增加新的次要数据文件或日志文件 4 3 1使用ManagementStudio工具修改数据库 例如 JdglSys数据库的大小是13MB 如果希望扩大到20MB 其中 数据文件大小15M 日志文件大小5M 有三种方法实现 1 那么可以通过在创建数据库时 设定文件为自动增长的 一旦数据库中的数据量增多 数据文件或日志文件容量不够就会自动扩展增大 此方法不再说明 2 还可以使用修改文件的大小把数据文件改为15M 把日志文件改为5M 介绍该方法 3 还可以使用第三种方法 为该数据库增加一个大小为5MB的数据文件 一个2M的日志文件来达到 介绍该方法 4 3 1使用ManagementStudio工具修改数据库 第二种方法 在ManagementStudio工具 右击 JdglSys 在弹出菜单中选择 属性 就会弹出 数据库属性 对话框 选择 文件 就可以看到该数据库相关的文件 修改其中的数据文件的初始大小为15M 日志文件的初始大小为5M 点击 确定 即可 4 3 1使用ManagementStudio工具修改数据库 第三种方法 在ManagementStudio工具 右击 JdglSys 就会弹出 数据库属性 对话框 直接点击下面的 添加 按钮 在其中添加一行 把逻辑名称修改为JdglSys2 初始大小设为5M 其他不做修改 再点击 添加 按钮 添加一行 把逻辑名称修改为JdglSys log2 文件类型点击下拉菜单 修改为 日志 初始大小设定为2M 点击确定 也能够实现将数据库扩容为20M 4 3 1使用ManagementStudio工具修改数据库 图4 16使用ManagementStudio工具增加文件来扩大数据库 4 3 1使用ManagementStudio工具修改数据库 3 添加文件组在数据库中可以很方便的添加新的文件组 可以在ManagementStudio工具 选中 要添加文件组的数据库 右击 在弹出菜单中选中 属性 选择 文件组 点击下面的 添加 按钮 就可以添加新的文件组 例如在数据库JdglSys中添加文件组SECOND 4 3 2使用T SQL语言修改数据库 数据库的修改操作还可以使用T SQL语句中的alterdatabase来进行修改完成 Alterdatabase语句的语法格式是 ALTERDATABASEdatabase name ADDFILE n TOFILEGROUP filegroup name ADDLOGFILE n REMOVEFILElogical file name WITHDELETE MODIFYFILE MODIFYname new database name ADDfilegroupfilegroup name MODIFYfilegroupfilegroup nameDEFAULT REMOVEfilegroupfilegroup name 4 3 2使用T SQL语言修改数据库 其中 可以是 NAME logical file name FILENAME os file name SIZE size MAXSIZE max size UNLIMITED FILEGROWTH growth increment n 4 3 2使用T SQL语言修改数据库 可以使用AlterDatabase命令来完成数据库修改操作 如 重命名数据库 扩大数据库 修改数据库文件 管理数据库文件组等 重命名数据库使用ALTERDATABASE语句更改数据库名称的语法形式简写如下 ALTERDATABASEdatabase nameModifyName new database name 例4 2 把demodb数据库更名为Studentdb ALTERDATABASEdemodbModifyName Studentdb 4 3 2使用T SQL语言修改数据库 修改数据库文件 例4 3 数据库JdglSys的数据文件JdglSys mdf 的初始分配大小为10MB 请将其大小扩充20MB ALTERDATABASEJdglSysMODIFYFILE NAME JdglSys FILENAME C ProgramFiles MicrosoftSQLServer MSSQL10 50 MSSQLSERVER MSSQL DATA JdglSys mdf SIZE 20MB GO 4 3 2使用T SQL语言修改数据库 添加数据库文件 例4 4 给数据库JdglSys添加一个新的数据文件 逻辑名称为JdglSys3 物理名称及位置为 C ProgramFiles MicrosoftSQLServer MSSQL10 50 MSSQLSERVER MSSQL DATA JdglSys3 ndf 大小为5M 每次增长1M 最大值为15M 增加一个日志文件逻辑名称为JdglSys log3 物理名称及位置 C ProgramFiles MicrosoftSQLServer MSSQL10 50 MSSQLSERVER MSSQL DATA JdglSys log3 ldf 大小为2M 每次增长1M 最大值5M 4 3 2使用T SQL语言修改数据库 ALTERDATABASEJdglSysADDFILE NAME JdglSys3 FILENAME C ProgramFiles MicrosoftSQLServer MSSQL10 50 MSSQLSERVER MSSQL DATA JdglSys3 ndf SIZE 5MB MAXSIZE 15MB FILEGROWTH 1MB GoALTERDATABASEJdglSysADDLOGFILE NAME JdglSys log3 FILENAME C ProgramFiles MicrosoftSQLServer MSSQL10 50 MSSQLSERVER MSSQL DATA JdglSys log3 ldf SIZE 1MB MAXSIZE 5MB FILEGROWTH 1MB Go 4 3 2使用T SQL语言修改数据库 4 3 2使用T SQL语言修改数据库 添加数据文件到指定的文件组 例4 5 给数据库JdglSys添加一个新的数据文件到文件组SECOND 逻辑名称为JdglSys4 物理名称及位置为 C ProgramFiles MicrosoftSQLServer MSSQL10 50 MSSQLSERVER MSSQL DATA JdglSys4 ndf 大小为2M 每次增长1M 最大值为10M 4 3 2使用T SQL语言修改数据库 alterdatabaseJdglSysaddfile NAME JdglSys4 FILENAME C ProgramFiles MicrosoftSQLServer MSSQL10 50 MSSQLSERVER MSSQL DATA JdglSys4 ndf SIZE 1MB MAXSIZE 10MB FILEGROWTH 1MB tofilegroupsecondGo 4 3 2使用T SQL语言修改数据库 4 3 2使用T SQL语言修改数据库 管理数据库文件组 1 添加新的文件组在默认情况下 每一个数据库都有一个默认的PRIMARY文件组 这个PRIMARY文件组是不能被删除的 用户可以定义自己的文件组 使用ALTERDATABASE新建文件组的命令如下 ALTERDATABASEdatabase nameADDFILEGROUPfilegroup name 例4 6 给JdglSys数据库添加一个新的文件组Third ALTERDATABASEJdglSysADDFILEGROUPthird 2 修改数据库默认的文件组默认文件组是指在新增数据库数据文件时 如果没有明确指定 那么该文件将放置在默认文件组中 用户可以使用ALTERDATABASE语句设置指定数据库中的默认文件组 其命令如下 ALTERDATABASEdatabase nameMODIFYFILEGROUPfilegroup nameDEFAULT 4 3 2使用T SQL语言修改数据库 设置默认文件组时 只能将现有的文件组设置为默认文件如图所示 注意 不能在新建文件组的同时设置该文件组为默认文件组 在下图所示的示例中 在新建FORTH文件组的同时将其设置为默认文件组 结果操作失败 4 3 2使用T SQL语言修改数据库 虽然用户可以指定默认文件组 但是系统表等信息总是放在PRIMARY文件组中 如果文件组不再需要了 还可以将该文件组删除 需要注意的是 只有当文件组中不再包含数据文件时 才可以将该文件组删除 4 3 2使用T SQL语言修改数据库 例4 7 删除JdglSys数据库的空文件组Third 语句 ALTERDATABASEJdglSysREMOVEFILEGROUPthird 执行结果如图 4 4数据库的分离和附加 数据库的分离分离数据库是指将数据库从SQLServer2008R2实例中删除 但是该数据库的数据文件和事务日志文件依然保持不变 这样可以将该数据库附加到任何的SQLServer2008R2实例中 数据库的附加当希望将分离后的数据库附加到某个SQLServer2008R2实例中时 可以使用ManagementStudio工具 也可以使用CREATEDATABASE语句 附加数据库时所有的数据文件必须都是可用的 4 4 1数据库的分离 数据库的分离可以使用ManagementStudio工具来执行分离操作 当然也可以使用sp detach db存储过程来执行数据库分离操作 例如 如果想分离JdglSys数据库 使用ManagementStudio工具操作 步骤如下 1 选中JdglSys数据库 右击 在弹出的菜单中选中 任务 子菜单中选择 分离 如图4 25 会弹出 分离数据库 的界面 4 4 1数据库的分离 2 在分离数据库页面上 可以对要分离的数据库做以设定 点击 确定 即可 如下图所示 图4 25分离数据库 4 4 1数据库的分离 也可以使用sp detach db系统存储过程来分离数据库 执行如图4 27所示的命令 图4 27使用系统存储过程分离数据库 4 4 2数据库的附加 如果希望将分离后的JdglSys数据库附加到指定的SQLServer2008R2实例中 在ManagementStudio工具中操作如下 1 在ManagementStudio工具中选中最上端的 数据库 右击 在弹出的菜单中选择 附加 如图 图4 28使用MangementStudio工具附加数据库 4 4 2数据库的附加 2 在弹出的 附加数据库 页面上 点击 添加 按钮 在弹出的 定位数据库文件 对话框中 选择JdglSys数据库的主数据文件JdglSys mdf 点击 确定 如图4 29所示 图4 29选中要附加数据库的主数据文件 4 4 2数据库的附加 3 当选中附加数据库的主数据文件后 其他的数据库相关文件都已经关联在数据库中 如图4 30所示 最后 添加 确定 即可 图4 30要附加数据库的其他数据文件 4 4 2数据库的附加 CREATEDATABASE语句来附加数据库原有的文件 例4 8 写CREATEDATABASE语句附加数据库JdglSys 语句 CREATEDATABASEJdglSysON FILENAME C ProgramFiles MicrosoftSQLServer MSSQL10 MSSQLSERVER MSSQL DATA JdglSys Data mdf FORATTACHGO 4 5数据库的收缩 当用户数据库的数据增长到要超过它的使用空间时 必须增加用户数据库的容量 相反 如果指派给用户数据库过多的存储空间 可以通过缩减或收缩数据库来减少存储空间的浪费 SQLServer2008R2采取预先分配空间的方法来建立数据库的数据文件或日志文件 比如数据文件的空间分配了100MB 而实际上只占用了50MB空间 这样就会造成存储空间的浪费 为此 SQLServer2008R2提供了收缩数据库的功能 允许对数据库中的每个文件进行收缩 删除已经分配但没有使用的页 但注意 不能将整个数据库收缩到比其原始大小还要小 因此 如果数据库创建时的大小为10MB 后来增长到100MB 则将该数据库最小能够收缩到10MB 即使假定已经删除该数据库中所有的数据 数据库的收缩可以收缩整个数据库 也可以收缩单个文件 因日志文件收缩和数据文件差别较大 此处暂不考虑单个日志文件的收缩 4 5数据库的收缩 当用数据库的收缩可以使用MangementStudio工具 也可以使用T SQL语句完成 SQLServer2008R2支持对数据库实行自动收缩和手工收缩 4 5 1使用MangementStudio工具收缩用户数据库 1 自动收缩数据库 设定JdglSys数据库的收缩为自动收缩 1 在ManagementStudio工具中选择JdglSys数据库 右击 该数据库 在弹出的菜单中选择 属性 就会弹出数据库属性页面 2 在弹出数据库属性页面上选中 选项 在其他选项中 自动 的 自动收缩 的值选定为 True 点击 确定 即可 如图4 32自动收缩数据库 图4 32自动收缩数据库 4 5 1使用MangementStudio工具收缩用户数据库 2 手动收缩数据库 设定JdglSys数据库的收缩为手动收缩 1 选中要收缩的数据库 右击 在弹出的快捷菜单中选择 任务 收缩 数据库 如左图所示 2 在弹出收缩数据库界面图上 即可设定手动收缩数据库 如右图 4 5 1使用MangementStudio工具收缩用户数据库 1 自动收缩数据库 设定JdglSys数据库的收缩为自动收缩 1 在ManagementStudio工具中选择JdglSys数据库 右击 该数据库 在弹出的菜单中选择 属性 就会弹出数据库属性页面 2 在弹出数据库属性页面上选中 选项 在其他选项中 自动 的 自动收缩 的值选定为 True 点击 确定 即可 如图4 32自动收缩数据库 图4 32自动收缩数据库 4 5 2使用T SQL语句收缩数据库 在SQLServer2008R2系统中 使用T SQL语句收缩数据库也有3种方式 第1种方式是设置数据库为自动收缩 可以通过设置AUTO SHRINK数据库选项实现 第2种方式是收缩整个数据库的容量 可以通过使用DBCCSHRINKDATABASE命令完成 第3种方式是收缩指定的数据文件 这可以使用DBCCSHRINKFILE命令实现 DBCCSHRINKDATABASE的语句格式如下 DBCCSHRINKDATABASE database name database id 0 target percent 其中 database name database id 0 要收缩的数据库的名称或ID 如果指定0 则使用当前数据库 target percent 数据库收缩后的数据库文件中所需的剩余可用空间百分比 4 5 2使用T SQL语句收缩数据库 例如 将JdglSys数据库的空间缩减至可用剩余空间为60 语句为 DBCCSHRINKDATABASE JdglSys 60 图4 36设定手动收缩文件 4 6数据库删除 当不需要数据库时 可以删除它 即删除数据库和数据库使用的磁盘文件 删除数据库可以通过ManagementStudio工具删除 也可以使用T SQL语句删除数据库 1 使用ManagementStudio工具删除数据库删除数据库的步骤 选中要删除的数据库 右击 在弹出的菜单中选择 删除 就会弹出 删除对象 页面 在其上就是要删除的数据库信息 点击 确定 即可删除该数据库 如图4 38删除数据库 图4 38删除数据库 4 6数据库删除 2 使用T SQL语言删除数据库删除数据库也可以是用DROPDATABASE语句来删除 DROPDATABASE语句的语法是 DROPDATABASEdatabase name n 例如 使用DROPDATABASE语句删除数据库Studentdb 语句为 DROPDATABASEStudentdb 4 7数据库的备份和还原 尽管SQLServer2008R2提供了内置的安全性和数据保护 但是病毒破坏 计算机硬件设备故障以及误操作等很可能导致数据的丢失和破坏 为了能尽快恢复系统的正常工作并把损失降低到最低 必须对系统数据进行备份 以便在需要时能够及时恢复数据 在SQLServer2008R2中 可以备份整个数据库 或者备份一个或多个文件或文件组 所以 SQLServer2008R2支持4种备份形式 完全数据库备份 数据库备份 差异数据库备份 增量备份 事务日志备份 文件或文件组备份 4 7数据库的备份和还原 完全数据库备份 数据库备份是指对数据库的完整备份 包括所有的数据库对象 数据和事物日志中的事务 这种备份方式非常简便易行 通常按照一个常规的时间间隔进行 在还原数据库时 只需用简单的操作即可完成数据库的恢复 恢复后的数据库与备份完成时的数据库状态一致 差异数据库备份 增量备份 是指将最近一次完全数据库备份以来发生的数据变化备份起来 因此差异数据库备份实际上是一种增量数据库备份 对于一个经常进行数据操作的数据库而言 需要在完全数据库备份的基础上 进行差异备份 4 7数据库的备份和还原 事务日志备份 是对数据库发生的事务进行备份 包括从上次事务日志备份 差异备份和完全数据库备份后 数据库已经执行完成的所有事务 它可以在相应的数据库备份的基础上 将数据库恢复到特定的即时点或恢复到故障点时的状态 文件或文件组备份指对数据库文件或文件夹进行备份 但其不像完全数据库备份那样同时也进行事务日志备份 使用该方法可提高数据库恢复的速度 因为仅对遭到破坏的文件或文件组进行恢复 4 7 1数据库备份 在进行备份之前需要先指定或创建备份设备 备份设备是指SQLServer2008R2中存储数据库 事务日志或文件及文件组备份的存储介质 当建立一个备份设备时 需要给其分配一个逻辑名和一个物理名 物理名是操作系统用来标识备份设备的名称 逻辑名是用来标识物理备份设备的别名 逻辑名称永久地存储在SQLServer2008R2的系统表中 使用逻辑名比物理名简单的多 通过创建酒店管理数据库JdglSys的备份来说明数据库的备份 4 7 1数据库备份 1 创建备份设备方法有两种 使用MangementStudio工具和使用系统存储存储sp addumpdevice 此处仅介绍使用MangementStudio工具创建备份设备 步骤如下 1 在 对象资源管理器 窗口中 单击 服务器名称以展开服务器 找到 服务器对象 并点击展开 然后 选中 备份设备 2 选中 备份设备 右击 在弹出的菜单中选择 新建备份设备 打开 备份设备 对话框 如图4 39所示 3 在对话框中 输入要创建的设备名称及目标设备或文件 单击 确定 即可 如图4 40定位备份设备对应的数据库文件所示 4 7 1数据库备份 图4 39 备份设备 对话框 图4 40定位备份设备对应的数据库文件 4 7 1数据库备份 2 备份操作创建好某个备份设备后 就可以将该数据库备份到此设备上 备份操作的方法也有两种 可以在ManagementStudio工具中进行 也可以使用BACKUPDATABASE语句来进行备份 1 使用MangementStudio工具执行备份操作1 在 对象资源管理器 窗口中 单击 服务器名称以展开服务器 找到 数据库 并点击展开 然后 选中要备份的数据库 2 右击选中的备份数据库 在弹出的菜单中选择 任务 级联菜单中选择 备份 将弹出 备份数据库 对话框 如图4 41所示 3 在 备份类型 列表框中 选择类型 完整 创建完整数据库备份之后 可以创建差异数据库备

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论