《03-管理和配置数据库.ppt》由会员分享,可在线阅读,更多相关《03-管理和配置数据库.ppt(77页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章第四章 管理和配置数据库管理和配置数据库 管理和配置数据库1master数据库有什么作用数据库有什么作用 lmaster数据库是SQL Server 中最重要的数据库,存储的是SQL Server 的系统信息,l包括磁盘空间、文件分配和使用、系统级的配置参数、所有的登录账户信息、初始化信息和其他数据库的信息等。l由于master数据库对SQL Server 的重要性,所以禁止用户的直接访问,并要确保在修改之前有完整的备份。3model数据库有什么作用数据库有什么作用 lmodel数据库存储了所有用户数据库和tempdb数据库的模板。它包含有master数据库的系统数据表的子集,这些子集用
2、来创建用户数据库。l用户可以修改model数据库的对象或者权限,这样新创建的数据库就将继承model数据库的对象和权限。4msdb数据库有什么作用数据库有什么作用 lmsdb数据库是SQL Server 代理服务使用的数据库。为警报、作业、任务调度和记录操作员的操作提供存储空间。5tempdb数据库有什么作用数据库有什么作用 ltempdb数据库是一个临时数据库,它为所有的临时表、临时存储过程以及其他的临时操作提供空间。l每次SQL Server 服务器的重新启动都会重新建立tempdb数据库。ltempdb数据库的数据是暂时的,不是永久存储的,每次重启都会导致以前数据的丢失。6为什么需要临时
3、数据库呢为什么需要临时数据库呢lSQL查询语句处理和排序过程中会产生一些临时的中间结果,tempdb数据库就是用来保存这些中间结果的。l保存中间结果的表称为临时表。临时表有以下两种类型。l私有临时表:只能由创建临时表的用户使用,以#临时表名为标识。l全局临时表:可以由所有的用户使用,以#临时表名为标识。74个系统数据库是如何启动的个系统数据库是如何启动的 l通过日志可以发现SQL Server 2005服务器的启动过程中,4个数据库的启动关系如下。l启动master数据库;l启动model数据库;l启动msdb数据库;l清除tempdb数据库;l启动tempdb数据库。9创建用户数据库创建用户
4、数据库 l要开发一个新的数据库应用系统,DBA应根据需要来建立用户数据库。10谁可以创建用户数据库谁可以创建用户数据库 l在缺省情况下,创建数据库的权限默认授予sysadmin(系统管理员)和dbcreator(数据库创建者)服务器角色的成员,被授权的其他用户也可以创建数据库。l创建数据库的用户将成为该数据库的所有者。11如何命名用户数据库如何命名用户数据库 l在一个SQL Server 服务器上,最多可以创建32767个数据库。数据库名称必须遵循SQL Server 2000的标识符命名规则。l名称的长度可以从1128。l名称的第一个字符必须是一个字母或者“_”、“”和“#”中的任意字符。l
5、在中文版SQL Server 中,可以直接使用中文名称。l名称中不能有空格,不允许使用SQL Server的保留字。12数据库的数据库的数据文件数据文件l数据文件包含数据库的启动信息,并用于存储数据。数据文件有以下两种类型。l主要数据文件:主要数据文件只有1个每个数据库都有一个主要数据文件,推荐文件扩展名是.mdf。l次要数据文件:次要数据文件大于等于0个,如果主要数据文件可以包含数据库中的所有数据,那么数据库就不需要次要数据文件。次要数据文件的推荐文件扩展名是.ndf。13数据库的日志文件数据库的日志文件 l日志文件包含恢复数据库所需的所有日志信息l每个数据库必须至少有一个日志文件,但可以不
6、止一个l日志文件的推荐文件扩展名是.ldfl日志文件的存储结构不是页面,而是包含一系列日志记录。14评估数据文件的初始大小评估数据文件的初始大小 lSQL Server 2000采用的是先分配空间后使用的方法。l如果不对文件的初始大小进行评估,就可能导致过小或者过大的空间分配。l过小的空间分配会导致数据库不够用或者需要不停地动态分配。l过大的空间又会产生浪费。l所以在创建用户数据库之前,对数据库的数据文件的大小进行初步评估是一个很好的习惯。15数据文件的主要数据数据文件的主要数据l数据文件主要的数据是表和索引。l在实践过程中,通过评估这两者的数据量就可以评估出数据文件的初始大小。l现有一个高校
7、教学管理数据库,参数如下。16实例实例 l学生人数为4000人,教师人数为1000人,学校共20个系,教学班共60个,每个班平均开设课程20门,每个教师给2个班上课。现要求设计一个SQL Server 2000数据库并评估数据文件的初始大小。17评估数据部分大小评估数据部分大小 l成绩表数据:4000*60*20=480 000数据。l学生表数据:4000=4 000行数据。l授课表数据:1000*60*2=120 000行数据。l总的数据量:480+4+120=604 000行数据。考虑到评估的误差,考虑100 000行的数据。l评估的数据量:704 000行数据。l每行数据的大小:100字
8、节。l总的数据字节数:704 000行*100字节=70.4MB。l这是一个典型的OLTP(联机事务处理)数据库。18评估索引部分大小评估索引部分大小 lSQL Server中有两种类型的索引,即聚集和非聚集索引。l对于聚集索引,索引大小为数据大小的1%以下是一个比较合理的取值。l对于非聚集索引,索引大小为数据大小的15%以下是一个比较合理的取值。19评估索引部分大小评估索引部分大小 l所以如果建立聚集索引:l索引的大小=70.4*1%=0.74MB。l如果建立非聚集索引:l索引的大小=70.4*15%=10.5MB。20评估数据文件的初始大小评估数据文件的初始大小 l将数据部分和索引部分相加
9、就是数据文件的初始大小,约80MB左右。21数据库工作在什么状态数据库工作在什么状态 l选择建立的数据库用鼠标右键单击,在出现的快捷菜单中选择【属性】选项。l【状态】显示了数据库的工作状态。默认情况下为【普通】,表示数据库可以读和写。如果数据库状态显示为【待命】,表示数据库处于只读状态。22数据库当前空间利用率是多少数据库当前空间利用率是多少 l在【常规】选项卡中可以获得的另外一个重要信息是数据库的当前空间利用率。这里的空间不包括日志文件,仅仅是所有的数据文件的空间利用率。l大小:数据库的当前空间大小。l可用空间:数据库的当前可用空间大小。l数据库的空间利用率=(数据库的当前空间大小数据库的当
10、前可用空间大小)/数据库的当前空间大小23怎样添加次要数据文件怎样添加次要数据文件 l换到【数据文件】选项卡。l在【文件名】单元格中输入次要数据文件的逻辑名称l可以在【位置】单元格中修改默认的文件路径。在【分配的空间】单元格中更改初始化大小。24怎样添加多个日志文件怎样添加多个日志文件 l【文件名】单元格中显示了日志文件的逻辑名称,可以在【位置】单元格中修改默认的文件路径。l在【分配的空间】单元格更改初始化大小。25什么是文件组什么是文件组 l文件组是SQL Server 2000数据文件的一种逻辑管理单位,若干个分布在不同的硬盘驱动器上的数据文件可以组织成一个文件组。26建立文件组的目的建立
11、文件组的目的l可以更好地分配和管理存储空间,通过控制在特定磁盘驱动器上放置数据和索引来提高数据库的性能。l由于操作系统对物理文件的大小进行了限制,所以当某个磁盘上的数据文件超过单个文件允许的最大值时,可以使用文件组中存贮在其他驱动器上的数据文件扩充存储空间。27SQL Server 2000支持的文件组支持的文件组 l主文件组(Primary)l主文件组包含主要数据文件和任何没有明确指派给其他文件组的其他数据文件。l系统表的所有页面都分配在主文件组中。l用户定义文件组l用户定义文件组是在CREATE DATABASE或ALTER DATABASE 语句中,使用FILEGROUP关键字指定的文件
12、组。28什么是默认的文件组什么是默认的文件组 l每个数据库都有一个文件组作为默认文件组运行。l当 SQL Server 2000给创建时没有指定文件组的表或索引分配页面时,将从默认文件组中进行分配。l一次只能有一个文件组作为默认文件组。如果没有指定默认文件组,则主文件组是默认文件组。29如何使用文件组如何使用文件组 l大多数数据库在只有单个数据文件和单个事务日志文件的情况下可以很好地运行。l如果使用多个文件,应为附加文件创建第二个文件组,并将其设置为默认文件组。l这样,主文件将仅包含系统表和对象。30合理使用文件组合理使用文件组 提高性能提高性能l若要获得最佳性能,应l在尽可能多的可用本地物理
13、磁盘上创建文件或文件组,l将争夺空间最激烈的对象置于不同的文件组中。l使用文件组以允许将对象放置在特定的物理磁盘上。31合理使用文件组合理使用文件组 提高性能提高性能l将在同一联接查询中使用的不同表置于不同的文件组中。l由于采用并行磁盘输入/输出对联接数据进行搜索,所以性能将得以改善。l将最常访问的表和属于这些表的非聚集索引置于不同的文件组上。l如果文件位于不同的物理磁盘上,由于采用并行输入/输出,所以性能得以提高。32合理使用文件组合理使用文件组 提高性能提高性能l不要将日志文件与其他文件和文件组置于同一物理磁盘上。33如何创建文件组如何创建文件组 l切换到【文件组】选项卡。在【名称】单元格
14、中输入用户创建文件组的名称。l在【数据文件】选项卡中添加数据文件后,在【文件组】单元格就可以选择该数据文件所属的文件组。34如何限制用户对数据库的访问如何限制用户对数据库的访问 l选择【限制访问】复选框可以指定能够访问数据库的用户类型,包括以下两种。ldb_owner、dbcreator或sysadmin的成员:只有这3种角色的成员才可以访问数据库。l单用户:指定一次只能有一个用户访问数据库。l选择【只读】复选框指定用户可以检索数据库中的数据,但不能修改。35什么是数据库的单用户模式什么是数据库的单用户模式 l单用户模式就是数据库同时只允许一个用户使用。l通常是DBA为了对数据库进行维护时,不
15、希望其他用户访问数据库,就需要转入单用户模式。36数据库的故障还原模型数据库的故障还原模型l备份与恢复是DBA为了确保数据库的安全而需要经常执行的操作。l任何备份和恢复措施都很难达到100%的成功,只能是尽可能地减少损失。37数据库的故障还原模型数据库的故障还原模型l对于不同的数据库系统,DBA需要如何备份,利用备份进行恢复能够接受的数据损失可以到什么程度。lSQL Server 2000提供了3种数据库恢复模型供DBA选择,38数据库的故障还原模型数据库的故障还原模型l简单模型l完全模型l大容量日志记录的39大容量日志记录的还原模型大容量日志记录的还原模型l优点:允许高性能大容量复制操作。大
16、容量操作使用最少的日志空间l损失:如果日志损坏,或者自最新的日志备份后发生了大容量操作,则必须重做自上次备份后所做的更改,否则不丢失任何工作l能否恢复到即时点:可以恢复到任何备份的结尾处。随后必须重做更改40简单模型还原模型简单模型还原模型l优点:允许高性能大容量复制操作,收回日志空间,使得空间要求最小l损失:必须重做自最新的数据库或差异备份后所发生的更改l能否恢复到即时点:可以恢复到任何备份的结尾处。随后必须重做更改41完全模型还原模型完全模型还原模型l优点:数据文件丢失或损坏不会导致工作损失。可以恢复到任意即时点(例如,应用程序或用户错误之前)l损失:正常情况下没有。如果日志损坏,则必须重
17、做自最新的日志备份后所发生的更改l能否恢复到即时点:可以恢复到任何即时点42简单恢复还原模型概述简单恢复还原模型概述l简单恢复模型最容易操作,在这种恢复模型下,只能进行完全备份和差异备份,因为事务日志总是被截断,事务日志备份不可用。l一般地,对于一个包含关键性数据的系统,不应该选择简单恢复模型,因为它不能够帮助我们把系统还原到故障点。43简单恢复还原模型概述简单恢复还原模型概述l使用这种恢复模型时,我们最多只能把系统恢复到最后一次成功进行完全备份和差异备份的状态。l进行恢复时,我们首先要恢复最后一次成功进行的完全备份,然后在此基础上恢复差异备份。44完全恢复还原模型概述完全恢复还原模型概述l完
18、全恢复模型具有把数据库恢复到故障点或特定即时点的能力。l对于保护那些包含关键性数据的环境来说,这种模型很理想,但它提高了设备和管理的代价,因为如果数据库访问比较频繁的话,系统将很快产生庞大的事务日志记录。45大容量日志记录还原模型概述大容量日志记录还原模型概述l大容量日志记录恢复模型中,大容量复制操作的数据丢失程度要比完全恢复模型严重。l完全恢复模型记录大容量复制操作的完整日志,但在大容量日志记录恢复模型下,SQL Server只记录这些操作的最小日志,而且无法逐个控制这些操作。l在大容量日志记录恢复模型中,数据文件损坏可能导致要求手工重做工作。46数据库的兼容性数据库的兼容性 l在【兼容性】
19、区域的【级别】下拉列表框中可以设置数据库的兼容性。l该参数主要用于多版本的SQL Server 数据库环境。兼容性级别越低,就越兼容老版本。47如何设置用户访问数据库的权限如何设置用户访问数据库的权限 l切换到【权限】选项卡,在其中可以设置用户/角色对数据库的权限。48分离用户数据库分离用户数据库 lSQL Server 2000服务器由若干个数据库组成,除了master、model和tempdb这3个系统数据库外,其余的数据库都可以从服务器的管理中分离出来,脱离服务器的管理,同时保持数据文件和日志文件的完整性和一致性,这样分离出来的数据库的日志文件和数据文件可以附加到其他SQL Server
20、 2000服务器上构成完整的数据库,附加的数据库和分离时完全一致。49附加用户数据库附加用户数据库 l附加数据库可以很方便地在SQL Server 2000服务器之间利用分离后的数据文件和日志文件组织成新的数据库。l在实际工作中,分离数据库作为对数据基本稳定的数据库的一种备份的办法来使用。50如何分离数据库如何分离数据库l在【企业管理器】的管理目标导航【树】下选择刚建立的数据库上单击鼠标右键,在出现的快捷菜单中选择【所有任务】/【分离数据库】选项。l在【数据库状态】区域可以查看是否有客户机连接到数据库,如果有连接则不能进行分离操作,单击 按钮可以断开客户机的连接。51如何附加数据库如何附加数据
21、库l在管理目标导航【树】下选择【控制台根目录】/【Microsoft SQL Servers】/【SQL Server组】/【MYNETSERVER】/【数据库】选项,用鼠标右键单击,在出现的快捷菜单中选择【所有任务】/【附加数据库】选项。l单击 按钮将要附加数据库的主要数据文件添加到【要附加数据库的MDF文件】文本框中。l单击 按钮可以验证数据文件和日志文件是否一致。l在【附加为】文本框中可以输入附加后的数据库名称。l在【指定数据库所有者】下拉列表框中可以选择数据库的新所有者。52分离和附加数据库分离和附加数据库l分离和附加数据库的操作可以将数据库从一台计算机移到另一台计算机,而不必重新创建
22、数据库l当附加到数据库上时,必须指定主数据文件的名称和物理位置。l主文件包含查找由数据库组成的其他文件所需的信息。l如果存储的文件位置发生了改变,就需要手工指定次要数据文件和日志文件的存储位置 53如何脱机数据库如何脱机数据库 l如果想暂时关闭用户数据库的服务,就可以选择脱机方式。l选择要脱机的数据库后用鼠标右键单击,在出现的快捷菜单中选择【所有任务】/【脱机】选项54如何联机数据库如何联机数据库 l对于暂时关闭的数据库重新启动服务,就可以选择联机操作。l选择要联机的数据库后用鼠标右键单击,在出现的快捷菜单中选择【所有任务】/【联机】选项 55什么是数据库的维护计划什么是数据库的维护计划 l确
23、保数据库能够正常运转是DBA日常非常重要的任务。l作为一名DBA,日常到底要做一些什么样的核心维护操作呢?lSQL Server 2000提供了称为“数据库维护计划”的向导工具,可以帮助DBA轻松胜任数据库的日常核心维护工作。56数据库维护计划的主要工作数据库维护计划的主要工作 l设置新的索引填充因子,重建索引以重新组织数据和索引页面上的数据。l确保了数据页面的数据量和可用空间分布均匀,从而优化数据库的性能。l通过删除空的数据页面压缩数据文件的空间。57数据库维护计划的主要工作数据库维护计划的主要工作 l更新索引的统计信息,以确保查询优化器能够按照新的统计信息进行基于代价的查询优化。l虽然 S
24、QL Server 2000自动定期更新索引的统计信息,但是维护计划可以强制更新统计信息。58数据库维护计划的主要工作数据库维护计划的主要工作 l对数据库内的数据和数据页面执行内部一致性检查,以确保没有损坏的数据。l按照指定的目录、保存时间来自动备份数据库和事务日志文件。59数据库维护计划的主要工作数据库维护计划的主要工作 l设置日志传送。l日志传送允许将事务日志从一个数据库(源)不断地传送到另一个数据库(目的)。l通过使目的数据库与源数据库保持同步,用于建立高可用性环境的备用服务器。l定时自动调度并执行的数据库维护计划需要代理服务的支持。60创建数据库维护计划创建数据库维护计划 l【检查数据
25、库完整性】复选框:运行 DBCC CHECKDB语句检查数据库中用户和系统表及索引的分配及结构完整性。l【包含索引】单选钮:在完整性测试时同时检查数据库中的数据和索引页面。61创建数据库维护计划创建数据库维护计划 l【尝试修复所有小问题】复选框:系统将数据库置于单用户模式下,这样在数据库完整性测试过程中自动尝试修复所检测到的任何小故障。l【排除索引】单选钮:完整性测试时只检查数据库中的数据页面,不检查索引页面。62创建数据库维护计划创建数据库维护计划 l【备份之前执行这些检查】复选框:在备份数据库或事务日志之前执行数据库完整性测试。如果完整性测试检测到不一致,将不进行随后的数据库或事务日志备份
26、。完成设置后单击 按钮。63为什么要收缩数据库为什么要收缩数据库 lSQL Server 2000采取预先分配空间的方法来建立数据库的数据文件或者日志文件l比如数据文件的空间分配了100MB,而实际上只占用了50MB空间,这样就会造成存储空间的浪费。lSQL Server 2000提供了收缩数据库的功能,允许对数据库中的每个文件进行收缩,删除已经分配但没有使用的页。64收缩数据库的最小大小收缩数据库的最小大小 l不能将整个数据库收缩到比其原始大小还要小。l如果数据库创建时的大小为 10 MB,后来增长到100MB,则该数据库最小能够收缩到10MBl不能在备份数据库时收缩数据库,也不能在收缩数据
27、库时创建或备份数据库。65什么是自动收缩和手动收缩什么是自动收缩和手动收缩 lSQL Server 2000支持对数据库实行自动收缩和手工收缩。l在数据库属性的【选项】选项卡中选择【自动收缩】复选框将实现自动收缩。lSQL Server 2000服务器每30分钟检查数据库的空间使用情况。如果发现大量闲置的空间,就会自动缩小数据库的文件大小。l利用企业管理器或DBCC SHRINKDATABASE 和 DBCC SHRINKFILE 可以手工收缩操作。66收缩数据文件和日志文件的不同收缩数据文件和日志文件的不同 l不论是收缩数据文件还是日志文件,都会确实减少物理文件的大小,两者有不同l数据文件可
28、以作为文件组或单独地进行手工收缩。l日志文件收缩分别考虑每个文件,基于整个日志文件进行收缩。l日志文件的收缩将删除非活动的VLF。67收缩数据库的案例收缩数据库的案例 l在【企业管理器】的管理目标导航【树】下选择数据库,单击鼠标右键,在出现的快捷菜单中选择【所有任务】/【收缩数据库】选项。l在【数据库大小】区域可以查看【已经分配的空间】和【可用的空间】,这是决定是否进行收缩的重要依据。68收缩数据库的案例收缩数据库的案例 l在【收缩操作】区域的【收缩后文件中的最大可用空间】文本框中设置收缩数据库后数据文件中的最大可用空间百分比。l选择【在收缩前将页移到文件起始位置】指定在收缩数据库前将页移到文
29、件的起始位置,选择该选项可能会影响性能。l在【调度】区域选择【根据调度收缩数据库】复选框,单击 按钮可以设置自动收缩数据库的时间。69收缩数据库的案例收缩数据库的案例l在【收缩文件】区域单击 按钮,出现【收缩文件】,可以对数据文件或日志文件设置更精细的收缩策略。l在【数据库文件】下拉列表框中可以选择要收缩的数据文件或者日志文件。l在【收缩操作】区域可以设置文件的具体收缩操作,包括是否截断、压缩页以及收缩后的文件大小等。l在【延迟收缩】区域可以设置自动收缩的时间。完成设置后单击 按钮。70收缩数据库的案例收缩数据库的案例l收缩数据库可以删除已经分配但尚未使用的页,从而更好地利用存储空间。l与收缩
30、相对应的是扩充数据库,即修改数据库的属性即可。收缩后的可用空间应该留有一定的空闲空间,这样当数据发生更改时不必额外分配空间。71删除用户数据库删除用户数据库 l在【企业管理器】的管理目标导航【树】下选择数据库,单击鼠标右键,在出现的快捷菜单中选择【删除】选项l出现【删除数据库】界面。l默认选择【为数据库删除备份并还原历史记录】复选框表示将同时删除该数据库的备份。单击 按钮完成删除。l删除数据库时,【企业管理器】将自动删除数据库的日志文件和数据文件。72重命名数据库重命名数据库l在重命名数据库之前l确保没有人使用该数据库l数据库设置为单用户模式l调用存储过程sp_renamedb73删除数据文件
31、删除数据文件l只有数据文件上不存在已有的数据,文件必须完全为空后才能删除数据文件l使用DBCC SHRINKFILE指定EMPTYFILE子句将数据从一个数据文件迁移到同一文件组中的其他文件lDBCC SHRINKFILE(数据文件名,EMPTYFILE)l使用ALTER DATABASE语句删除数据文件lALTER DATABASE 数据库名 REMOVE FILE 数据文件名74删除日志文件删除日志文件l通过将事务日志数据从一个日志文件迁移到另一个日志文件中以删除事务日志文件是不可能的l若要从事务日志文件清除非活动的事务,必须截断或者备份该事务日志l一旦事务日志文件不再包含任何活动或者不活动的事务,该日志文件就可以从数据库中删除75删除日志文件删除日志文件lDBCC SHRINKFILE(日志文件名,TRUNCATEONLY)lALTER DATABASE 数据库名 REMOVE FILE 日志文件名76查看数据库空间使用情况查看数据库空间使用情况lSp_spaceused可以显示行数、保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或者显示由整个数据库保留和使用的磁盘空间l如果没有给定参数,sp_spaceused 则报告整个当前数据库所使用的空间 lSp_spaceusedlSp_spaceused 表名77