分类: Oracle
2008-05-19 15:44:34
Oracle 中的数据字典是数据库中的非常重要的一部分,提供了相关数据库的信息,它是所有 Oracle 用户(从应用的最终用户、应用的设计开发者到数据库管理员)的非常重要的信息来源。数据字典的创建,是在 Oracle 数据库创建完毕后,运行一些相关的数据库管理脚本来完成的。当采用 Oracle 统一安装器( Oracle Universal Installer )创建数据库时, Oracle 服务器有关的字典视图和脚本最后会被自动安装。但当需要升级目前的 Oracle 数据库服务器时,数据库管理员必须要手工重新运行创建这些视图或脚本的 SQL 。安装完数据库后, Oracle 数据库管理脚本就存放在操作系统中。对于 UNIX 和 NT 操作系统,分别位于不同的物理目录下,见表 1 所示:
操作系统 |
脚本目录位置 |
UNIX |
$ORACLE_HOME/rdbms/admin |
NT |
%ORACLE_HOME%\rdbms\admin |
表 1 数据库管理脚本在操作系统中的物理位置
Oracle 中几乎所有的系统管理脚本都保存在该文件目录下,该目录下含有上百个不同文件。这些不同的文件都有什么作用呢?本文将详细讨论组成 Oracle 数据库管理脚本的命名规范。这样用户看到某个文件大概就可以知道该文件主要用途是什么。该目录下的文件按照功能不同可分为 4 大类, Oracle 为了容易区分这几类不同的文件,对于文件的命名遵从一定的规则。见表 2 所示。
命名规则 |
功能描述 |
cat*.sql |
关于目录和数据字典信息 |
dbms*.sql |
数据库中关于包的说明 |
prvt*.plb |
加密过的包代码 |
utl*.sql |
数据库其他功能的表和视图 |
表 2 数据库管理脚本命名规范
下面来详细介绍这四种不同类型的脚本功能:
1 、 cat*.sql 脚本
该类脚本主要用于创建数据字典视图。其中,脚本 catalog.sql 和 catproc.sql 是创建数据库后必须要运行的两个脚本。这两个脚本的功能说明见表 3 所示。
脚本 |
脚本说明 |
catalog.sql |
创建系统常用的数据字典视图和同义词 |
catproc.sql |
运行服务器端所需要的 PL/SQL 脚本 |
表 3 创建数据字典视图脚本说明
(1) catalog.sql
该脚本创建相对于系统基表的视图和系统动态性能视图以及他们的同义词。该脚本又同时运行创建其他对象的脚本,主要有:
基本 PL/SQL 环境,包括 PL/SQL 的声明:
- 数据类型
- 预定义例外
- 内建的过程和函数
• SQL 操作等。
审计
导入 / 导出
SQL*Loader
安装选项
( 2 ) catproc.sql
该脚本主要用于建立 PL/SQL 功能的使用环境。此外,还创建几个 PL/SQL 包用于扩展 RDBMS 功能。该脚本同时还为下面的一些 RDBMS 功能创建另外的一些包和视图:
警告( Alerts )
管道( Pipes )
日志分析( LogMiner )
大对象( Large objects )
对象( Objects )
高级队列( Advanced queuing )
复制选项( Replication option )
其他的一些内建包和选项( Other built-ins and options )
( 3 )其他脚本
在该目录下还有其他一些脚本用来扩展 Oracle 数据库服务器功能。如, catadt.sql 脚本用来创建 RDBMS 中用来显示兆数据信息的数据字典视图。 catnoadt.sql 脚本用来删除这些表和视图。
2 、dbms*.sql 和 prvt*.plb 脚本
这两类脚本用来创建扩展 Oracle 服务器功能的系统预定义的一些 Oracle 包的对象。这些程序均用来完成数据库管理任务。大多数的 SQL 脚本在运行 catproc.sql 脚本时被执行。一些额外的脚本必须由数据库管理员另外单独执行。例如, dbmspool.sql 脚本,用来显示在共享池中对象的大小并且为了减少共享池碎块可以将其在 SGA 中标记为保持或可删除。
3 、utl*.sql 脚本
该类脚本只有在数据库需要另外的视图和表时才需要运行。例如,脚本 utlxplan.sql ,用来创建一个表,该表用于观察 SQL 语句的运行计划 (Execution Plan) 。
需要注意的是,绝大多数数据库管理脚本都必须在用户 SYS 下运行。数据库管理员如果打算运行这些脚本,最好首先阅读脚本内容中的相关信息,了解应该以什么用户来运行这些脚本。