oracle数据库初始化参数分类,Oracle数据库如何初始化参数

软件的配置文件

基本上每个软件都有一些配置信息;在Windows系统中,很多软件都将这些配置信息写入注册表中;而在Linux系统中,则是在/etc目录下生成一个配置文件。

这些配置文件无非就是记录一些参数值,在软件启动的时候读取这些参数值,对软件进行初始化。同理,对于Oracle来说,也存在着这么个配置文件,里面记录了一些初始化参数,在Oracle启动的时候,会读取这个配置文件中的数据对Oracle进行初始化。这篇文章就对Oracle启动过程中使用到的这个参数文件进行重点讲解与分析。

Oracle的启动“配置文件”

在《Oracle学习笔记——数据库启动原理》这篇文章中也说到了,Oracle的启动分为三步,在第一步启动实例的时候,需要读取配置文件,决定分配多大的内存,那这个配置文件是“何许人也”呢?

在Oracle中,有两种类型的初始化配置文件,更多的时候,我们把这两种初始化配置文件叫做初始化参数文件。Oracle有许许多多的初始化参数,这些参数用于对整个数据库的资源、用户访问、进程等信息进行控制。而这些初始化参数就保存在这个初始化参数文件中,我们可以进行读取,甚至修改。在Oracle中,这两种类型的初始化参数文件分别是:

PFILE文件;

SPFILE文件;

这两种初始化参数文件中记录的内容是一模一样的,只是文件格式不一样罢了,PFILE文件就是一个文本文件,而SPFILE则是一个二进制文件。

下面就分别对这两种初始化参数文件进行总结。

PFILE文件

PFILE文件和很多的配置文件一样,就是一个简单的文本文件,使用你的文本编辑器就可以打开。可能包含以下信息:

orcl.__db_cache_size=201326592

orcl.__java_pool_size=4194304

orcl.__large_pool_size=4194304

orcl.__oracle_base='C:\Oracle11g'#ORACLE_BASE set from environment

orcl.__pga_aggregate_target=281018368

orcl.__sga_target=528482304

orcl.__shared_io_pool_size=0

orcl.__shared_pool_size=310378496

orcl.__streams_pool_size=0*.audit_file_dest='C:\Oracle11g\admin\orcl\adump'*.audit_trail='db'*.compatible='11.2.0.0.0'...

这就是PFILE文件中的一些参数信息,以key=value的形式记录。

SPFILE文件

SPFILE是一个二进制文件,如果直接打开的话,是不可阅读的。在打开数据库的情况下,我们可以运行以下命令检查当前使用的是SPFILE,还是PFILE。

SHOW PARAMETER PFILE;

当以SPFILE文件启动数据库时,则会显示出SPFILE的信息。以此我们就可以得到SPFILE的路径。

修改初始化参数

初始化参数文件中的参数是为了对数据库的资源,进程,内存等信息进行限制的,避免不了要对这些参数进行修改,以达到最优的性能。

对于PFILE文件,可以直接使用文本编辑器打开,直接编辑,简单明了。但是存在一个问题,在数据库运行时,DBA不能永久修改初始化参数的值。要想永久修改初始化参数的值,DBA需要先关闭数据库,对参数文件PFILE进行修改,然后用修改后的PFILE重新启动数据库。

当使用SPFILE文件时,修改初始化参数的SQL命令为:

-- key表示需要修改的参数名称-- value表示修改以后的新值-- COMMENT表示对该字段进行的注释-- DEFERRED表示指定修改是在下次启动实例时再生效-- SCOPE表示修改应用的范围

-- MEMORY表示仅仅是内存中,不写入SPFILE;下次实例启动时,修改就被丢弃

-- SPFILE表示写入SPFILE中,但并不立即应用到当前实例中,下次启动实例时再生效

-- BOTH(默认)表示立即生效并且写入SPFILE中-- SID表示修改应用的实例,如果指定*(默认选项),则是应用到所有实例

ALTER SYSTEM SET =

但是对于SPFILE文件的修改,灵活性则非常的大。

我们可以永久的修改初始化参数文件而不用重启数据库;

我们可以临时的修改初始化参数文件,重新启动则会丢失修改;

我们可以仅对本次会话修改初始化参数文件,会话结束则丢失修改。

使用PFILE生成SPFILE文件

初始化参数文件是一个非常重要的文件,它是DBA经过不断的调优而配置得来的,里面参数的价值千金,所以对于初始化参数的备份是必不可少的。至于备份我就不多说了,无非就是拷贝一份。如果现在我的手头只有PFILE文件,而没有SPFILE文件,那么如何生成一份SPFILE呢?

我们可以通过SQL命令,使用PFILE文件生成SPFILE文件。命令如下:

CREATE SPFILE='' FROM PFILE='';

使用SPFILE文件生成PFILE文件

如果我的手头只有SPFILE文件,那么我如何生成PFILE文件呢?同理,我们可以使用SPFILE来生成PFILE,命令如下:

-- 从指定SPFILE文件创建PFILE

CREATE PFILE='' FROM SPFILE='';-- 从当前实例所使用的SPFILE文件创建PFILE

CREATE PFILE='' FROM SPFILE;

使用初始化参数文件启动数据库

Oracle在启动实例的时候会读取初始化参数文件中的信息,如果我的手头现在有多个初始化参数文件,我想从指定的一个初始化参数文件启动数据库,那么如何从指定的初始化参数文件启动数据库呢?

数据库的STARTUP命令中可以指定从哪个PFILE来启动,但是只能指定PFILE, 不能指定SPFILE文件。

-- 指定SPFILE文件启动,出错

SQL> STARTUP SPFILE='C:\MYSPFILE.ORA';

SP2-0714: 无效的 STARTUP 选项组合-- 指定PFILE文件启动,正常启动

SQL> STARTUP PFILE='C:\mypfile.ora';

ORACLE 例程已经启动。Total System Global Area 535662592 bytes

Fixed Size 1375792 bytes

Variable Size 327156176 bytes

Database Buffers 201326592 bytes

Redo Buffers 5804032 bytes

数据库装载完毕。数据库已经打开。

总结

学习Oracle真的是一个漫长的过程。各种知识点,虽然有些知识学了,实践的机会很少;但是对于理解其它的知识点是非常有帮助的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值