Oracle 参数文件及相关操作介绍
Oracle 参数文件及相关操作介绍
by:授客 QQ:1033553122
1.服务器参数文件
服务器参数文件是一个二进制文件,作为初始化参数的存储仓库。实例运行时,可用ALTER SYSTEM来改变参数值,且任何对初始化参数的改变设置不会随实例的关闭、开启而丢失。
注意:不能手工编辑SPFILE,比如用文本工具打开查看值,会损坏文件,可通过使用STARTUP命令来重写SPFILE:
1)创建一个text类型的初始化参数文件,如spf_init.ora,该文件仅包含一个参数SPFILE,参数值为实际存在的SPFILE(非默认SPFILE)的路径,如下
SPFILE = /u01/oracle/dbs/test_spfile.ora
2)启动数据库,并指定PFILE参数,参数值指向步骤1中的spf_init.ora文件路径
STARTUP PFILE = /u01/oracle/dbs/spf_init.ora
参考连接:
http://docs.oracle.com/cd/E11882_01/server.112/e25494/start.htm#CIHDFJGC
SPFILE默认文件名和缺省位置
Platform |
SPFILE Default Name |
SPFILE Default Location |
UNIX and Linux |
spfileORACLE_SID.ora |
未使用Oracle ASM:ORACLE_HOME/dbs或和数据文件处于相同未知 使用了Oracle ASM:和数据文件在相同磁盘组 |
Windows |
spfileORACLE_SID.ora |
未使用Oracle ASM:ORACLE_HOME\database 使用Oracle ASM:和数据文件在相同磁盘组 |
2.初始化参数文件
初始化参数文件是一个包含初始化参数列表的文本文件,可以以普通方式编辑。
以下是初始化参数文件中的记录样本:
PROCESSES = 100
OPEN_LINKS = 12
GLOBAL_NAMES = true
如上,对于仅含单个值的参数,记录形式为:parameter_name=value
对于包含多个值的参数,记录形式为:parameter_name=(value[,value] ...)(不推荐)
对于包含多个值的参数,建议分开写,如下,重复同一个参数名,每个参数名对应一个参数值
control_files='/u01/app/oracle/oradata/orcl/control01.ctl'
control_files='/u01/app/oracle/oradata/orcl/control02.ctl'
control_files='/u01/app/oracle/oradata/orcl/control03.ctl'
说明:
1.如果参数不支持多个值,那么仅最后一个值生效。
2.参数值为字符串类型的,必须使用引号,如下:
初始化参数文件名因操作系统平台而异。数据库管理员可以为初始化参数文件指定一个不同的名字。
任何对初始化参数文件的改变,仅在实例关闭并重启后生效。
PFILE的缺省文件名和文件位置:
平台 |
Default Name |
默认位置 |
UNIX、Linux |
initORACLE_SID.ora 例如,如数据库实例名为mynewdb,则PFILE文件名为:initmynewdb.ora |
ORACLE_HOME/dbs |
Windows |
initORACLE_SID.ora |
ORACLE_HOME\database |
注:实际测试发现,linux下默认PFILE文件名为init.ora
3.创建SPFILE
方式1:为SPFILE指定文件名及文件所在路径
CREATE SPFILE='ORACLE_HOME/dbs/test_spfile.ora'
FROM PFILE='ORACLE_HOME/dbs/init.ora';
方式2:根据当前内存中的参数值创建SPFILE文件
CREATE SPFILE FROM MEMORY;
方式3:不指定SPFILE文件名及路径(推荐,便于管理)
CREATE SPFILE FROM PFILE='ORACLE_HOME/dbs/init.ora';
说明:
1.如果创建成功则会提示 File created
2.ORACLE_HOME为实际的oracle安装主目录
3.如不为SPFILE指定文件名,则在由平台决定的默认位置创建带有默认文件名的SPFILE文件
4.采用默认SPFILE文件名和文件路径,或者指定的SPFILE文件名已存在,创建SPFILE时,会直接覆盖原有文件,且无提示
5.可能遇到的错误>>ORA-32002: cannot create SPFILE already being used by the instance,,解决方法:为SPFILE指定带文件名及路径,如下
4.改变初始化参数值
1)动态初始化参数(Dynamic initialization parameter):参数设置作用于内存实例,且立即生效
2)静态初始化参数(Static initialization parameter):参数设置不会立即生效,需要在PFILE或SPFILE中改变这些值,并在重启数据库后生效。
改变参数值
采用ALTER SYSTEM语句
例:设置参数值为CONTROL_MANAGEMENT_PACK_ACCESS值为DIAGNOSTIC+TUNING
SQL> ALTER SYSTEM SET CONTROL_MANAGEMENT_PACK_ACCESS='DIAGNOSTIC+TUNING'
2 SCOPE=BOTH;
System altered.
例:设置参数值为STATISTICS_LEVEL值为ALL,同时为参数添加注释to enable automatic database diagnostic monitoring
SQL> ALTER SYSTEM SET STATISTICS_LEVEL=ALL COMMENT='to enable automatic database diagnostic monitoring'
2 SCOPE=BOTH;
System altered.
SCOPE说明
SCOPE语句 |
描述 |
SCOPE = SPFILE |
设置仅对server parameter file起作用. 不对当前实例做任何改变.仅用于静态参数 |
SCOPE = MEMORY |
设置仅对内存实例起作用,且设置立即生效 因为命令不更新SPFILE,所以,重启实例后失效。不能用于静态参数 |
SCOPE = BOTH(缺省) |
设置对内存实例和SPFILE都起作用,且立即生效。 因为命令会更新SPFILE,所以,设置是持久的。不能用于静态参数 |
附:清空SPFILE中所有参数值ALTER SYSTEM RESET
5.导出SPFILE(创建PFILE文件)
可用CREATE PFILE语句导出SPFILE文件到一个文本初始化参数文件(PFILE。
必须有SYSDBA或SYSOPER系统权限。
法1:CREATE PFILE FROM SPFILE;
说明:不给定文件名和路径时,使用默认的文件名和默认路径
法2:CREATE PFILE='/u01/oracle/dbs/test_init.ora'
FROM SPFILE='/u01/oracle/dbs/test_spfile.ora';
法3:从当前内存中的初始化参数创建PFILE,并指定文件名和路径
CREATE PFILE='/u01/oracle/dbs/test_init.ora' FROM MEMORY;
参考连接:
http://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#ADMIN12541
作者:授客
微信/QQ:1033553122
全国软件测试QQ交流群:7156436
Git地址:https://gitee.com/ishouke
友情提示:限于时间仓促,文中可能存在错误,欢迎指正、评论!
作者五行缺钱,如果觉得文章对您有帮助,请扫描下边的二维码打赏作者,金额随意,您的支持将是我继续创作的源动力,打赏后如有任何疑问,请联系我!!!
微信打赏
支付宝打赏 全国软件测试交流QQ群
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库