Oracle数据库管理
第4章
Oracle9i关系数据库
本章内容
Oracle数据库管理简介
创建、启动和关闭Oracle数据库
管理表空间
管理Oracle数据文件
管理重做日志文件
管理Oracle数据库对象
Oracle的数据字典
使用OEM管理数据库
一、Oracle数据库管理内容
1. 数据库设计
成功的数据库设计意味着数据库能够存储所有必需的数据,而且其存储方式保证了快速地保存、提取、编辑、删除数据。有许多因素影响数据库设计是否成功:数据库规范化,索引,运用存储过程和触发器等。
Oracle数据库管理简介
2.数据库配置
每一种数据库管理系统都有各种影响其性能的配置参数,其中部分参数比较重要。Oracle系统的配置参数可以在中找到,正确地设置这些参数将对数据库性能产生积极影响。
3. 硬件环境
(1)硬盘空间
磁盘空间不足导致一个很直接的结果:操作系统将拒绝继续运行程序。程序、数据库、操作系统可能会在操作遇到磁盘空间不足问题时发出警报。临时工作区、虚拟内存的磁盘空间不足却属于隐藏的危险。这些问题的主要症状就是数据库处理所需要的时间越来越长,有时甚至根本不能完成。
(2)内存
如果没有足够的内存,操作系统、应用程序、数据库将把部分操作转移到磁盘上进行,从而拖累了整个系统的性能。解决方法是在合理的范围内安装尽可能多的内存,可以用操作系统自带的工具检查系统的内存使用情况,页故障、缓存命中率、分页数等其他相关的项目。
(3)网络传输能力
网络传输能力属于第三个硬件问题。如果系统在每天的固定时间基本上停止响应(不管数据库访问情况如何),它可能是一个网络问题。
其他需要检查的硬件因素包括处理器速度,包括客户机以及服务器、处理器数量(Oracle支持多处理器并行处理),以及数据库分布。
4.Oracle数据库管理工具
数据库管理员通常运用多种工具简化管理任务。Oracle提供了简单集成的DBA工具。如Oracle Enterprise Manager。对于初学者而言,使用工具更加直观,简单,并且可以完成数据库管理的大多数日常工作,
同样,还可以在SQL*Plus之类的工具中,通过输入命令获取信息、优化系统。对很多Oracle的数据库管理员来说,仍喜欢这种“手工”工作方式,提供的功能更加全面灵活,当然对数据库管理员的要求相对也较高。
4.Oracle数据库管理工具
另外操作系统提供的管理工具“系统监视器”(在Windows 2000中是“性能监视器”)也是非常实用的。系统监视器显示了系统负载以及其他几个性能指标,例如错误页数等,可以通过它来了解系统性能优化的效果。
二、 数据库管理员的基本职责
安装和升级数据库服务器,以及应用程序工具。
数据库设计系统存储方案,并制定未来的存储需求计划。
创建基于应用系统数据库存储结构。
创建基于应用系统数据库对象。
根据应用需求,修改数据库的结构。
登记数据库的用户,维护数据库的安全性。
控制和监控用户对数据库的存取访问。
监控和优化数据库的性能。
制定数据库备份计划,备份和恢复数据库。
联系数据库系统的生产厂商,跟踪技术信息。
保证数据库的使用符合知识产权相关法规。
一、创建Oracle数据库前的准备
在创建Oracle数据库之前,必须进行详细的规划和周密的准备。包括:
(1)检查系统资源与配置是否满足创建数据库的需求。
(2)按照应用需求对新建数据库的功能和结构进行规划。
(3)决定使用何种方式创建新数据库。
创建、启动和关闭Oracle数据库
1.检查系统资源
(1)计算机上必须要有足够的磁盘存储空间来执行Oracle。
(2)有足够可用的内存来启动Oracle实例。
(3)Oracle软件已被安装并正确设置了各种必要的环境参数,获得足够的操作系统权限来创建或打开数据库前启动和关闭一个实例。并为软件和数据库文件建立目录结构。
2.新建数据库的功能和结构规划
新建数据库的规划包含以下几个方面的内容:
(1)估算数据库所需的空间大小。可以依据数据库中将要包含的表、索引等对象的结构大小和记录数量做出大致的估算。
(2)确定数据库文件的存放方式。结合数据库运行时的特点来考虑它们在硬盘中的存放位置。采用单磁盘还是硬盘阵列存储,通过合理规划数据文件的存放位置,可以有效地均衡硬盘IO操作,使数据库的物理性能得到较大改善。
(3)熟悉与创建数据库过程相关的初始化参数。保证新建数据库的优良性能。
(4)决定新数据库的全局数据库名。全局数据库名是一个Oracle数据库在网络中的惟一标识,是数据库最为重要的属性。在确定全局数据库的同时,也确定了数据库名和系统标识SID。
3.创建数据库的方式
(1)DBCA方式
DBCA (Oracle Database Configuration Assistant)是一个图形化工具,用于帮助DBA直观、快速地创建数据库。
(2) 脚本方式
使用Creat Database语句和Oracle预定义脚本能够以手工方式创建数据库。Oracle提供了预定义的标准数据库创建脚本和一个标准初始化参数文件,利用这两个文件,可以手工创建出符合需求的数据库。
二、OFA特性
最佳灵活体系结构OFA(Optimal Flexible Architecture)是应用于Oracle服务器软件和数据库数据文件上的一系列存储准则,包括一致的目录结构、命名标准以及数据库文件设计准则。应用OFA后可使Oracle的环境管理简单化,数据库文件的结构标准化,大大减轻管理员的维护负担。
二、OFA特性
OFA将整个数据库系统分为Oracle软件产品、数据库例程的进程日志文件、数据库物理文件三部分,并分别放在不同的目录下。
ORACLE_BASE:Oracle数据库根目录
ORACLE_BASE下有两个子目录。
(1) ORACLE_HOME
Oracle数据库软件所在目录,称为Oracle主目录
(2) ORACLE_BASE/admin
数据库例程的进程日志文件所在目录。
在该目录下为每个例程建立一个专用目录以管理它的进程日志文件
oradata:数据库物理文件所在目录
该目录可位于ORACLE_BASE下,也可以放到别的磁盘上
二、OFA特性
oracle_base/
/product
/release_number-------发行版本号,这个目录一般作为ORACLE_BASE
/admin------------内核进程跟踪文件目录
/inst_name----每个例程有专门的对应目录,以例程名命名
/adump
/bdump
/pfile
……
/client_1---------客户端第1次安装建立的客户端工具目录
/bin----------客户端工具的可执行程序目录
……
/db_1----第1次安装Oracle建立的主目录,该目录一般作为ORACLE_HOME
/bin----------可执行程序目录
/dbs-----初始化参数、口令文件所在目录,Windows有database目录
/NETWORK------监听进程等Oracle Net相关配置文件所在目录
/RDBMS--------RDBMS脚本文件所在目录
/sqlplus------SQL*Plus工具所在目录
二、OFA特性
在oradata目录下,每个数据库有一个对应物理文件目录
oradata/
orcl/--------------------数据库orcl物理文件目录
……
CEMERP/------------------数据库CEMERP物理文件目录
……
二、OFA特性
三、创建Oracle数据库
1、使用DBCA创建数据库
DBCA 数据库配置助手具有4种功能:
创建数据库;
在现有数据库中配置数据库选项;
删除数据库;
管理数据库模板。
1、使用DBCA创建数据库
DBCA提供了四种类型的数据库模板以适用于不同的应用环境:
Data Warehouse(数据仓库);
General Purpose(通用数据库);
New Database(新数据库);
Transaction Processing(事务处理)。
①Data Warehousing——应用于数据仓库环境,即决策支持系统(DSS);该环境中的数据库必须处理大量的复杂查询,这些复杂查询将涉及到数据库中大量的表和记录,并且大部分查询都是只读的,因此,数据库性能主要取决于响应时间、准确性以及可用性。
②Transaction Processing——应用于联机事务处理(OLTP )环境;该环境中的数据库每天必须处理来自许多并发用户的成千乃至上百万的事务,用户必须能够快速访问到最新数据,因此,数据库的性能取决于数据吞吐性能(速度)、并发性以及可恢复性。
③General Purpose——应用于同时具有DSS和OLTP特性的数据库。
④New Database——应用该模板能够以自定义方式创建新数据库,用户可以对各项参数进行灵活的设置。
步骤1:启动DBCA
点击“开始”-->“程序”-->“Oracle-OraHome92”-->“Configration and Migration Tools”-->“Database Configuration Assistant”,打开DBCA启动初始界面。
步骤2:选 择 操 作
选择“创建数据库”
步骤3:选 择 模 板
选择“通用模板”
步骤3:选 择 模 板
显示“通用模板”信息
步骤4:数据库标识
在弹出的数据库标识界面输入全局数据库名和数据库的SID,分别为 “”和“ecdb2”。
步骤5:配置监听程序
在弹出的监听程序注册界面中,选择第一项“将此数据库注册到所有监听程序”。也可以选择第二项。这两者的区别在于:如果注册到所有监听程序,那么客户端就可以通过所有监听程序连上服务器端的数据库;如果注册到某个特定的监听程序,那么客户端就只能通过该监听程序连接上该数据库。
步骤6:配置服务器操作模式
如果连接到数据库的用户个数较少或者用户每次操作时间较长,那么最好选择第一项“专用服务器模式”;反之如果连接用户较多或者每次操作时间较短,就选择第二项“共享服务器模式”。
步骤7:配置数据库初始信息
取默认。
步骤7:配置数据库初始信息
取默认。
步骤7:配置数据库初始信息
取默认。
步骤7:配置数据库初始信息
取默认。
步骤7:配置数据库初始信息
取默认。
步骤7:配置数据库初始信息
取默认。
步骤8:创建选项
将“创建数据库”和“另存为数据库模板”都选上,同时在“名称”文本框中填入模板文件名称,如“”。选择第一个选项,要接着创建数据库。第二个选项可将数据库创建脚本保存起来,以备将来使用。
步骤8:创建选项
“”模板的概要信息 。
步骤9:创建进度
步骤10:修改口令
数据库创建完成之后会弹出口令更改界面,用户输入新的sys和system用户的密码,点击“退出”,完成并退出数据库的创建向导 。
2、使用SQL*Plus脚本创建数据库
对于熟悉DBA命令的用户,使用SQL*Plus语句创建数据库会更加灵活方便,下面介绍创建数据库的CREATE DATABASE语句,语句格式如下:
编写SQL PLUS脚本创建数据库
CREATE DATABASE database_name
[CONTROLFILE REUSE]
[LOGFILE[GROUP n] ('path\file_name') [SIZE n [K | M]
[REUSE]], …n]
[MAXLOGFILES n]
[MAXLOGMEMBERS n]
[MAXLOGHISTORY n]
编写SQL PLUS脚本创建数据库(续)
[MAXDATAFILES n]
[MAXINSTANCES n]
[ARCHIVELOG | NOARCHIVELOG]
[CHARACTER SET charset]
[NATIONAL CHARACTER SET charset]
[DATAFILE 'path\file_name' [SIZE n [K | M] [REUSE]]
[AUTOEXTEND [ OFF | ON [NEXT n [K | M] MAXSIZE [UNLIMITED| n [K | M]]]]]]
创建数据库命令中参数意义
“database_name”:创建的数据库名称。
“CONTROLFILES REUSE”:重用已经存在的控制文件。
“LOGFILE”:指定重做日志文件名和重做日志组名。
“MAXLOGFILS”:最大的重做日志组数量。
“MAXLOGMEMBERS”:每个重做日志组中最大的日志文件数。
“MAXLOGHISTORY”:可以自动归档的最大日志文件数量。
创建数据库命令中参数意义
“MAXDATAFILES”: 数据文件的最大数量。
“MAXINSTANCES”: 数据库中可以同时打开的例程数。
“ARCHIVELOG”: 采用归档模式。
“NOARCHIVELOG”: 不采用归档模式。
“CHARACTER SET”:指定使用的字符集。
“DATAFILE”: 指定数据文件名。
“AUTOEXTEND”: 子句用于指定数据文件自动扩展。
使用SQL命令修改数据库
修改数据库的语法格式:
ALTER DATABASE database_name
[ARCHIVELOG]
[NOARCHIVELOG]
[RENAME FILE 'path\filename' , …n TO 'path\re_filename',…n]
使用SQL命令修改数据库
[CREATE DATAFILE 'data_filename'
[AS 'path\filename' [SIZE n [K | M]] [REUSE]], …n]
DATAFILE 'path\filename' [ONLINE | OFFLINE [DROP]
| RESIZE n [K | M]
| AUTOEXTEND OFF
| ON [NEXT n [K | M] [MAXSIZE UMLIMITED | n [K | M]]]
使用SQL命令修改数据库
修改数据库命令中参数意义
⑴ RENAME FILE:重命名数据文件、临时文件或重做日志文件成员。该子句只在控制文件中对文件重命名,而不在操作系统上对其真正重命名。在指定该子句前,必须按操作系统对文件名的约定指定每个文件名。
使用SQL命令修改数据库
⑵ CREATE DATAFILE:创建新的空数据文件替代旧数据文件。可用该子句重新创建没有备份的丢失数据文件。data_filename必须作为或曾作为数据库部分的一个文件。AS子句指定新数据文件的名字和大小。如果忽略AS子句,Oracle用data_filename定义的名字和大小创建新文件。
⑶ DATAFLE对数据文件联机有影响。
其它参数和关键字与CREATE DATABASE 的参数和关键字的含义相同,请参照CREATE DATABASE参数和关键字的说明。
三、设置DBA认证方式
在数据库创建后,需要为DBA选择一种身份认证方式。Oracle数据库本身具有一套完善的安全管理机制,每个连接到Oracle的用户都需要有一个数据库账户。
但这些账户信息都保存在数据库内部,在打开数据库之前,不能使用这些信息来对用户身份进行认证。因此,DBA在执行诸如启动实例、加载和打开数据库等操作时,需要使用独立于数据库的方法进行认证。
三、设置DBA认证方式
在启动各种Oracle工具时(如SQL*Plus),很可能还没打开数据库,因此,在这些工具中的用户身份认证无法通过数据库进行。可使用两种认证方式对用户进行认证:
操作系统认证
口令文件认证
三、设置DBA认证方式
操作系统认证
口令文件认证
四、启动Oracle数据库
在介绍数据库启动之前,先简单介绍数据库与实例之间的关系。
每一个启动的数据库至少对应有一个实例。实例是Oracle用来管理数据库的一个实体,它由位于服务器中的内存结构和一系列服务进程组成。对于初学者,可以简单地将实例理解成Oracle数据库在运行时位于系统内存中的部分,而将数据库理解为运行时位于硬盘中的部分。
启动数据库时将在内存中创建与该数据库对应的实例。一个实例只能访问一个数据库,而一个数据库可以由多个实例同时访问。
四、启动Oracle数据库
启动Oracle数据库的方式:
(1)SQL *Plus
(2)OEM控制台
四、启动Oracle数据库
(1)启动前准备工作
包括启动SQL *Plus并连接到Oracle。
1.以不连接数据库的方式启动SQL *Plus
C:\>SQLPlus /NOLOG
2.以DBA身份连接到Oracle
SQL>CONNECT username/password AS SYSDBA
用户必须具有DBA权限且以SYSDBA或者SYSOPER的身份登录SQL*Plus 。
四、启动Oracle数据库
(2)进入启动模式
1.启动实例不加载数据库(nomount模式)
命令:startup nomount
启动实例不加载数据库,仅为实例创建各种内存结构和服务进程,不会打开如何数据库文件。只能访问与SGA有关的数据字典视图。创建新数据库和重建控制文件必须在该模式下。
(2)进入启动模式
2.启动实例加载数据库但不打开数据库(mount模式)
命令:startup mount
重命名数据库;添加、删除或重命名日志文件;完全恢复数据库;改变数据库的归档模式必须在该模式下。
(2)进入启动模式
3.启动实例加载并打开数据库(open模式)
命令:startup
这是正常启动模式。任何合法用户可连接并对数据库进行操作。
(2)进入启动模式
4.强制启动(force模式)
命令:startup force
当上述方法无法启动,或启动过程出现无法恢复的错误,可强制启动。强制启动会先关闭已打开的实例再重新为这个数据库启动一个新的实例。
(2)进入启动模式
5.受限状态
当以正常方式启动后,可将其该为受限状态,此时只有具有管理权限的用户(DBA)才能访问数据库。
以受限Open模式打开数据库
startup restrict
数据库运行过程中由受限变为非受限
alter system disable restricted session;
数据库运行过程中由非受限变为受限
alter system enable restricted session;
(2)进入启动模式
6.只读状态
当以正常方式启动后,数据库处于读写状态,可将其改为只读状态。
只读模式
alter database open read only;
由只读恢复成读写模式
alter database open read write;
五、关闭Oracle数据库
关闭数据库分为3步:
(1)Oracle将重做日志、高速缓存中的内容写入重做日志文件,并将数据库高速缓存中被改动的数据(脏数据)写入数据文件,然后再关闭所有数据文件和重做日志文件。此时,数据库的控制文件仍然处于打开状态,但数据库已经关闭,用户无法访问数据库。
五、关闭Oracle数据库
(2)Oracle关闭控制文件,但实例仍然存在。
(3)终止实例,回收SGA。
五、关闭Oracle数据库
可以使用SQL*Plus的SHUTDOWN命令来关闭数据库。同样,用户必须具有DBA权限且以SYSDBA或者SYSOPER的身份登录SQL*Plus 。
五、关闭Oracle数据库
(1)正常关闭方式(normal)
命令:shutdown normal
正常关闭数据库时,Oracle将阻止任何用户建立新连接,用户可继续当前工作,甚至提交新的事务,等待当前所有连接的用户主动断开连接,然后关闭、卸载数据库,并终止实例。
(2)立即关闭方式(immediate)
在尽可能短的时间内关闭数据库,如即将断电。
命令:shutdown immediate
Oracle将阻止任何用户建立新连接,当前连接用户不能开始新事务,强行终止当前事务,任何未提交事务被回退,不等当前所有连接的用户主动断开连接,直接关闭、卸载数据库,并终止实例。
(3)事务关闭方式(transactional)
介于两者之间,在尽可能短的时间内关闭数据库,但当前活动事务可提交。
命令:shutdown transactional
Oracle将阻止任何用户建立新连接,当前连接用户不能开始新事务,等待所有未提交事务提交完毕,然后立即断开用户的连接,关闭、卸载数据库,并终止实例。
(4)终止关闭方式(abort)
当数据库产生严重错误,上述三种方式都无法成功关闭数据库时采用该方式。该方式将丢失一部分数据信息,会对数据库的完整性造成损害,需要在下一次启动数据库时进行恢复,应尽量避免使用。
命令:shutdown abort
Oracle将阻止任何用户建立新连接,当前连接用户不能开始新事务,立即终止当前正在执行的SQL语句,任何未提交事务均不被回退,立即断开用户的连接,关闭、卸载数据库,并终止实例。
六、OEM启动关闭Oracle数据库
Oracle中,DBA的各种管理操作都可以通过Oracle Enterprise Management(OEM)完成。OEM是一个具有三层体系结构的网络服务环境,OEM的第一层---控制台为DBA提供一个可视化的图像管理界面。
1.启动控制台
OEM控制台有两种使用方式:
独立方式
连接到Management Server方式
两种方式的操作方法相同。
(1)独立方式
OEM直接管理数据库。
(1)独立方式
从开始菜单中选择Oracle<ORACLE_HOME_NAME>Enterprise Manager Console,启动OEM控制台,在启动界面中选择“独立启动”选项。
独立方式
独立方式启动后的OEM。
选择和连接数据库
如果OEM控制台与数据库安装在同一台服务器中,在控制台左侧树状导航栏中的“数据库”文件夹中将列出所有可供管理的数据库。
选择一个数据库,输入用户名和口令即可连接。成功连接后将展开该数据库的树状导航栏。
选择和连接数据库
登录数据库之后的OEM。数据库的树状导航栏列出了管理项目。
(2)连接到Management Server方式
OEM不直接连接数据库,而是通过管理服务器OMS登录数据库。
OMS是连接数据库服务器和客户机的中间层,其上建立了数据库仓库用于存储来自客户机的管理信息,然后将管理任务下达给数据库服务器的智能代理执行。
(2)连接到Management Server方式
成功连接后的OEM。列出了数据库服务器的管理目标(包括节点、数据库、web服务器、应用服务器等)
配置管理服务器OMS
(1)欢迎界面
使用Enterprise Manager Configuration Assistant(EMCA)配置OMS。
配置管理服务器OMS
(2)配置操作
配置管理服务器OMS
(3)配置OMS
配置管理服务器OMS
(4)创建新资料档案库选项
配置管理服务器OMS
(5)创建资料档案库概要
配置管理服务器OMS
(6)系统调用DBCA创建数据库
配置管理服务器OMS
(7)成功创建OMS
管理服务器OMS的启动和关闭
(1)启动OracleOraHome90ManagementServer服务,将启动OMS
管理服务器OMS的启动和关闭
(2)停止OracleOraHome90ManagementServer服务,将关闭OMS
3.启动数据库
(1)选择要启动的数据库。右键选择“启动”。
3.启动数据库
(2)选择启动模式为“打开”。
3.启动数据库
(3)启动成功。
3.启动数据库
(4)选择启动模式为“不装载”。
3.启动数据库
(5)启动成功。
3.启动数据库
(6)选择启动模式为“装载”。
3.启动数据库
(7)启动成功。
3.启动数据库
(8)限制启动。
3.启动数据库
(9)只读启动。
4.关闭数据库
(1)更改连接身份。右键选择“连接”。
4.关闭数据库
(1)更改连接身份为SYSDBA。
4.关闭数据库
(2)右键选择“关闭”。
4.关闭数据库
(3)选择关闭类型。
4.关闭数据库
(4)正常关闭提示框。
4.关闭数据库
(6)正常关闭。
管理表空间
表空间管理概述
在OEM中创建表空间
在OEM中管理表空间和数据文件
使用SQL命令创建和管理表空间
表空间管理概述
表空间是Oracle数据库内部数据的逻辑组织结构
表空间就像一个文件夹,是存储数据库对象的容器。表空间由数据文件组成,这些数据文件是数据库实际存放数据的地方,数据库的所有系统数据和用户数据都必须存放在数据文件中。
每一个数据库创建的时候,系统都会默认地为它创建一个“SYSTEM”表空间,以存储系统信息。一个数据库可以有多个表空间,也可以只有一个“SYSTEM”表空间。一般地,用户数据应该存放在单独的表空间中,所以必须创建和使用自己的表空间。
一个数据库可以有多个表空间,一个表空间可以包含多个数据文件 。
Oracle将数据逻辑地存放到表空间中,而表空间则与具体的物理文件相关联 。
表空间
表
索引
索引
索引
索引
索引
表
索引
索引
索引
索引
索引
表
数据文件
数据对象
表空间的特性
(1)一个数据库可以有多个表空间
(2)一个表空间只能属于一个数据库
(3)一个表空间至少要有一个数据文件
(4)一个数据文件只能属于一个表空间
(5)一个表空间的大小由其数据文件大小决定
(6)除系统表空间外的表空间可以被联机或脱机
(7)方案对象可以跨表空间的数据文件存储,但不能跨表空间存储
(8)可以为用户指定默认数据表空间。但该用户的方案对象可以存储到不同表空间中。
(9)可以指定用户在各表空间上的空间配额
表空间应用原则
遵循分散(Separate)存储原则,避免磁盘I/O冲突
(1)在系统性能要求较高的应用环境中,创建表空间时使用裸设备存储数据文件
(2)将表、索引分开存放在不同的表空间中
(3)将访问频度高的表、索引分开存放在不同的表空间,并将这些表空间所使用的数据文件存储到不同的物理磁盘上
(4)对于数据量特别大,并发访问频繁的表、索引应考虑单独存放在一个表空间中。进一步,考虑将表、索引进行分区存储到不同表空间中
(5)将日志和数据放置在不同的磁盘上
建立数据库时,Oracle会自动建立
系统表空间SYSTEM和SYSAUX
临时表空间TEMP
撤销表空间UNDOTBS1
一般情况下,建立表空间由特权用户或DBA完成
表空间分类
按构成文件分
大文件表空间:只能包含1个大文件
小文件表空间:可包含多个数据文件
按表空间用途分
系统表空间、撤销表空间、临时表空间
数据表空间、索引表空间等
按数据特性:永久表空间、临时表空间、撤销表空间
在OEM中创建表空间
在数据库中创建用户表空间,可以使用工具箱中的“创建”按钮或使用快捷菜单,这两种方法的创建过程完全相同。
用鼠标右键单击“表空间”文件夹,从快捷菜单中选择“创建”功能,激活创建表空间对话框。对话框包括两个标签页,一般信息标签页和存储标签页。通过回答对话框的各种配置需求即可创建所需的表空间。
在OEM中管理表空间
和数据文件
在OEM中,选择需要管理的表空间或数据文件,单击鼠标右键,从快捷菜单中选择“查看/编辑详细资料”选项,打开相应的对话框。要想修改各个参数,只需双击相应的单元格,然后输入新的参数,按“应用”按钮即可。
修改表空间和数据文件的参数或状态
添加数据文件和设置数据文件的存储增量及最大容量
删除表空间或数据文件
在OEM中管理表空间
和数据文件
在OEM中,单击“存储”容器前面的“+”号可以展开显示存储管理所包括的内容;再单击“表空间”容器前面的“+”号,可以展开显示该数据库中所有表空间;如果用鼠标左键单击“表空间”,将在右面的显示栏中列出所有表空间的名称、类型、大小以及使用情况。
一、创建表空间
如下三类SQL语句能够创建表空间:
(1)CREATE TABLESPACE:创建一般的表空间。
(2)CREATE TEMPORARY TABLESPACE:创建临时表空间。
(3)CREATE UNDO TABLESPACE:创建撤销表空间。
使用SQL命令创建和管理表空间
CREATE TABLESPACE命令的语法如下:
CREATE TABLESPACE tablespacename
DATAFILE filename [autoexetend clause][,…]
[MININUM EXTENT integer K/M
| BLOCKSIZE integer K
|{LOGGING | NOLOGGING}
| DEFAULT storage clause
|{ONLINE|OFFLINE}
|{PERMANENT | TEMPORARY}
| extent_management_clause
| segment_management_clause
];
二、更改表空间
更改表空间的SQL语句为ALTER TABLESPACE语句。操作者必须具有ALTER TABLESPACE系统特权,该语句语法如下:
ALTER TABLESPACE tablespacename……
三、删除表空间
DROP TABLESPACE的基本语法如下:
DROP TABLESPACE tablespacename
[INCLUDING CONTENTS[AND DATAFILES] [CASCADE CONSTRAINTS]]
四、查看表空间信息
(1)V$TABLESPACE:从控制文件得到的所有的表空间的名称和数量。
(2)DBA_TABLESPACES,USER_TABLESPACES:描述了所有表空间。
(3)DBA_SEGMENTS,USER_SEGMENTS:在所有表空间内的段信息。
(4)DBA_EXTENTS,USER_EXTENTS:在所有表空间内的数据范围的信息。
(5)DBA_FREE_SPACE,USER_FREE_SPACE:在所有表空间内的空闲范围的信息。
(6)V$DATAFILE:所有的数据文件的信息,包括拥有表空间的数量。
(7)V$TEMPFILE:所有的临时文件信息,包括拥有表空间的数量。
(8)DBA_DATA_FILES:显示文件(数据文件)属于哪个表空间。
(9)DBA_TEMP_FILES:显示文件(临时文件)属于哪个临时表空间。
(10)V$TEMP_EXTENT_MAP:本地管理的临时表空间中所有的范围信息。
(11)V$TEMP_EXTENT_POOL:对本地管理的临时表空间而言,该视图显示临时空间缓冲的状态以及由实例使用的临时空间缓存。
(12)V$TEMP_SPACE_HEADER:显示每个临时文件的已用/空闲空间。
(13)DBA_USERS:所有的用户的缺省和临时表空间。
(14)DBA_TS_QUOTAS:所有的用户的表空间限额。
(15)V$SORT_SEGMENT:给定实例中每排序段信息。此视图只有当表空间为临时类型时才更新。
(16)V$SORT_USER:由用户和临时/永久表空间使用的排序空间。
一、管理策略
在管理数据文件前,应先注意以下事项:
(1)数据文件的数量和大小受条件限制。
(2)合理放置数据文件的位置。
管理Oracle数据文件
二、建立和增加Oracle数据文件
通过在表空间中建立和增加数据文件,可以增加数据库的磁盘空间总数。执行该语句的用户必须具有ALTER TABLESPACE系统权限。
SQL语句为:
ALTER TABLESPACE tablename ADD DATAFILE
filename SIZE newsize;
三、改变Oracle数据文件大小
1.数据文件大小的自动扩展
想使得数据库文件大小可以自动扩展,可以在CREATE DATABASE,CREATE TABLESPACE, ALTER DATABASE语句建立数据文件时指定数据文件自动扩展。
取消数据文件大小的自动扩展功能可用以下语句:
ALTER DATABASE DATAFILE
’E:\oracle\oradata\’
AUTOEXTEND OFF;
2.用手动方法来改变数据文件的大小
可以通过带有RESIZE子句的ALTER DATABASE语句来手工地增加或减少使用的数据文件的大小。 例如,利用下面的语句可以将数据文件增大为600MB:
ALTER DATABASE DATAFILE
‘E:\oracle\oradata\’ RESIZE 600M;
四、设置Oracle数据文件的使用状态
(1)使指定的数据文件联机的语句:
ALTER DATABASE DATAFILE filename ONLINE;
(2)使指定的数据文件脱机的语句:
ALTER DATABASE DATAFILE filename OFFLINE;
五、查看Oracle数据文件信息
下列数据字典视图可以查看Oracle数据库的数据文件信息:
(1)DBA_ DATA_ FILES:数据文件提供的描述信息,包括它属于的表空间和文件标识。文件标识可以被用来与其他视图连接以查看更详细的信息。
(2)DBA _EXTENTS与USER_ EXTENTS:DBA _EXTENTS:描述在数据库组成所有的段(Segments)的范围(Extents)。包含那些包含了范围的数据文件的文件标识。
(3)USER_ EXTENTS:描述属于当前的用户的对象的段的范围。
(4)DBA _FREE_ SPACE和USER_ FREE_ SPACE: DBA_ FREE_ SPACE视图列出了在所有表空间的空闲范围。它包括包含了范围的数据文件的文件,标识。USER_ FREE_ SPACE视图包含当前用户的空闲范围。
(5)V$DATAFILE:控制文件中包含的数据文件的信息。
(6)V$DATAFILE HEADER:数据文件头中包含信息。
一、管理策略
1. 使用复合重做日志文件
建立复合重做日志文件后,LGWR进程将同步地写入位于同一个重做日志组中的相互镜像的多个成员日志文件。因此即使由于某个单独的日志文件破坏或丢失,数据库的运行和恢复都不会受到任何影响。
管理重做日志文件
2.合理设置重做日志文件的大小和数量
在设置重做日志文件的大小时,除了需要考虑到数据库运行特性的要求外,还需要考虑存储归档日志的物理设备的特性,使存储空间不致不足或由于略大小日志文件造成浪费。
尽量使用最少的重做日志文件,但是能够保证LGWR进程永不出现等待状态。
二、创建重做日志组和成员的日志文件
1. 创建重做日志组
为数据库创建新的重做日志组,需要使用带有ADD LOGFILE子句的ALTER DATABASE语句。例如,利用下面的语句可以为数据库添加一个新的重做日志组:
ALTER DATABASE ADD LOGFILE
('I:\Oracle\ORADATA\ORADB01\',
‘I:\Oracle\ORADATA\ORADBO1\')SIZE 100M;
2.创建成员日志文件
为重做日志组添加新的成员,需要使用带有ADD LOGFILE MEMBER子句的ALTER DATABASE语句。例如,利用下面的语句可以为3号重做日志组添加一个新的成员日志文件:
ALTER DATABASE ADD LOGFILE MEMBER
'I:\Oracle\ORADATA\ORADB01\' TO GROUP 3;
三、删除重做日志组和成员的日志文件
1. 删除重做日志组
删除一个重做日志组时,其中的成员日志文件将都被删除。例如,利用下面的语句可以删除3号重做日志组:
ALTER DATABASE DROP LOGFILE GROUP 3;
在执行上述语句后,只是在数据字典和控制文件中将重做日志组的记录信息删除,并不会删除操作系统中的相应文件。因此,在确认删除操作成功后,DBA需要手工将相应的操作系统文件删除。
2.删除成员日志文件
如果存放某个成员日志文件的硬盘发生物理损坏,为了防止Oracle继续尝试写入己经损坏的重做日志文件,则需要将它从重做日志组中删除。例如,利用下面的语句可以删除3号重做日志组的第2个成员:
ALTER DATABASE DROP LOGFILE MEMBER
‘I:\oracle\oradata\oradbOl\’;
同样在执行上述语句后,只是在数据字典和控制文件中重做日志成员的记录信息删除,并不会删除操作系统中的相应文件。
四、清空重做日志组
清空重做日志文件相当于删除该重做日志文件,然后再重新建立它。它可以在不关闭数据库的情况下,手工清空损坏的重做日志文件中的内容,以避免出现数据库停止运行的情况。
清空一个重做日志组时,将同时清空该组中的所有成员日志文件。
例如,利用下面的语句可以清空3号重做日志组:
ALTER DATABASE CLEAR LOGFILE GROUP 3;
五、查询重做日志文件信息
包含有重做日志文件信息的数据字典视图和动态性能视图主要有:
(1)V$LOG:包含从控制文件中获取的所有重做日志文件的基本信息。
(2)V$LOGFILE:包含各个成员日志文件的信息,例如成员的状态和所属的重做日志组。
(3)V$LOG_HISTORY:包含关于重做日志文件的历史信息。
例如:要获取数据库中所有重做日志组的基本信息,可以查询V$LOG视图,使用如下的命令语句:
SELECT * FROM V$LOG;
一、管理表
1. 表的建立
例如:创建test表空间上的region表。
CREATE TABLE (
OFFICE_NUM NUMBER(3,0) NOT NULL,
REGION_CODE NUMBER(8,0) NOT NULL,
REGION_NAME VARCHAR2(20) NOT NULL);
管理Oracle数据库对象
2. 表的修改
例如:修改region表结构,增加名称为DESC的字段。
ALTER TABLE (ADD DESC VARCHAR2(30));
3.表的删除
例如:删除引用该表的其它表的完整性约束。
DROP TABLE CASCADE CONSTRAINTS;
二、管理视图
1. 视图的建立
例如:建立一个视图用来查询teacher和lib表中的相关信息。
CREATE VIEW reader_view AS
SELECT ,,
FROM teacher t,lib l where =;
2. 视图的替换
REPLACE VIEW reader_view AS
SELECT ,,
FROM teacher t,lib l where =;
3.视图的删除
DROP VIEW _well_view;
三、管理索引
1. 索引的建立
例如:在test. Region表中的region_name列上创建一个名为_region的索引。
CREATE INDEX _region
ON region (region_name) TABLESPACE test;
2. 索引的修改
ALTER INDEX _region
ON region (office_num,region_name)
3.索引的删除
DROP INDEX _region;
四、管理触发器
Oracle允许定义过程,当对相关的表作INSERT、UPDATE或DELETE语句时,这些过程被隐式地执行,称为数据库触发器。
过程与触发器差别在于调用方法:过程由用户或应用显式执行;而触发器是为一激发语句(INSERT、UPDATE、DELETE)发出,由Oracle隐式地触发。
一般触发器用于:
自动地生成导出列值。
防止无效事务。
实施复杂的安全审核。
在分布式数据库中实施跨结点的引用完整性。
实施复杂的事务规则。
提供透明的事件记录。
提供高级的审计。
维护同步的表副本。
收集表存取的统计信息。
五、数据的完整性
数据库数据的完整性指数据的正确性和相容性。数据完整性检查防止数据库中存在不符合语义的数据。
完整性约束是对表的列定义一组规则说明方法。Oracle提供如下的完整性约束:
(1)NOT NULL:非空;
(2)UNIQUE:唯一关键字;
(3)PRIMARY KEY:主键,一个表只能有一个,非空;
(4)FOREIGN KEY:外键;
(5)CHECK:表的每一行对指定条件必须是true或未知(对于空值)。
Oracle的数据字典
Oracle的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化,体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。
数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。数据字典里的信息不能手工修改。
可以通过查询语句知道数据字典的详细名称和解释。相关的表有:
(1)dictionary :全部数据字典表的名称和解释,它有一个同义词dict。
(2)dict_column :全部数据字典表里字段名称和解释。
例如:如果想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句:
select column_name,comments from
dict_columns where table_name='USER_INDEXES';
1. 用户信息
(1)查看当前用户的缺省表空间
select username,default_tablespace from user_users;
(2)查看当前用户的角色
select * from user_role_privs;
(3)查看当前用户的系统权限和表级权限
select * from user_sys_privs;
select * from user_tab_privs;
2. 表信息
(1)查看用户下所有的表
select * from user_tables;
(2)查看名称包含log字符的表
select object_name,object_id from user_objects
where instr(object_name,'LOG'))0;
(3)查看某表的创建时间
select object_name,created from user_objects where
object_name=upper('&table_name');
(4)查看某表的大小
select sum(bytes)/(1024*1024) as “size(M)” from
user_segments where segment_name=upper('&table_name');
(5)查看放在Oracle的内存区里的表
select table_name,cache from user_tables where
instr(cache,'Y')=0;
3. 索引信息
(1)查看索引个数和类别
select index_name,index_type,table_name from user_indexes
order by table_name;
(2)查看索引被索引的字段
select * from user_ind_columns where
index_name=upper('&index_name');
(3)查看索引的大小
select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name');
4. 序列号信息
查看序列号,last_number是当前值。
select * from user_sequences;
5. 视图信息
(1)查看视图的名称
select view_name from user_views;
(2)查看创建视图的select语句
set view_name,text_length from user_views;
set long 2000;
说明:可以根据视图的text_length值设定set long 的大小。
select text from user_views where
view_name=upper('&view_name');
6. 同义词
查看同义词的名称:
select * from user_synonyms;
7. 约束条件
查看某表的约束条件:
select constraint_name, constraint_type,search_condition,
r_constraint_name from user_constraints where table_name=
upper('&table_name');
select _name,_type,_name
from user_constraints c,user_cons_columns cc
where =upper('&table_owner') and _name=
upper('&table_name') and = and
_name=_name
order by ;
8. 存储函数和过程
(1)查看函数和过程的状态
select object_name,status from user_objects where
object_type='FUNCTION';
select object_name,status from user_objects where
object_type='PROCEDURE';
(2)查看函数和过程的源代码
select text from all_source where owner=user and
name=upper('&plsql_name');
Oracle企业管理器(OEM)是主要的数据库管理工具,使用OEM可以方便地管理Oracle数据库的各种资源。通过OEM,可以执行数据库的各项操作。例如,数据对象的建立和调整、数据库的备份和恢复,以及数据库的参数调整等。
使用OEM管理数据库
1.作为Oracle的数据库管理员,其主要工作职责有哪些?
2.Oracle数据库在安装后自动建立的两个具有DBA角色的用户和口令是什么?
3.Oracle9i在数据库管理方面有哪些新特性?
4.Oracle数据库的几种启动方式有什么不同,相关命令是什么?
5.管理Oracle数据文件的策略是什么?
6.怎样才能合理设置重做日志文件的大小和数量?
7.如何用数据字典来管理数据库?
8.在OEM中对Oracle常用的一些数据库对象分别完成创建、修改、删除操作。
本章练习
[例] 使用CREATE DATABASE语句创建数据库student。
SQL> CREATE DATABASE student
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
DATAFILE 'c:\oracle\oradata\student\' SIZE 325M REUSE
AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
UNDO TABLESPACE UNDOTBS DATAFILE
'c:\oracle\oradata\student\'
SIZE 150M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE
'c:\oracle\oradata\student\'
SIZE 40M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('c:\oracle\oradata\student\') SIZE 102400K,
GROUP 2 ('c:\oracle\oradata\student\') SIZE 102400K,
GROUP 3 ('c:\oracle\oradata\student\') SIZE 102400K;
[例] 使上面创建的数据库切换到归档模式。
SQL> ALTER DATABASE student
ARCHIVELOG;
[例] 创建新的数据文件以代替原来的数据文件。
SQL> ALTE DATABASE student
CREATE DATAFILE 'users' AS 'c:\oracle\oradata\student\'
SIZE 50M REUSE AUTOEXTEND ON NEXT 20M
MAXSIZE 500M
EXTENT MANAGEMENT LOCAL;
[例] 使用ALTER DATABASE 命令扩展users01数据文件。
SQL> ALTER DATABASE student
DATAFILE 'c:\oracle\oradata\student\'
RESIZE 200M;
安装环境
计算机名称:mynetserver
IP地址:
全局数据库名:
安装环境
计算机名称:mynetserver
IP地址:
全局数据库名:
安装环境
计算机名称:mynetserver
IP地址:
全局数据库名:
当典型配置出错时,可以选择自定义试试