资讯专栏INFORMATION COLUMN

oracle参数文件

IT那活儿 / 2932人阅读
oracle参数文件

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!


1

1

1


参数文件主要用来记录数据库的配置,是 Oracle 中非常重要的文件。
Instance 在启动阶段读取参数文件 ,并根据参数文件中的参数设置来配置数据库。参数文件是用来约束oracle实例一种行为的参数。可以设置数据库内存,以及并发数目。
参数文件就是控制实例行为的文件。


1

2

1


参数文件中常用的参数文件:


  • SGA_TARGET;

  • PGA_AGGREGATE_TARGET;

  • DB_CACHE_SIZE;

  • DB_FILES;

  • LOG_ATCHIVE_DEST_n;

  • USER_DUMP_DEST。


1

3

1


参数文件分类:
3.1 pfile :(parameter file)静态参数文件
1)文本文件,可以使用vi,vim等编辑器修改参数;
2)修改参数下次重启实例才生效;
3)pfile 参数文件可以不在 database server 上;
4)命名方式:init+SID.ora。
3.2 spfile :(system parameter file) 动态参数文件
1)二进制文件,不可以通过编辑器修改,可以使用 EM 或指令来修改(alter system|session set parameter_name = values <>);
2)Linux 下 strings 可以查看;
3)必须在 database server 端的指定路径($ORACLE_HOME/dbs)下;
4)支持RMAN备份;
5)命名方式: spfile+SID.ora 。


1

4

1


参数文件优先级(如果3个文件都不存在,会报错)。
spfilesid.ora --> spfile.ora -->initsid.ora
内存分配(SGA和PGA)SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。


1

5

1


Oracle的系统全局区SGA由哪几个部分组成?它们的作用是什么?
5.1 数据高速缓冲区:
存放着Oracle系统最近使用过的数据库数据块(oracle数据库的数据存储于数据块中,数据块是数据库中最小的数据组织单位oracle是以数据块为单位管理数据文件的存储空间,数据块的取值范围在2KB~64KB之间,连续的数据块可组成Oracle中的另一个概念(区),区是电脑磁盘空间中分配的最小单位。
oracle数据库的逻辑组件关系如下:
oracle数据库-->表空间-->段-->区-->数据块
(在oracle11g中,数据块分为头部信息区和存储区,头部信息区不存放数据,但是存放有关存储区中表数据、索引数据的的相关信息起到引导的作用则存储区真正存放数据记录。)
5.2 共享池:
相当于程序高速缓冲区,所有的用户程序都存放在共享SQL池中。
5.3 重做日志缓冲区:
用于缓冲区在对数据进行修改的操作过程中生成的重做记录。
SGA是oracle最重要的一个内存区域。里面可以放数据块,sql语句的解析以及redo日志。
PGA代表一个会话分配的内存,一个会话分配的内存叫做一个PGA。总和就是oracle允许所有的会话使用内存的总和,SGA加上PGA基本上就是使用内存的一个总和了。
db_cache_size 在sga里面,sga包括好几部分,一部分是放数据块的,一个放数据的地方。从磁盘里面将数据读取到内存里面。db_cache_size是给数据块分配多大内存。
db_files 数据库实例允许打开多少个数据文件。


1

6

1


两种方式查看oracle初始化参数:
6.1 这些参数也可以在数据库里面看到show parameter要查看的参数名称。
但是这种方式不可以看到所有的初始化参数。要看所有的初始化参数有一张视图v$parameter。
6.2 这个视图直接看name,value就行,所有的初始化参数和值都可以看到。
Oracle启动的时候使用什么初始化参数,从oracle 10g开始就使用spfile了,再早之前使用pfile。
Pfile是一个文本文件,oracle启动的时候从文本文件里面读取初始化参数。文本文件的好处就是容易修改。
到了10g之后就不要这个文本文件了,默认是spfile。spfile其实就是一个二进制文件二进制文件的优势可以在线修改,随时都可以修改里面的内容。


1

7

1



要查看当前使用什么参数启动可以使用:

可以看到是使用spfile启动oracle,show parameter spfile值是空的就说明你是用pfile启动的,反过来也是的了。
7.1 如果spfile值为空就使用:
create spfile from pfile;
从pfile里面创建spfile;
startup force;重新启动。
7.2 要想使用pfile启动就使用:
create pfile from spfile;
从spfile里面创建pfile。
spfile和pfile是放在统一路径下面。
7.3 pfile 文件内容:
使用spfile动态修改配置信息:
修改的为会话可以打开多少个游标。
7.4 Alter system set 配置参数=数值 scope=。

1)Scope=memory  修改后立刻生效但是重启之后不会生效;

2)Scope=spfile 有的参数是不允许修改当前的状态的,如sga,必须修改完之后数据库重启才生效,所以不能在memory,both模式下修改;

只能先将配置的值写到spfile里面,再重启才生效。

3)不加scope选项默认是Scope=both,即把参数在内存里面改了即当前生效了同时写入到spfile里面去了。既改内存又改spfile。



1

8

1



修改数据库的参数有两种方式:

8.1 将spfile转为pfile。之后通过修改pfile里面的内容,修改完之后启动数据库,之后启动数据库让pfile生效。
8.2 通过命令的方式进行修改。通过命令方式改有些参数可以直接改,改完当前生效。有些参数不能当前生效只能先写到spfile里面再重新启动让其生效。
参数文件是控制实例行为的,因为实例才会去读取参数文件。数据库启动就是启动实例的过程,启动实例就是开辟oracle自己的内存之后启动后台进程。进程和内存就构成的实例。后台进程是用来联系内存和数据文件的,内存是用来存放数据的。进程内存都有了整个数据库就开始工作了。


1

9

1


在linux里面spfileoradb.ora为二进制文件,initoradb.ora 为文本文件。二进制格式spfile+sid+.ora。文本格式为init+sid+.ora。
spfile和pfile之间是可以相互之间互相转换的。
spfileoradb.ora(之前删除了,后面又重新创建了)。
如果将pfile和spfile都删除了,那么数据库就无法启动到nomount状态。
所以spfile和pfile必须存在一个才能将数据库启动到nomount状态。
(指定使用pfile启动数据库)
默认情况下由spfile和pfile,oracle是以spfile启动的。


本文作者:杨 浩

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129607.html

相关文章

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<