Oracle基础 - 图文(6)

2019-08-03 10:22

3、 控制文件:D:\\oracle\\product\\10.2.0\\oradata\\orcl\\*.CTL

课堂提问:(1)默认安装下,有几个控制文件?(2)有几个重做日志文件?(3)数据

文件有哪些?

3.2 其它关键文件

? 其它关键文件

Oracle 服务器也使用一些其它文件,这些文件并不是数据库的一部分。

? 参数文件定义 Oracle 例程的特性。例如,它包含调整 SGA 中一些内存结构大小

的参数。

? 口令文件认证哪些用户有权限启动和关闭 Oracle 例程。

? 归档的重做日志文件是重做日志文件的脱机副本,这些副本可能对于从介质失败

中进行恢复很必要。

?

存放位置:

1、 参数文件:D:\\oracle\\product\\10.2.0\\admin\\orcl\\pfile\\init.ora 2、 口令文件:D:\\oracle\\product\\10.2.0\\db_1\\database\\ PWDorcl.ora 3、 归档重做文件:D:\\oracle\\product\\10.2.0\\oradata\\orcl\\archive

课堂提问:

21

3.3 oracle数据库参数文件 3.3.1 定义

参数文件是一个包含一系列参数和参数值的操作系统文件。在oracle中,参数文件包含了所有的数据库配置信息,非常重要。如果要把oracle管理好,必须要做到对参数及参数文件的了如指掌。但是,oracle数据库中数据是庞大的,且正因为参数文件包含了数据库的所有配置信息,所以参数很多,有几百个之多,一时是难以熟悉和掌握的,这需要在实践中的配置,了解和领会。

oracle数据库通过一系列参数来对数据库进行配置。这些参数是以键--值对的形式来表 示的,如:

job_queue_processes = 10 processes = 150

其中,等号左边是参数名,右边是对应的参数的值,值的类型有多种,典型的如数字和字符串.

参数文件就是存储这些参数的地方,oracle在启动时会从参数文件中读取相关的配置。

3.3.2 参数文件

在9i之前,参数文件只有一种,它是文本格式的,称为pfile,在9i及以后的版本中,新增了服务器参数文件,称为spfile,它是二进制格式的。

这两种参数文件都是用来存储参数配置以供oracle读取的,但也有不同点,注意以下几点:

第一:pfile是文本文件,spfile是二进制文件;

第二:对于参数的配置,pfile可以直接以文本编辑器打开手工配置,而spfile不行,必须在数据库启动后,通过sql命令进行在线修改。

第三:pfile配置改变后,要使其生效,必须重新启动数据库,spfile的配置生效时限和作用域可以由修改参数的sql命令指定,可以立即生效,也可以不立即生效。当然有些参数的修改必须重启数据库才能生效;

第四:可用sql命令由pfile创建spfile,也可以由spfile创建pfile;

第五:oracle数据库只使用一个参数文件,要么是pfile,要么是spfile,即么如何判断 数据库当前使用的是哪一个参数文件呢?一种方法是能过create pfile来鉴别,如果当 前使用的不是spfile,则相应格式的create pfile会产生错误。另一种方法是show parameter spfile命令,用来显示spfile的位置,如果显示的值为空,则表示使用的是pfile。

3.3.3 pfile和spfile

Sqlplus /nolog; Conn / as sysdba;

前面已经对pfile和spfile有了一个概念性的了解,这里我们在具体讲解这两个参数文件。

22

除了第一次启动数据库时需要pfile(然后可以根据pfile创建spfile),用户基本可以不再需要pfile。在9i以后,数据库启动默认使用spfile文件,但spfile必须由pfile创建,在下次启动数据库是使用。在9i以后,数据库会根据pfile文件自动创建spfile文件:

D:\\oracle\\product\\10.2.0\\db_1\\database\\SPFILEORCL.ORA ? pfile文件:D:\\oracle\\product\\10.2.0\\admin\\orcl\\pfile\\init.ora ? 手工创建spfile文件:

create spfile='d:\\spfileORCL.ora'

from pfile='D:\\oracle\\product\\10.2.0\\admin\\orcl\\pfile\\init.ora'; ? 手工创建pfile文件:

create pfile='d:\\init.ora' from spfile;

如果spfile文件已经存在,会返回如下错误:

SQL> create spfile from pfile; create spfile from pfile *

第 1 行出现错误:

ORA-32002: 无法创建已由实例使用的 SPFILE

? 也可以指定使用pfile文件来启动数据库:

? Shutdown immediate;

SQL> startup pfile=\

ORACLE instance started.

