Oracle体系结构之参数文件管理
初始化文件用来记录oracle数据库的基本配置信息,包括内存分配信息及控制文件等。通常启动数据库时,系统读取初始化文件启动oracle数据库到nomount阶段。参数文件通常在$ORACLE_HOME/dbs/目录下,有两种文件格式保存,如下:
1、pfile:静态参数文件,一般名为init<sid>.ora,文本文件格式,linux下vi编辑器访问及修改内容,所作更改在下次启动时生效,oracle 9i后引进。
2、spfile:服务器参数文件,一般名为spfile<sid>.ora,二进制格式文件,linux下strings命令查看文件内容,所做更改永久有效,不受关闭和启动的影响,永久驻留于服务器端。支持rman备份。
oracle访问参数文件的顺序:
– spfile<SID>.ora --oracle数据库创建时自动建立的spfile文件
– spflie.ora --oracle缺省的spfile文件
– init<SID>.ora --oracle数据库创建时自动建立的pfile文件
– init.ora --oracle缺省的pfile文件
pfile和spfile文件相互转换:
pfile-->spfile:SQL>create spfile[='*****'] from pfile[='******'];
spfile-->pfile:SQL>create pfile[='******'] from spfile[='******'];
11g中的新指令,从memory中生成
create spfile = '<dir>' from memory;
查看系统参数:
SQL>show parameter <parametername>
修改参数文件参数:
pfile:vi编辑器编辑保存,下次启动有效。
spfile:alter system|session set parametername=<parametername>
scope=memory | spfile |both sid=<'sid'>|'*';
附:-- 查询视图:v$parameter
isses_modifiable 可以被alter session修改
isssy_modifiable 可以被alter system修改
-- sid:
sid :只对某一个实例
* :对所有的实例修改
-- 可以从v$parameter视图中来得到哪些可以使用alter system修改,哪些可以使用alter session来修改。
SQL> col name for a40
SQL> select NAME,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter
2 where name like 'sql%';
NAME ISSES ISSYS_MOD
---------------------------------------- ----- ---------
sql_trace TRUE IMMEDIATE
sql92_security FALSE FALSE
sql_version TRUE FALSE
sqltune_category TRUE IMMEDIATE
SQL> select distinct issys_modifiable from v$parameter;
ISSYS_MOD
---------
IMMEDIATE /*动态参数,直接修改到内存的参数alter system set <> = <>,后面不需要跟scope*/
FALSE /*静态参数,不能直接修改到内存,alter system set <> = <> scope = spfile*/
DEFERRED /*会话级别参数,直接通过alter session set <> = <>*/
SQL> select distinct isses_modifiable from v$parameter;
ISSES
-----
TRUE
FALSE
删除参数文件:
pfile:可以直接vi或vim修改或删除。
spfile:以下命令进行删除,参数文件将恢复默认值。
SQL>alter system|session reset parametername=<name>
scope= memory | spfile |both sid=<'sid'>|'*';
从指定参数文件启动数据库:
SQL>startup pfile=<dir>
SQL>startup spfile=<dir>
--查看当前使用的哪个参数文件启动的
SQL> select distinct isspecified from v$spparameter;
ISSPEC
------
FALSE
/*
如果第一个值是FALSE还是TRUE,如果是FALSE,则是pfile,否则则是spfile.
也可以尝试修改spfile ,如果报错则可以判断是从pfile启动,当然所修改的参数必须是可以修改的*/
SQL> alter system set sga_target = 200m scope = spfile;
alter system set sga_target = 200m scope = spfile
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE specified at startup
隐藏参数
SQL> desc x$ksppi /*Name列中为隐藏参数的名字*/
Name Null? Type
----------------------------------------- -------- ----------------------------
ADDR RAW(4)
INDX NUMBER
INST_ID NUMBER
KSPPINM VARCHAR2(80)
KSPPITY NUMBER
KSPPDESC VARCHAR2(255)
KSPPIFLG NUMBER
KSPPILRMFLG NUMBER
KSPPIHASH NUMBER
--下面视图中为隐藏参数的值
SQL> desc x$ksppcv
Name Null? Type
----------------------------------------- -------- ----------------------------
ADDR RAW(4)
INDX NUMBER
INST_ID NUMBER
KSPPSTVL VARCHAR2(512)
KSPPSTDVL VARCHAR2(512)
KSPPSTDF VARCHAR2(9)
KSPPSTVF NUMBER
KSPPSTCMNT VARCHAR2(255)
--使用下面的命令来查看系统中的隐藏参数;
SQL> select ksppinm,ksppstvl from x$ksppi a,x$ksppcv b where a.indx = b.indx;
and ksppinm like '%_allow%';
KSPPINM KSPPSTVL
---------------------------------------- ----------
_allow_level_without_connect_by FALSE
_asm_allow_only_raw_disks TRUE
_asm_allow_resilver_corruption FALSE
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了