Oracle数据库管理
- 格式:pdf
- 大小:2.31 MB
- 文档页数:33
如何高效使用Oracle数据库管理工具第一章:介绍Oracle数据库管理工具的概述1.1 什么是Oracle数据库管理工具Oracle数据库管理工具是指用于管理Oracle数据库的软件工具,包括图形界面和命令行界面。
这些工具提供了各种功能,例如创建、修改和删除数据库对象、执行SQL语句、监控数据库性能等。
1.2 Oracle数据库管理工具的重要性Oracle数据库管理工具是数据库管理员的得力助手,能够帮助管理员更快速、高效地管理数据库。
它们提供了直观的界面和强大的功能,可以使管理员更加便捷地进行各种操作,并且减少了人为错误的发生。
第二章:常用Oracle数据库管理工具2.1 SQL DeveloperSQL Developer是Oracle提供的免费图形化数据库管理工具,它集成了SQL开发、SQL调试和数据库管理等功能。
SQL Developer具有直观的界面和强大的功能,可以方便地进行SQL语句的编写和调试,同时还支持监控和管理数据库。
2.2 Enterprise ManagerEnterprise Manager是Oracle提供的一套基于Web的数据库管理工具,它可以对数据库进行全面管理和监控。
Enterprise Manager具有丰富的功能,包括性能监控、容量规划、备份和恢复等,能够有效提高数据库的可用性和性能。
2.3 SQL*PlusSQL*Plus是Oracle数据库自带的命令行工具,它提供了一套用于执行SQL语句和PL/SQL代码的命令集合。
SQL*Plus可以通过批处理和脚本来批量执行SQL语句,也可以通过自动命令脚本实现自动化管理。
第三章:高效使用Oracle数据库管理工具的方法3.1 熟悉快捷键和命令不管是使用图形界面还是命令行界面,都应该熟悉相应的快捷键和命令。
熟练掌握这些快捷键和命令,可以大大提高操作的效率。
例如,在SQL Developer中,可以使用Ctrl+Enter键快速执行SQL语句。
Oracle数据库常用工具介绍Oracle数据库是一种非常强大和流行的关系型数据库管理系统(RDBMS),它提供了众多的工具和实用程序,用于管理、开发和维护数据库。
这些工具可以帮助用户更轻松地管理和操作Oracle数据库。
下面是一些常用的Oracle数据库工具的介绍。
1. Oracle Enterprise Manager (OEM):Oracle Enterprise Manager是Oracle提供的最重要的工具之一,用于管理和监控Oracle数据库环境。
它提供了一个图形化界面,用于管理多个数据库实例、监视数据库性能、进行故障排除以及执行备份和恢复操作。
2. SQL*Plus:SQL*Plus是Oracle提供的一种命令行工具,它用于与数据库进行交互。
用户可以使用SQL*Plus运行SQL语句、执行存储过程、创建和管理用户以及进行数据导入和导出等操作。
3. SQL Developer:SQL Developer是一个免费的图形化工具,专门为开发人员设计。
它提供了一个友好的界面,用于编写和执行SQL查询、创建和修改数据库对象、调试存储过程以及进行数据导入和导出等操作。
4. Oracle Data Pump:5. Oracle SQL Developer Data Modeler:6. Oracle SQL*Loader:7. Oracle Export/Import Utility:Oracle Export/Import Utility是一个传统的数据导入/导出工具,它用于在不同的Oracle数据库之间进行数据迁移。
它可以导出整个数据库或者指定的数据库对象,并将其导入到另一个数据库中。
8. Oracle Recovery Manager (RMAN):Oracle Recovery Manager是一个备份和恢复工具,它可以用于创建数据库备份、恢复损坏的数据库文件以及执行点恢复等操作。
它可以通过命令行或者Oracle Enterprise Manager进行操作。
oracle的用法Oracle是一个关系型数据库管理系统,常用于企业级应用的数据存储和管理。
以下是Oracle的常见用法:1. 数据库管理:Oracle提供了各种工具和功能来管理和维护数据库,包括创建和管理表、索引、视图、约束等数据库对象,了解数据库的状态和性能,备份和恢复数据库等。
2. 数据查询和操作:通过结构化查询语言(SQL),用户可以对Oracle数据库进行数据查询、插入、更新和删除操作。
可以根据条件过滤数据、排序和聚合数据,实现复杂的查询需求。
3. 数据安全和权限控制:Oracle提供了安全性功能,如用户认证、权限管理和数据加密等,以保护数据的机密性和完整性。
可以为不同用户或用户组分配不同的权限,限制对数据库对象的访问和修改。
4. 数据备份和恢复:通过Oracle的备份和恢复功能,可以定期备份数据库,以防止数据丢失或损坏。
在数据库发生故障时,可以使用备份文件进行数据恢复,保证业务的连续性。
5. 数据复制和集群:Oracle支持数据库的复制和集群部署。
通过数据库复制,可以将数据复制到不同的服务器上,以提高数据的可用性和性能。
通过数据库集群,可以将多个服务器连接在一起,形成一个逻辑上的单一数据库,实现高可用性和负载均衡。
6. 业务应用开发:Oracle提供了各种开发工具和API,可用于开发基于Oracle数据库的企业级应用。
可以使用编程语言(如Java、C#等)和数据库连接库(如JDBC、ODBC等)与Oracle数据库进行交互,实现应用程序的数据存储和访问。
7. 数据分析和报表:Oracle提供了数据分析和报表工具,如Oracle Business Intelligence(BI),以帮助用户从数据库中提取和分析数据。
可以创建统计报表、图表和仪表盘,帮助业务决策和分析。
总之,Oracle作为一种强大的数据库管理系统,通常用于企业级应用的数据存储、管理和分析。
它具有丰富的功能和工具,可满足各种数据管理和应用开发的需求。
oracle数据库管理员操作日志
作为Oracle数据库管理员,操作日志是非常重要的工作之一。
数据库管理员需要定期记录数据库的操作日志,以便追踪和监控数据库的活动,保证数据库的安全性和稳定性。
操作日志记录了数据库管理人员和用户对数据库的操作,包括但不限于数据库的创建、修改、删除,用户的访问和权限变更,以及数据库的备份和恢复等操作。
在Oracle数据库中,可以通过以下几种方式记录操作日志:
1. Oracle数据库自带的日志功能,Oracle数据库提供了详细的日志记录功能,可以通过配置参数来开启日志记录,并设置日志的级别和格式。
管理员可以通过查看数据库的日志文件来了解数据库的操作情况。
2. 使用审计功能,Oracle数据库提供了审计功能,可以对数据库的操作进行审计,并记录到审计日志中。
管理员可以通过配置审计策略来监控数据库的操作,包括对特定对象的操作、特定用户的操作等。
3. 使用第三方工具,除了Oracle数据库自带的日志功能外,
还可以使用第三方的监控和日志记录工具来记录数据库的操作日志。
这些工具通常提供了更丰富的功能和更直观的界面,可以帮助管理
员更方便地管理和分析数据库的操作日志。
无论使用哪种方式记录操作日志,数据库管理员都需要定期对
日志进行分析和归档,以便及时发现潜在的问题并采取相应的措施。
此外,数据库管理员还需要遵守相关的法律法规和公司政策,确保
操作日志的安全和完整性,防止日志被篡改或删除。
操作日志对于
数据库的安全和稳定性至关重要,因此数据库管理员需要高度重视
操作日志的记录和管理工作。
Oracle数据库管理员(DBA)手册涵盖了广泛的主题,包括数据库安装、配置、性能调优、备份和恢复、安全性等方面。
以下是一个简要的Oracle数据库管理员手册的大纲,其中包含了一些主要的主题:1. 数据库基础知识和架构:- Oracle数据库的体系结构-数据库实例和数据库-表空间和数据文件2. 数据库安装和配置:- Oracle数据库软件的安装-创建数据库-配置监听器-网络配置3. 数据库对象管理:-表和索引的创建、修改和删除-视图、存储过程和触发器的管理-序列的创建和管理-同义词的使用4. 用户和权限管理:-用户账号的创建和管理-角色和权限管理-访问控制和安全性5. 性能调优:- SQL调优技术-索引优化-表分区和分表-优化查询计划6. 备份和恢复:-数据库备份策略-使用RMAN进行备份和恢复-数据库点恢复和时间点恢复7. 监控和诊断:-使用AWR和ADDM进行性能分析-查询V$视图和动态性能视图-警告和错误日志的管理8. 高可用性和容灾:-数据库复制和数据保护- RAC(Real Application Clusters)配置-数据库故障转移和恢复9. 安全性:-用户身份验证和访问控制-安全审计和监视-数据加密和解密10. 数据库升级和迁移:- Oracle版本升级-数据库迁移和导入/导出11. 常规维护任务:-统计信息收集和重建索引-表空间管理-定期任务和计划任务12. 实用工具:- SQL*Plus和SQLcl- Oracle Enterprise Manager(OEM)-数据库配置助手(DBCA)和其他实用工具13. 文档和资源:- Oracle文档和在线资源-社区和论坛这个大纲只是一个简单的概述,实际的Oracle数据库管理员手册可能更为详细,根据组织的需求和数据库的规模可能会有所不同。
要深入了解每个主题,建议参考Oracle官方文档和相应版本的手册。
Oracle的文档通常提供了详细的指导和最佳实践。
Oracle数据库是一种关系型数据库管理系统,它采用了客户/服务器模式,可以在各种不同的评台上运行。
其运行机制和基本原理是数据库领域的重要内容,我们将通过以下几个方面来详细介绍。
1. Oracle数据库的体系结构Oracle数据库的体系结构包括实例和数据库。
实例是由一个或多个进程组成,负责处理客户端的请求和管理数据库的物理结构;数据库是由数据文件组成,用来存储数据和控制文件。
实例和数据库之间通过监听器进行通信,客户端通过监听器访问数据库。
2. Oracle数据库的运行原理Oracle数据库的运行原理包括数据库的启动和关闭过程。
数据库的启动过程包括加载实例和数据库文件、分配内存、打开数据库并监听客户端请求;数据库的关闭过程包括关闭实例和数据库文件、释放内存、关闭数据库并停止监听器。
3. Oracle数据库的存储结构Oracle数据库的存储结构包括内存结构和磁盘结构。
内存结构包括数据库SGA和PGA,SGA用来存储数据库的共享数据和控制信息,PGA用来存储客户端的私有数据;磁盘结构包括数据文件、控制文件和日志文件,数据文件用来存储数据库的数据,控制文件用来记录数据库的元数据,日志文件用来记录数据库的事务日志。
4. Oracle数据库的并发控制Oracle数据库的并发控制包括锁和多版本并发控制。
锁是用来控制对共享资源的并发访问,包括共享锁、排他锁和意向锁;多版本并发控制是一种乐观并发控制方式,每个事务都有自己的版本,可以并发访问相同的数据,不会相互影响。
5. Oracle数据库的恢复机制Oracle数据库的恢复机制包括日志文件和闪回技术。
日志文件用来记录数据库的操作,包括重做日志和撤销日志,可以用来恢复数据库的状态;闪回技术可以回滚数据库到历史状态,包括闪回查询和闪回表。
通过以上内容的介绍,我们对于Oracle数据库的运行机制和基本原理有了一定的了解。
Oracle数据库作为一种成熟的关系型数据库管理系统,其运行机制和基本原理对于数据库管理员和开发人员来说是非常重要的,可以帮助他们更好地理解、管理和优化数据库。
oracle 使用方法Oracle是一种关系数据库管理系统,被广泛应用于企业级应用程序和大型数据处理环境中。
它提供了强大的数据管理和查询功能,同时还具备高可用性、可扩展性和安全性等特点。
本文将介绍Oracle 的使用方法,以帮助读者更好地理解和应用这一数据库管理系统。
一、安装和配置Oracle要使用Oracle,首先需要将其安装在计算机上,并进行相应的配置。
安装过程通常比较复杂,需要按照官方文档或指南进行操作。
在安装完成后,还需要配置数据库实例、监听程序和网络连接等相关参数,以确保Oracle能够正常运行。
二、创建和管理数据库安装完成后,可以使用Oracle提供的工具或命令行界面创建数据库。
在创建数据库时,需要指定数据库的名称、大小、字符集和存储路径等信息。
创建数据库后,还需要进行必要的管理操作,如备份和恢复、性能优化和安全管理等。
三、数据模型和表设计在Oracle中,数据以表的形式进行组织和存储。
在设计表之前,需要根据应用程序的需求和业务逻辑确定数据模型。
数据模型可以使用实体关系图或其他建模工具进行表示,以帮助开发人员理清表与表之间的关系。
在设计表时,需要考虑数据类型、大小、约束和索引等因素,以确保数据的完整性和查询性能。
四、数据操作和查询一旦数据库和表都创建好了,就可以开始进行数据操作和查询了。
Oracle提供了丰富的SQL语句和函数,可以用于插入、更新、删除和查询数据。
在进行数据操作时,需要注意事务的处理和并发控制,以确保数据的一致性和并发性能。
在进行查询时,可以使用索引、视图和存储过程等技术,来提高查询效率和灵活性。
五、性能优化和调优Oracle具有强大的性能优化和调优功能,可以帮助用户提高数据库的性能和响应速度。
在进行性能优化时,可以使用Oracle提供的性能监视和诊断工具,如AWR报告和SQL Trace等,来分析和优化SQL查询语句。
此外,还可以通过调整数据库参数和优化数据库设计来提高整体性能。
oracle的dbms方法Oracle的DBMS方法DBMS(数据库管理系统)是一种用于管理数据库的软件系统。
Oracle是一家全球领先的数据库技术提供商,其DBMS方法被广泛应用于企业级数据库管理。
本文将介绍Oracle的DBMS方法,包括其功能、特点和应用。
一、DBMS方法的功能1. 数据库创建与管理:Oracle的DBMS方法可以帮助用户创建和管理数据库。
用户可以使用DBMS方法定义数据库的结构、存储数据和设置安全权限等。
2. 数据查询与检索:DBMS方法可以通过SQL语言实现对数据库的查询和检索。
用户可以根据自己的需求使用DBMS方法编写SQL 语句,从数据库中获取所需的数据。
3. 数据库事务管理:DBMS方法支持数据库事务的管理。
用户可以使用DBMS方法开始、提交或回滚事务,确保数据库的一致性和完整性。
4. 数据库备份与恢复:DBMS方法提供了数据库备份和恢复的功能。
用户可以使用DBMS方法定期备份数据库,以防止数据丢失,同时可以使用DBMS方法恢复备份数据。
5. 数据库性能优化:DBMS方法可以帮助用户优化数据库的性能。
用户可以使用DBMS方法对数据库进行性能分析,识别潜在的性能问题,并采取相应的措施进行优化。
二、DBMS方法的特点1. 高可靠性:Oracle的DBMS方法具有高度的可靠性,可以确保数据库的稳定运行。
它支持数据的持久化存储,可以防止数据丢失或损坏。
2. 高安全性:DBMS方法提供了严格的安全机制,保护数据库免受未经授权的访问。
用户可以使用DBMS方法设置用户权限,限制对数据库的访问和操作。
3. 高扩展性:DBMS方法具有良好的可扩展性,可以满足不断增长的数据存储需求。
用户可以使用DBMS方法添加新的数据表、字段和索引等,以适应业务发展的需要。
4. 多用户支持:DBMS方法支持多用户访问数据库,可以实现并发操作。
它可以管理并控制多个用户之间的数据访问和共享,确保数据的一致性和完整性。
主要内容第6章数据库管理返回总目录↵创建数据库↵ 数据库属性设置↵ 浏览数据库↵ 更改数据库↵ 删除数据库↵ 压缩数据库↵ 移动数据库↵ 数据库维护计划↵ 系统数据库↵实例数据库管理数据库及其对象是SQL Server 的主要任务本章将介绍使用SQL Server 来管理和操作数据库的基本知识6.1创建数据库6.1.1 文件与文件组在SQL Server中数据库是由数据库文件和事务日志文件组成的一个数据库至少应包含一个数据库文件和一个事物日志文件1数据库文件Database File数据库文件是存放数据库数据和数据库对象的文件一个数据库可以有一个或多个数据库文件一个数据库文件只属于一个数据库当有多个数据库文件时有一个文件被定义为主数据库文件Primary Database File扩展名为mdf它用来存储数据库的启动信息和部分或全部数据一个数据库只能有一个主数据库文件其它数据库文件被称为次数据库文件Secondary Database File扩展名为ndf用来存储主文件没存储的其它数据采用多个数据库文件来存储数据的优点体现在数据库文件可以不断扩充而不受操作系统文件大小的限制可以将数据库文件存储在不同的硬盘中这样可以同时对几个硬盘做数据存取提高了数据处理的效率对于服务器型的计算机尤为有用2事务日志文件Transaction Log File事务日志文件是用来记录数据库更新情况的文件扩展名为ldf例如使用INSERTUPDATE DELETE等对数据库进行更改的操作都会记录在此文件中而如SELECT等对数据库内容不会有影响的操作则不会记录在案一个数据库可以有一个或多个事务日志文件SQL Server中采用Write-Ahead提前写方式的事务即对数据库的修改先写入事务日志中再写入数据库其具体操作是系统先将更改操作写入事务日志中再更改存储在计算机缓存中的数据为了提高执行效率此更改不会立即写到硬盘中的数据库而是由系统以固定4的时间间隔执行CHECKPOINT命令将更改过的数据批量写入硬盘SQL Server有个特点它在执行数据更改时会设置一个开始点和一个结束点如果尚未到达结束点就因某种原因使操作中断则在SQL Server重新启动时会自动恢复已修改的数据使其返回未被修改的状态由此可见当数据库破坏时可以用事务日志恢复数据库内容3文件组File Group文件组是将多个数据库文件集合起来形成的一个整体每个文件组有一个组名与数据库文件一样文件组也分为主文件组Primary File Group和次文件组Secondary File Group一个文件只能存在于一个文件组中一个文件组也只能被一个数据库使用主文件组中包含了所有的系统表当建立数据库时主文件组包括主数据库文件和未指定组的其它文件在次文件组中可以指定一个缺省文件组那么在创建数据库对象时如果没有指定将其放在哪一个文件组中就会将它放在缺省文件组中如果没有指定缺省文件组则主文件组为缺省文件组!事务日志文件不属于任何文件组6.1.2 用Enterprise Manager 创建数据库在Enterprise Manager 中可以按下列步骤来创建数据库1单击工具栏中的图标或在服务器的Databases 文件夹或其下属数据库图标上单击右键选择New Database…选项即会出现如图6-1所示的对话框2指定数据库的名称和编码方式如图6-1所示图6-1 创建数据库对话框3点击Transaction Log 页框指定数据库文件的名称存储位置初始容量大小和所属文件组如图6-2所示4进行数据库文件大小扩充方式和容量限制设置如图6-2所示5点击Transaction Log 页框指定事务日志文件的名称存储位置和初始容量大小如图6-3所示6进行事务日志文件大小扩充方式和容量限制设置如图6-3所示指定数据库名称选择编码方式图6-2创建数据库文件图6-3 创建数据库事务日志文件7单击确定按钮则建新数据库!数据库的名称最长为128个字符且不区分大小写指定文件的初始容量指定文件存放位置! 在此指定的文件容量是以MB 为单位的数据库文件的最小容量为1MB 最大容量为 1,048,516TB 这么大的硬盘还没出世事务日志文件的最小容量为1MB一个服务器在理论上可以管理32,767个数据库6.1.3 用CREATE DATABASE 命令创建数据库CREATE DATABASE 命令语法如下CREATE DATABASE database_name[ ON [PRIMARY] [ <filespec> [,...n] ] [, <filegroupspec> [,...n] ] ] [ LOG ON { <filespec> [,...n]} ] [ COLLATE collation_name ] [ 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]各参数说明如下database_name数据库名称不能超过128个字符由于系统会在其后添加5个字符的逻辑后缀因此实际能指定的字符数为123个ON指明数据库文件和文件组的明确定义PRIMARY指明主数据库文件或主文件组主文件组的第一个文件被认为是主数据库文件其中包含了数据库的逻辑启动信息和数据库的系统表如果没有PRIMARY 项则在CREATE DATABASE 命令中列出的第一个文件将被默认为主文件filespec文件说明n占位符表明可以指定多个类似的对象filegroupspec 文件组说明LOG ON指明事务日志文件的明确定义如果没有LOG ON选项则系统会自动产生一个文件名前缀与数据库名相同容量为所有数据库文件大小1/4的事务日志文件COLLATE指明数据库使用的校验方式collation_name可以是Windows的校验方式名称也可以是SQL校验方式名称如果省略此子句则数据库使用当前的SQL Server设置的校验方式FOR LOAD此选项是为了与SQL Server 7.0以前的版本兼容而设定的读者可以不用管它REST-ORE命令可以更好地实现此功能FOR ATTACH用于附加已经存在的数据库文件到新的数据库中而不用重新创建数据库文件使用此命令必须指定主文件被附加的数据库文件的代码页Code Page和排序次序SortOrder必须和目前SQL Server所使用的一致建议使用sp_attach_db系统存储过程来代替此命令关于sp_attach_db系统存储过程的用法请参见本章的第7节移动和复制数据库CREATE DATABASE FOR ATTACH命令只有在指定的文件数目超过16个时才必须使用NAME指定文件在SQL Server中的逻辑名称当时用FOR ATTACH选项时就不需要使用NAME选项了FILENAME指定文件在操作系统中存储的路径名和文件名称SIZE指定数据库的初始容量大小如果没有指定主文件的大小则SQL Server默认其与模板数据库中的主文件大小一致其它数据库文件和事务日志文件则默认为 1 MB指定大小的数字size可以使用KB MB GB和TB后缀默认的后缀是MB size中不能使用小数其最小值为512 KB默认值是1MB主文件的size不能小于模板数据库中的主文件关于模板数据库的介绍请参见本章最后一节MAXSIZE指定文件的最大容量如果没有指定MAXSIZE则文件可以不断增长直到充满磁盘UNLIMITED指明文件无容量限制FILEGROWTH指定文件每次增容时增加的容量大小增加量可以为确定的以KB MB作后缀的字节数或以%作后缀的被增容文件的百分比来表示缺省后缀为MB如果没有指定FILEG-ROWTH则缺省值为10%每次扩容的最小值为64 KBCREATE DATABASE命令在SQL Server中执行时使用模板数据库来初始化新建的数据库使用FOR ATTACH选项时除外在模板数据库中的所有用户定义的对象和数据库的设置都会被复制到新数据库中每个数据库都有一个所有者Database Owner简称DBO创建数据库的用户被默认为数据库所有者可以通过sp_changedbowner系统存储过程来更改数据库所有者例6-1创建一个与上节中用Enterprise Manager创建的数据库类似的数据库create database mydbon primary( name = mydb_data1,filename = 'd:\sql data\mydb_data1.mdf',size = 1,maxsize =unlimited,filegrowth = 10% ),filegroup data2( name = mydb_data2,filename = 'd:\sql data\mydb_data2.ndf',size = 2,maxsize =100,filegrowth = 1 ),filegroup data3( name = mydb_data3,filename = 'd:\sql data\mydb_data3.ndf',size = 3,maxsize =50,filegrowth = 500kb )log on( name = 'mydb_log1',filename = 'd:\sql data\mydb_log1.ldf',size = 1mb,maxsize =25mb,filegrowth = 10% ),( name = 'mydb_log2',filename = 'd:\sql data\mydb_log2.ldf',size = 1mb,maxsize =10mb,filegrowth = 10% ),( name = 'mydb_log3',filename = 'd:\sql data\mydb_log3.ldf',size = 1mb,maxsize =5mb,filegrowth = 512kb )运行结果如下-------------------- --------------------The CREATE DATABASE process is allocating 1.00 MB on disk 'mydb_Data1'.The CREATE DATABASE process is allocating 2.00 MB on disk 'mydb_Data2'.The CREATE DATABASE process is allocating 3.00 MB on disk 'mydb_Data3'.The CREATE DATABASE process is allocating 1.00 MB on disk 'mydb_Log1'.The CREATE DATABASE process is allocating 1.00 MB on disk 'mydb_Log2'.The CREATE DATABASE process is allocating 1.00 MB on disk 'mydb_Log3'.6.2数据库属性设置在创建数据库以后还可以设置其属性以更改创建时的某些设置和创建时无法设置的属性用右键单击所要设置属性的数据库从快捷菜单中选择选项属性Properties就会出现如图6-4所示的数据库属性设置对话框图6-4 数据库属性设置对话框在General页框中可以看到数据库的状态所有者创建时间容量备份维护等属性信息在Data Files和Transaction Log页框中可以看到类似于图6-2和图6-3的对话框此时可以像在创建数据库时那样重新指定数据库文件和事务日志文件的名称存储位置初始容量大小等属性在Filegroups页框中如图6-5所示可以添加或删除文件组不过如果文件组中有文件则不能删除必须先将文件移出文件组图6-5 文件组设置对话框在Options选项页框中可以设置数据库的许多属性如图6-6所示在图6-6中选中的选项都是系统默认为True的图6-6 数据库选项设置各选项选中时的含义如下Restrict access访问限制Members of db_owner, dbcreator, or sysadmin只有数据库所有者数据库创建者和系统管理员才有权使用数据库Single user数据库在同一时间只能供一个用户使用Read only数据库只读即可查看而不可修改ANSI Null default允许在数据库表的列中输入Null 值Recursive triggers允许触发器递归调用SQL Server 设定的触发器递归调用的层数上限为32Select into / bulk copy 允许使用SELECT INTO 或BCP WRITETEXTUPDATETEXT 命令向表中大量插入数据用上述命令插入数据在事务日志中不会有记录在开发数据库时时常将此选项设置为TrueTruncate log on checkpoint当执行CHECKPOINT 命令时如果事务日志文件超过其大小的70%则将其内容清除在开发数据库时时常将此选项设置为TrueTorn page detection自动检测有损坏的页Torn Page页Page 是数据库内容的基本存储单位每个页的大小为8KB 由于SQL Server 对页的读写单位是大小为512字节的扇区Sector当每个页的第一个扇区被成功写入后SQL Server 就认为此页已经被成功写入了因此如果写完第一个扇区后发生突发事件导致写入中断就会产生有损坏的页需要通过备份来恢复数据库Auto close当数据库中无用户时自动关闭此数据库并将所占用资源交还给操作系统对那些不间断使用的数据库不要使用此选项否则会额外增加开关数据库的运行开销得不偿失Auto shrink 定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时系统将会自动缩减文件使其未用空间等于25%当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将Truncate log on checkpoint 选项设为True 时才能进行Auto create statistics启动数据库列的使用统计以提供给查询优化器Query Optimizer使用Auto update statistics当数据库表更新时更新所有的统计Use quoted identifiers 标识符必须用双引号扩起来且可以不遵循Transact-SQL 命名标准Compatibility Level数据库兼容性级别可以指定与何种版本以前的数据库兼容其它数据库选项还有一些数据库选项没有被显示出来如ANSI warning merge publish offlinepublished subscribed 等这些选项在一般情况下最好由SQL Server 自己来控制它实在需要更改时可以通过Sp_dboption 系统存储过程来实现系统存储过程Sp_dboption 用于显示或更改数据库选项但它不能在系统数据库master 或tempdb 数据库中使用其语法如下sp_dboption [[@dbname =] 'database_name'][, [@optname =] 'option_name'][, [@optvalue =] 'value']各参数说明如下[@dbname =] 'database'指定所要操作的数据库名[@optname =] 'option_name'指定要显示或修改的数据库选项可以不输入选项的全名如果省略此项就会列出所有设定为True的选项[@optvalue =] 'value'指定选项的值value的值可以为True False或On Off例6-2显示mytest数据库的选项状态exec sp_dboption 'mytest'运行结果如下The following options are set:-----------------------------------select into/bulkcopytrunc. log on chkpt.autoshrinkauto create statisticsauto update statistics例6-3设置mytest数据库的offline状态为True让一般用户无法使用此数据库exec sp_dboption 'mytest', 'offline', 'true'运行结果如下sp_dboption command succeeded.∀系统管理员可以在模板数据库model中执行Sp_dboptin命令来设置数据库选项这将改变 所有新建数据库的初始选项设置在Permissions页框中可以设定用户对此数据库的权限如图6-7所示有关权限设置的详细介绍请参见安全性与用户管理章节图6-7 数据库权限设置6.3浏览数据库6.3.1 用Enterprise Manager浏览数据库SQL Server提供了目录树的浏览方式使得浏览数据库信息非常方便快捷在Enterprise Manager中单击要浏览的数据库文件夹就可在右边的任务板Task pad窗口中看到数据库的基本信息General表和索引信息Tables & Indexes数据库文件的配置情况Space Allocated如图6-8所示在打开数据库文件夹目录树后可以选择各种数据库对象进行信息浏览图6-8 浏览数据库6.3.2 用系统存储过程显示数据库信息SQL Server提供了许多很有用的系统存储过程可以用它们来得到许多从EnterpriseManager界面中所不易或不能看到的信息有关存储过程的详细介绍请参见存储过程章节读者如果目前不了解存储过程也不要紧可以把它当作函数或命令来用1用系统存储过程显示数据库结构可以使用系统提供的系统存储过程Sp_helpdb来显示数据库结构其语法如下sp_helpdb [[@dbname=] 'name']使用Sp_helpdb系统存储过程可以显示指定数据库的信息如果不指定[@dbname=]'name'子句则会显示在master.dbo.sysdatabases表中存储的所有数据库信息命令执行成功会返回0否则返回1例6-4显示上一节中创建的mydb数据库的信息exec sp_helpdb mydb运行结果如下name db_size owner dbid created status compatibility_level -----------------------------------------------------------------------------------------------------------------------------mydb 9.00MB XUJIN\Administrator 9 Sep 8 2000 Status=ONLINE, (80)name fileid filename filegroup size maxsize growth usage --------------------------------------------------------------------------------------------------------------------------------mydb_Data1 1 d:\SQL Data\mydb_Data1.mdf PRIMARY 1024KB Unlimited 10% data onlymydb_Log1 2 d:\SQL Data\mydb_Log1.ldf NULL 1024KB 25600KB 10% log only mydb_Data2 3 d:\SQL Data\mydb_Data2.ndf data2 2048KB 102400KB 1024KB data only mydb_Data3 4 d:\SQL Data\mydb_Data3.ndf data3 3072KB 51200KB 512KB data onlymydb_Log2 5 d:\SQL Data\mydb_Log2.ldf NULL 1024KB 10240KB 10% log only mydb_Log3 6 d:\SQL Data\mydb_Log3.ldf NULL 1024KB 5120KB 512KB log only2用系统存储过程显示文件信息可以使用系统提供的系统存储过程Sp_helpfile来显示当前数据库中的文件信息其语法如下sp_helpfile [[@filename =] 'name']如果不指定文件名称则会显示当前数据库中所有的文件信息命令执行成功会返回0否则返回1例6-5显示mydb数据库中的mydb_data1文件的信息use mydbexec sp_helpfile mydb_data1运行结果如下name filename filegroup size maxsize growth usage---------------------------------------------------------------------------------------------------------------mydb_Data1 d:\SQLData\mydb_Data1.mdf PRIMARY 1024KB Unlimited 10% data only3用系统存储过程显示文件组信息可以使用系统提供的系统存储过程Sp_helpfilegroup来显示当前数据库中文件组信息其语法如下sp_helpfilegroup [[@filegroupname =] 'name']如果不指定文件组名称则会显示当前数据库中所有的文件组命令执行成功会返回0否则返回1例6-6显示mydb数据库中的data2文件组的信息use mydbexec sp_helpfilegroup data2运行结果如下groupname groupid filecount--------------------------------------------------------------------- ------- -----------data2 2 1file_in_group fileid filename size maxsize growth------------------------------------------------------------------------------------------------------mydb_Data2 3 d:\SQLData\mydb_Data2.ndf 2048KB 102400KB 1024KB例6-7显示mydb数据库中的所有文件组use mydbexec sp_helpfilegroup运行结果如下groupname groupid filecount----------------------------------------------------------------PRIMARY 1 1data2 2 1data3 3 16.4更改数据库6.4.1 更改文件及其属性可以在Enterprise Manager中利用数据库属性设置更改数据库文件和事务日志文件也可以用ALTER DATABASE命令来更改数据库ALTER DATABASE命令可以增加或删除数据库中的文件也可以修改文件的属性应注意的是只有数据库管理员Database Administration简称DBA或具有CREATE DATABASE权限的数据库所有者才有权执行此命令ALTER DATABASE命令的语法如下ALTER DATABASE databasename{ ADD FILE <filespec> [,...n] [TO FILEGROUP filegroup_name]| ADD LOG FILE <filespec> [,...n]| REMOVE FILE logical_file_name [WITH DELETE]| ADD FILEGROUP filegroup_name| REMOVE FILEGROUP filegroup_name| MODIFY FILE <filespec>| MODIFY NAME =new_dbname| MODIFY FILEGROUP filegroup_name{filegroup_property | NAME = new_filegroup_name }| SET < optionspec > [ ,...n ] [ WITH < termination > ]| COLLATE < collation_name > }<filespec> ::= ( NAME = logical_file_name[ , NEWNAME = new_logical_name ][ , FILENAME = 'os_file_name' ][ , SIZE = size ][ , MAXSIZE = { max_size | UNLIMITED } ][ , FILEGROWTH = growth_increment ] )< optionspec > ::= < state_option >| < cursor_option >| < auto_option >| < sql_option >| < recovery_option >各参数说明如下ADD FILE指定要增加的数据库文件TO FILEGROUP指定要增加文件到哪个文件组ADD LOG FILE指定要增加的事务日志文件REMOVE FILE从数据库系统表中删除指定文件的定义并且删除其物理文件文件只有为空时才能被删除ADD FILEGROUP指定要增加的文件组REMOVE FILEGROUP从数据库中删除指定文件组的定义并且删除其包括的所有数据库文件文件组只有为空时才能被删除MODIFY FILE修改指定文件的文件名容量大小最大容量文件增容方式等属性但一次只能修改一个文件的一个属性使用此选项时应注意在文件格式filespec中必须用NAME明确指定文件的名称如果文件大小是已经确定了的那么新定义的size必须比当前的文件容量大FILENAME只能指定在tempdb database中存在的文件并且新的文件名只有在SQL Server重新启动后才发生作用MODIFY FILEGROUP filegroup_name filegroup_property修改文件组属性filegroup_property filegroup_property可取值为✦READONLY指定文件组为只读主文件组Primary File Group不能指定为只读只有对数据库有独占访问权限的用户才可以将一个文件组标志为只读✦READWRITE使文件组为可读写只有对数据库有独占访问权限的用户才可以将一个文件组标志为可读写✦DEFAULT指定文件组为默认文件组一个数据库中只能有一个默认文件组SET设置数据库属性<state_option>控制用户对数据库访问的属性选项如SINGLE_USER | RESTRICTED_USER |MULTI_USER OFFLINE | ONLINE READ_ONLY | READ_WRITE等<cursor_option>控制游标的属性选项如CURSOR_CLOSE_ON_COMMIT ON | OFF CURSOR_DEFAULTLOCAL | GLOBAL等<auto_option>控制数据库的自动属性选项如AUTO_CLOSE ON | OFF AUTO_CREATE_STATIS-TICS ON | OFF AUTO_SHRINK ON | OFF AUTO_UPDATE_STATISTICS ON | OFF等<sql_option>控制ANSI一致性的属性选项如ANSI_NULL_DEFAULT ON | OFF ANSI_NULLSON | OFF ANSI_PADDING ON | OFF RECURSIVE_TRIGGERS ON | OFF等<recovery_options>控制数据库恢复的选项如RECOVERY FULL | BULK_LOGGED | SIMPLE TORN_PAGE_DETECTION ON | OFF等其余的参数如NAME FILENAME SIZE MAXSIZE UNLIMITED FILEGROWTH 等与CREATE DATABASE命令中的含义相同个别没讲到的参数将在后面的章节中介绍例6-8添加一个包含两个文件的文件组到mydb数据库中去并将此文件组指定为默认文件组alter database mydbadd filegroup data4/* 要首先定义文件组然后才能添加文件到文件组中 */alter database mydbadd file( name = mydb_data4,filename = 'd:\sql data\mydb_data4.ndf',size = 2mb,maxsize =100mb,filegrowth =5%),( name = mydb_data5,filename = 'd:\sql data\mydb_data5.ndf',size = 2mb,maxsize =50mb,filegrowth =5%)to filegroup data4alter database mydbmodify filegroup data4 default运行结果如下Extending database by 2.00 mb on disk 'mydb_data4'.Extending database by 2.00 mb on disk 'mydb_data5'.The filegroup property 'default' has been set.例6-9添加两个事务日志文件到mydb数据库中去alter database mydbadd log file( name = mydb_log4,filename = 'd:\sql data\mydb_log4.ndf',size = 1mb,maxsize =50mb,filegrowth = 5%),( name = mydb_log5,filename = 'd:\sql data\mydb_log5.ndf', size = 1mb, maxsize = 50mb, filegrowth = 5%)go运行结果如下Extending database by 1.00 MB on disk 'mydb_Log4'.Extending database by 1.00 MB on disk 'mydb_Log5'.例6-10修改mydb 数据库中的mydb_Data5文件增容方式为一次增加2MBalter database mydb modify file( name = mydb_log5, filegrowth = 2mb)运行结果如下The command(s) completed successfully.例6-11删除mydb 数据库中的事务日志文件mydb_Log5alter database mydb remove file mydb_log5运行结果如下The file 'mydb_Log5' has been removed.6.4.2 更改数据库名重命名数据库需要使用系统存储过程Sp_renamedb 其语法如下sp_renamedb [@old_name =] 'old_name', [@new_name =] 'new_name'例6-12更改mydb 数据库的名称为My DBexec sp_renamedb 'mydb', 'My DB'运行结果如下The database name ' My DB ' has been set.!在使用此命令前应将要改名的数据库的访问选项设为Single user mode 并关闭该数据 库在更改数据库名称后在Enterprise Manager 中所看到的仍然是原来的数据库名称只有选择Databases 目录文件夹再点击工具栏中的按钮刷新界面或在SQL Server 重新启动后才会看到更改后的数据库名另外还应注意的是数据库名不区分大小写6.5 删除数据库6.5.1 用Enterprise Manager 删除数据库在Enterprise Manager 中在所要删除的数据库上单击右键从快捷菜单中选择删除Delete 选项即可删除数据库也可以选择数据库文件夹或图标后从工具栏中选择图标来删除数据库系统会提示确认是否要删除数据库如图6-9所示删除数据库一定要慎重因为删除数据库后与此数据库有关联的数据库文件和事务日志文件都会被删除存储在系统数据库中的关于该数据库的所有信息也会被删除 !当数据库处于以下状态时不能被删除数据库正在使用数据库正在被恢复数据库包含 用于复制的已经出版的对象图6-9 确认删除数据库对话框6.5.2 用DROP DATABASE 命令删除数据库DROP DATABASE 命令可以从SQL Server 中一次删除一个或几个数据库数据库所有者DBO 和数据库管理员DBA 才有权执行此命令其语法如下DROP DATABASE database_name [,...n]例6-13删除数据库abcdrop database abc运行结果如下Deleting database file 'E:\Program Files\Microsoft SQL Server\MSSQL\data\abc_Log.LDF'.Deleting database file 'E:\Program Files\Microsoft SQL Server\MSSQL\data\abc_Data.MDF'.6.6 压缩数据库数据库在使用一段时间后时常会出现因数据删除而造成数据库中空闲空间太多的情况这时就需要减少分配给数据库文件和事务日志文件的磁盘空间以免浪费磁盘空间当数据库中没有数据时可以修改数据库文件属性直接改变其占用空间但当数据库中有数据时这样做会破坏数据库中的数据因此需要使用压缩的方式来缩减数据库空间可以在数据库属性选项中选择Auto shrink选项让系统自动压缩数据库也可以用人工的方法来压缩人工压缩数据库有以下两种方式6.6.1 用Enterprise Manager 压缩数据库在Enterprise Manager中在所要压缩的数据库上单击右键从快捷菜单中的所有任务All Tasks中选择Shrink Database压缩数据库选项就会出现如图6-10所示的对话框可以在图6-10所示的对话框中选择数据库的压缩方式也可以选择使用压缩计划或压缩单个文件图6-10 压缩数据库对话框单击图6-10中的Files按钮会出现如图6-11所示的压缩数据库文件对话框可以针对每个数据库文件进行不同的压缩设置图6-11 压缩数据库文件对话框单击图6-10中的Change按钮会出现如图6-12所示的压缩计划编辑对话框可以指定压缩计划的执行方式单击图6-12中的Change按钮会出现如图6-13所示的循环工作计划编辑对话框可以编辑计划执行的周期或时间点设置完成后单击OK按钮就开始压缩数据库在压缩结束后会显示一个压缩情况信息框图6-12压缩计划编辑对话框图6-13 循环工作计划编辑对话框6.6.2 用Transact-SQL命令压缩数据库可以使用DBCC SHRINKDATABASE和DBCC SHRINKFILE命令来压缩数据库其中DBCC SHRINKDATABASE命令对数据库进行压缩DBCC SHRINKFILE命令对数据库中指定的文件进行压缩1DBCC SHRINKDATABASEDBCC SHRINKDATABASE命令语法如下DBCC SHRINKDATABASE (database_name [, target_percent][, {NOTRUNCATE | TRUNCATEONLY}] )各参数说明如下target_percent指定将数据库压缩后未使用的空间占数据库大小的百分之几如果指定的百分比过大超过了压缩前未使用空间所占的比例则数据库不会被压缩并且压缩后的数据库不能比数据库初始设定的容量小NOTRUNCATE将数据库缩减后剩余的空间保留在数据库中不返还给操作系统如果不选择此选项则剩余的空间返还给操作系统TRUNCATEONLY将数据库缩减后剩余的空间返还给操作系统使用此命令时SQL Server将文件缩减到最后一个文件分配区域但不移动任何数据文件选择此项后target_percent选项就无效了例6-14压缩数据库mytest的未使用空间为数据库大小的20%dbcc shrinkdatabase (mytest, 20)运行结果如下DBCC execution completed. If DBCC printed error messages, contact your system administrator.2DBCC SHRINKFILEDBCC SHRINKFILE命令压缩当前数据库中的文件其语法如下DBCC SHRINKFILE ( {file_name | file_id }{ [, target_size] |[, {EMPTYFILE | NOTRUNCATE | TRUNCATEONLY}] } )各参数说明如下file_id指定要压缩的文件的鉴别号Identification number即ID文件的ID号可以通过FILE_ID函数或如本章前面所讲述的Sp_helpdb系统存储过程来得到target_size指定文件压缩后的大小以MB为单位如果不指定此选项SQL Server就会尽最大可能地缩减文件EMPTYFILE指明此文件不再使用将移动所有在此文件中的数据到同一文件组中的其它文件中去执行带此参数的命令后此文件就可以用ALTER DATABASE命令来删除了其余参数NOTRUNCATE和TRUNCATEONLY与DBCC SHRINKDATABASE命令中的含义相同例6-15压缩数据库mydb中的数据库文件mydb_data2的大小到1MBuse mydbdbcc shrinkfile (mydb_data2, 1)运行结果如下DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages------ ------ ----------- ----------- ----------- -------------- ----------- -------------- --------------9 3 128 128 0 0(1 row(s) affected)DBCC execution completed. If DBCC printed error messages, contact your system administrator. 6.7移动数据库在SQL Server中可以使用拆分Detach和附加Attach的方法来移动数据库拆分数据库是从服务器中移去逻辑数据库但不会将操作系统中的数据库文件删除附加数据库将会创建一个新的数据库并复制存储在已有的数据库文件和事务日志文件中的数据使用系统存储过程Sp_detach_db来拆分数据库用系统存储过程Sp_attach_db来附加数据库Sp_detach_db系统存储过程的语法如下sp_detach_db [@dbname =] 'database_name'[, [@skipchecks =] 'skipchecks']其中[@skipchecks =] 'skipchecks'子句中Skipchecks的值为True或False当Skipchecks 的值为True时指定在执行此过程之前不需要对数据库中的所有表执行UPDATE STATIS-TICS命令为False时则需要执行UPDATE STATISTICS命令Sp_attach_db系统存储过程的语法如下sp_attach_db [@dbname =] 'dbname',[@filename1 =] 'filename_n' [,...16]其中filename_n包括文件的路径和物理名称最多可指定16个文件文件中必须包含主数据库文件如果需要附加的文件超过了16个就必须使用带FOR ATTACH子句的CREATE DATABASE命令来代替!Sp_attach_db系统存储过程只能作用于那些已经用Sp_detach_db系统存储过程从服务器中 拆分出来的数据库例6-16移动数据库mytest到E:\SQL Data目录下1在SQL Server Query Analyzer中运行系统存储过程Sp_helpdb得到mytest 数据库所包含的文件名称数量类型存放位置等信息命令语句如下exec sp_helpdb mytest运行结果如下name db_size owner dbid created status compatibility_level -----------------------------------------------------------------------------------------------------------------------------mytest 6.00MB XUJIN\Administrator 10 Jun 8 2000 Status=ONLINE, (80)name fileid filename filegroup size maxsize growth usage ---------------------------------------------------------------------------------------------------------------mytest_Data 1 D:\SQL Data\mytest_Data.MDF PRIMARY 3072KB Unlimited 10% data onlymytest_Log 2 D:\SQL Data\mytest_Log.LDF NULL 3072KB Unlimited 10% log only2在SQL Server Query Analyzer中运行Sp_detach_db系统存储过程拆分mytest 数据库命令语句如下exec sp_detach_db mytest, true运行结果如下Successfully detached database 'mytest1'.DBCC execution completed. If DBCC printed error messages, contact your system administrator.3在操作系统的文件夹窗口中用剪切或粘贴的方式直接将与数据库相关的操作系统文件移动到E:\ SQL Data 2000 Server目录下即将D:\SQL Data\mytest_。