Total System Global Area 289406976 bytes Fixed Size 1290184 bytes Variable Size 239075384 bytes Database Buffers 41943040 bytes Redo Buffers 7098368 bytes 数据库装载完毕。 数据库已经打开。

3.3.4 关键参数的介绍

? O7_DICTIONARY_ACCESSIBILITY--控制对数据字典的访问.

设置为true,如果用户被授予了如select any table等any table权限,用户即使不是dba或sysdba用户也可以访问数据字典.

alter system set O7_DICTIONARY_ACCESSIBILITY=true scope=spfile; ? SGA_MAX_SIZE 指的是可动态分配的最大值﹐而SGA_TARGET是当前已分配的最大SGA ? PROCESSES 整个数据库系统可以启动多少个进程(包括系统自己的后台进程) ? OPEN_CURSORS 指定一个会话一次可以打开的游标 (环境区域) 的最大数量, 并且限制 PL/SQL 使用的 PL/SQL 游标高速缓存的大小, 以避免用户再次执行语句时重新进行语法分析。请将该值设置得足够高, 这样才能防止应用程序耗尽打开的游标。

? 注意:关键参数最好不要随便修改,ZLHIS的管理工具中有对这些参数的推荐设置.

23

3.3.5参数的修改

可以通过Alter system 或者导入导出来修改spfile的内容。

? 命令格式:Alter system set (parameter_name)=(value) scope=memory|spfile|both

从oracle9i以后,增加了scope参数:(系统默认使用both) Memory:只改变当前实例运行,重启数据库服务后失效

Spfile:只改变spfile的设置,不改变当前实例运行,重启数据库后生效 Both:同时改变实例及spfile,当前更改立即生效,重启数据库后仍然有效 但要注意,对于静态参数的修改,必须指定spfile才能成功,不然会返回错误:

SQL> alter system set log_archive_start=true scope=both; alter system set log_archive_start=true scope=both * 第 1 行出现错误:

ORA-02095: 无法修改指定的初始化参数 (关于静态参数和动态参数的定义:

静态参数指只能在参数文件修改的参数,且数据库重启后生效;而动态参数指通过一些命令可以动态的修改,且修改后理解生效)

? 如何通过导入导出来修改spfile呢?

在数据库处于关闭状态下进行操作:

Sql>create pfile from spfile 修改pfile中的参数

Sql>create spfile from pfile

3.4 Oracle 例程

? Oracle 例程

24

Oracle 例程由SGA内存结构和用于管理数据库的后台进程组成。例程是通过使用对每

个操作系统特定的方法来进行标识的。例程一次只能打开和使用一个数据库。

? 系统全局区

SGA 是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含 Oracle

服务器的数据和控制信息。它是在 Oracle 服务器所驻留的计算机的虚拟内存中得以

分配。SGA 由几种内存结构组成:

? 共享池用于存储最近执行的SQL语句和最近使用的数据字典数据。这些 SQL 语

句可以是用户进程提交的,也可以是从数据字典读取的(在存储过程的情况中).

? 数据库缓冲区高速缓存用于存储最近使用的数据。这些数据从数据文件读取或

者写入数据文件。

? 重做日志缓冲区用于跟踪服务器和后台进程对数据库所做的更改。

? 系统全局区(续)

这些结构的用途会在本课的后几节中详细讨论 在 SGA 中还有两种可选的内存结构 ? Java 池用于存储Java代码

? 大型共享池用于存储并不与 SQL 语句处理直接相关的大型内存结构。例

如,在备份和复原操作过程中复制的数据块。

? 后台进程

例程中的后台进程执行用于处理并行用户请求所需的通用功能 而不会损

害系统的完整性和性能。它们把为每个用户运行的多个Oracle程序所处理的功能统 一起来。后台进程执行I/O并监控其它Oracle进程以增加并行性,从而使性能和可 靠性更加优越。

根据配置情况 Oracle例程可以包括多个后台进程,但是每个例程都包括下面

五个必需的后台进程:

? 数据库写入程序 (DBW0) 负责将更改的数据从数据库缓冲区高速缓存写入数据文件。 ?

日志写入程序 (LGWR) 将重做日志缓冲区中注册的更改写入重做日志文件。

? 系统监控程序 (SMON) 检查数据库的一致性,如有必要还会在数据库打开

时启动数据库的恢复。

? 过程监视器 (PMON) 负责在一个Oracle进程失败时清理资源。

? 检查点进程 (CKPT) 负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。

本课下面几节说明服务器进程如何使用 Oracle 例程和数据库的一些组件来处理用户进程提交的SQL语句。

25


Oracle基础 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:实习协议(完整版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: