Oracle 参数文件
参数文件(10g中的参数文件)
主要用来记录数据库的配置文件,在数据库启动时,Oracle读取参数文件,并根据参数文件中的参数设置来配置数据库。
如内存池的分配,允许打开的进程数和会话数等。
两类参数文件:
pfile:文本文件的参数文件,可以使用vi,vim等编辑器修改,文件名通常为init<sid>.ora
spfile:二进制的参数文件,不能直接修改,只能存放在Oracle服务器端,可以使用EM或指令来修改
(alter system|session set parameter_name = values <>),
文件名通常为spfile<sid>.ora,支持RMAN备份。
优先级别:
Oracle 启动读取参数文件的顺序,如果个文件都不存在,则Oracle会报错
spfile<sid>.ora --> spfile.ora -->init<sid>.ora
参数文件的路径:*/
spfle:$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora
pfile(9i):$ORALCE_HOME/dbs/init$ORALCE_SID.ora /*10g以后一般不用init<sid>.ora*/
pfile(10g):$ORALCE_BASE/admin/$ORACLE_SID/pfile /*仅当数据库初始化时使用*/
pfile:$ORACLE_HOME/dbs/init.ora /*默认*/
/*
参数文件之间的转化
spfile 转化为pfile
pfile 转换为spfile
从spfile来生成pfile
create pfile from spfile ,执行完毕后,pfile 将保存为$ORACLE_HOME/dbs/init$ORACLE_SID.ora
也可以指定pfile 的路径:create pfile = '<dir>' from spfile;
由pfile 生成spfile
create spfile from pfile
create spfile from pfile = '<dir>'
create spfile = '<dir>' from pfile
11g中的新指令,从memeory中生成
create spfile = '<dir>' from memeory */
/*
演示:*/
spfile --> pfile
SQL> create pfile from spfile;
File created.
SQL> ho ls -al /u01/app/oracle/10g/dbs/
total 56
drwxr-x--- 2 oracle oinstall 4096 Apr 8 13:49 .
drwxr-x--- 55 oracle oinstall 4096 Apr 7 09:48 ..
-rw-r----- 1 oracle oinstall 1544 Apr 6 12:06 hc_orcl.dat
-rw-r----- 1 oracle oinstall 8385 Sep 11 1998 init.ora
-rw-r----- 1 oracle oinstall 12920 May 3 2001 initdw.ora
-rw------- 1 oracle oinstall 1155 Apr 8 13:49 initorcl.ora
-rw-r----- 1 oracle oinstall 24 Apr 6 12:06 lkORCL
-rw-r----- 1 oracle oinstall 1536 Apr 7 15:50 orapworcl
-rw-r----- 1 oracle oinstall 3584 Apr 8 11:15 spfileorcl.ora
SQL> ho cat /u01/app/oracle/10g/dbs/initorcl.ora
orcl.__db_cache_size=251658240
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=142606336
orcl.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.background_dump_dest='/u01/app/oracle/admin/orcl/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl', '/u01/app/oracle/oradata/orcl/control03.ctl'
*.core_dump_dest='/u01/app/oracle/admin/orcl/cdump'
*.db_block_size=8192
*.db_create_file_dest='/u01/app/oracle/oradata/orcl'
*.db_create_online_log_dest_1='/u01/app/oracle/disk1'
*.db_create_online_log_dest_2='/u01/app/oracle/disk2'
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orcl'
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=135266304
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=406847488
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/app/oracle/admin/orcl/udump'
pfile --> spfile
SQL> create spfile from pfile; /*使用该命令的时候不能转换,如下报错,因为当前的spfile正在使用*/
create spfile from pfile
*
ERROR at line 1:
ORA-32002: cannot create SPFILE already being used by the instance
SQL> create spfile = '/u01/app/oracle/spfileorcl.ora' from pfile;
File created.
SQL> ho cat /u01/app/oracle/spfileorcl.ora;
a*orcl.__db_cache_size=251658240
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=142606336
orcl.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.background_dump_dest='/u01/app/oracle/admin/orcl/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl','/u01/app/oracle/oradata/orcl/control03.ctl'
*.core_dump_dest='/u01/app/oracle/admin/orcl/cdump'
*.db_block_size=8192
*.db_create_file_dest='/u01/app/oracle/oradata/orcl'
*.db_create_online_log_dest_1='/u01/app/oracle/disk1'
*.db_create_online_log_dest_2='/u01/app/oracle/disk2'
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orcl'
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=135266304
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=406847488
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/app/oracle/admin/orcl/udump'
/*
转换后的使用:
假定修改了initorcl.ora中的参数,但Oracle启动是先读取spfile ,故可以在启动的时候指定用initorcl.ora来
初始化参数,启动完毕后,可以创建spfile,则下一次启动就可以使用新的spfile.
假定我们对initorcl.ora作如下修改:*/
open_cursors=600
processes=250
/*
则关闭数据库后指定以initorcl.ora参数来启动数据库*/
SQL> startup pfile = '/u01/app/oracle/10g/dbs/initorcl.ora';
ORACLE instance started.
Total System Global Area 406847488 bytes
Fixed Size 1219688 bytes
Variable Size 150995864 bytes
Database Buffers 251658240 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
SQL> create spfile from pfile; /*修改的内容将会更新到spfile*/
File created.
--查看参数文件的名字
SQL> show parameter service_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string orcl
--查看当前使用的哪个参数文件启动的
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
--强制启动Oracle后再查看是使用的哪个参数启动的。
SQL> startup force
ORACLE instance started.
Total System Global Area 406847488 bytes
Fixed Size 1219688 bytes
Variable Size 150995864 bytes
Database Buffers 251658240 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
SQL> select distinct isspecified from v$spparameter;
ISSPEC
------
TRUE
FALSE
/*
第一行为TRUE可知,是从spfile启动的,有两行,其中第二行为FALSE,表示有两个参数文件,一个是spfile,一个是pfile
再次尝试看看能否修改spfile: */
SQL> alter system set sga_target = 380m scope = spfile; /*修改成功*/
System altered.
/*
参数文件的修改:
如果是pfile ,直接使用vi,vim来修改即可
如果是spfile ,则使用 */
alter system|session set parametername = values scope = memory | spfile |both sid = 'sid' | ‘*’;
scope
memory : 只对当前实例有效,下次启动则失效
spfile : 只对spfile 修改,必须经过下一次启动才生效,当前的实例没有修改
both :内存与参数文件都将修改,当不指定scope时,缺省为both.
system | session
system :
-- 查询视图:v$parameter
isses_modifiable 可以被alter session修改
isssy_modifiable 可以被alter system修改
-- sid:
sid :只对某一个实例
* :对所有的实例修改
SQL> show parameter sga_ /*查看与sga有关的参数*/
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_max_size big integer 388M
sga_target big integer 388M
SQL> alter system set sga_max_size = 350m; /*特殊的参数不能被修改*/
alter system set sga_max_size = 350m
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SQL> a scope = spfile
1* alter system set sga_max_size = 350m scope = spfile
SQL> /
System altered.
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
orcl
SQL> alter system set sga_max_size = 350m scope = spfile sid = 'orcl';
System altered.
--只改内存
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 129M
SQL> alter system set pga_aggregate_target = 130m scope = memory;
System altered.
-- 同时修改内存和参数文件,以下两条语句等效
SQL> alter system set pga_aggregate_target = 130m scope = both;
System altered.
SQL> alter system set pga_aggregate_target = 130m ;
System altered.
--alter session
SQL> show parameter sql_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
plsql_ccflags string
plsql_code_type string INTERPRETED
plsql_compiler_flags string INTERPRETED, NON_DEBUG
plsql_debug boolean FALSE
plsql_native_library_dir string
plsql_native_library_subdir_count integer 0
plsql_optimize_level integer 2
plsql_v2_compatibility boolean FALSE
plsql_warnings string DISABLE:ALL
sql92_security boolean FALSE
sql_trace boolean FALSE
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sql_version string NATIVE
sqltune_category string DEFAULT
SQL> alter session set sql_trace = true;
Session altered.
-- 可以从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
-- TURE:可以该类型修改,FLASE:不支持该类型修改,IMMEDIATE:也是支持该类型修改
SQL> alter system set sql_version = 8; /*不支持system类型修改*/
alter system set sql_version = 8
*
ERROR at line 1:
ORA-02096: specified initialization parameter is not modifiable with this option
SQL> alter session set sql_version = 8;
ERROR:
ORA-00096: invalid value 8 for parameter sql_version, must be from among MAX,
NATIVE, 8.1.6, 8.1.5
SQL> alter session set sql_version = '8.1.6'; /*支持session类型修改*/
Session altered.
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
--系统中的常用参数:
SQL> ho ls /u01/app/oracle/10g/dbs/
hc_orcl.dat initdw.ora lkORCL spfileorcl.ora
init.ora initorcl.ora orapworcl
SQL> ho cat /u01/app/oracle/10g/dbs/initorcl.ora
/*下面的参数描述了实例相关池的分配情况*/
orcl.__db_cache_size=251658240
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=142606336
orcl.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump' /*警告日志路径*/
*.background_dump_dest='/u01/app/oracle/admin/orcl/bdump' /*后台进程日志路径*/
*.compatible='10.2.0.1.0' /*版本兼容号*/
/*下面是控制文件的信息*/
*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl','/u01/app/oracle/oradata/orcl/control03.ctl'
*.core_dump_dest='/u01/app/oracle/admin/orcl/cdump' /*服务器进程相关的日志路径*/
*.db_block_size=8192 /*内存块的大小*/
*.db_create_file_dest='/u01/app/oracle/oradata/orcl' /*tablespace ,datafile路径*/
*.db_create_online_log_dest_1='/u01/app/oracle/disk1' /*联机日志文件路径*/
*.db_create_online_log_dest_2='/u01/app/oracle/disk2' /*联机日志文件路径*/
*.db_domain='' /域名/
*.db_file_multiblock_read_count=16 /*一次可读取块的大小:*8k = 128kb*/
*.db_name='orcl' /数据库标识符/
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area' /*闪回路径*/
*.db_recovery_file_dest_size=2147483648 /*闪回区可使用的大小GB*/
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' /*共享服务器的配置参数*/
*.job_queue_processes=10 /*当前作业进程数*/
*.open_cursors=600 /*可打开的游标数*/
*.pga_aggregate_target=135266304 /*服务器进程大小*/
*.processes=250 /*描述当前可以运行的进程数*/
*.remote_login_passwordfile='EXCLUSIVE' /*远程登陆是否要用密码文件*/
*.sga_target=406847488 /*定义了sga的大小*/
*.undo_management='AUTO' /*Undo表空间的管理方式为自动管理*/
*.undo_tablespace='UNDOTBS1' /*指定使用哪一个undo表空间*/
*.user_dump_dest='/u01/app/oracle/admin/orcl/udump' /**/
--11g中的参数文件:
-- 隐藏参数:
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;
SQL> a and ksppinm like '%_allow%';
1* select ksppinm,ksppstvl from x$ksppi a,x$ksppcv b where a.indx = b.indx and ksppinm like'%_allow%'
SQL> /
KSPPINM KSPPSTVL
---------------------------------------- ----------
_allow_level_without_connect_by FALSE
_asm_allow_only_raw_disks TRUE
_asm_allow_resilver_corruption FALSE
/*
参数的删除:
对于pfile直接编辑删除即可
对于spfile 例如使用alter system set pga_aggregate_target reset将恢复到默认值 */
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 130M
SQL> alter system reset pga_aggregate_target scope = spfile sid = '*';
System altered.
-- 修改会默认值后重新启动可以看到该参数的值由M变为M
SQL> show parameter pga;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 76M
Oracle 参数文件的更多相关文章
- Oracle 参数文件及相关操作介绍
Oracle 参数文件及相关操作介绍 by:授客 QQ:1033553122 1.服务器参数文件 服务器参数文件是一个二进制文件,作为初始化参数的存储仓库.实例运行时,可用ALTER SYSTEM来改 ...
- ORACLE参数文件
一.oracle pfile/spfile区别 pfile 默认的名称为“init+例程名.ora”文件路径:E:\oracle\product\10.2.0\db_1\dbs,这是一个文本文件 ...
- oracle参数文件spfile和pfile
一.参数文件说明 PFILE(Initialiazation Parameter Files)初始化参数文件,是文本文件,可直使用文本编辑器查看.如果数据库使用的是初始化参数文件PFILE,要想永久修 ...
- Oracle 参数文件spfile
pfile和spfile 概念 ORACLE中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件,可以分为两种类型.它们是在数据库实例启动时候加载的,决定了数据库的物理结构.内存.数据库的限制 ...
- oracle参数文件与启动过程
oracle随系统启动而启动 cs65-64桌面版orcle-11.2.0.4 启动监听器,后台进程,OEM. 注意: 如果只做一和三,只能启动后台进程,监听器不启动,如果只做二和三,只能启动监听器, ...
- Oracle参数文件修改
初始化参数文件有两种,文本初始化参数文件 pfile 和二进制初始化参数文件 spfile. 动态参数文件spfile 这是Oracle推荐的初始化参数文件类型.这是一个可以写入和读取的二进制文件 ...
- Oracle参数文件—pfile与spfile
oracle的参数文件:pfile和spfile 1.pfile和spfile Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件.它们是在数据库实例启动时候加载的, ...
- MYSQL数据库的参数文件
参数文件:告诉MySQL实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还会介绍各种参数的类型. 参数文件 当MySQL实例启动时,MySQL会先去 ...
- Oracle的参数文件
参数文件的作用: 它们是在数据库实例启动时候加载的,决定了数据库的物理结构.内存.数据库的限制及系统大量的默认值.数据库的各种物理属性.指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重 ...
随机推荐
- CPU卡详解【转】
本文转载自:http://blog.csdn.net/logaa/article/details/7571805 第一部分 CPU基础知识 一.为什么用CPU卡 IC卡从接口方式上分,可以分为接触式I ...
- Groonga开源搜索引擎——列存储做聚合,没有内建分布式,分片和副本是随mysql或者postgreSQL作为存储引擎由MySQL自身来做分片和副本的
1. Characteristics of Groonga ppt:http://mroonga.org/publication/presentation/groonga-mysqluc2011.pd ...
- 【SDOI 2008】 递归数列
[题目链接] 点击打开链接 [算法] 矩阵乘法优化递推 由于本博客不支持数学公式,所以不能将矩阵画出来,请谅解! [代码] #include<bits/stdc++.h> using na ...
- Python print 输出不换行,只有空格
for x in open("/home/soyo/桌面/中期内容/6.txt"): print x, ,,,]: print x, #print 输出没有换行,只有空格 结果: ...
- 乐搏讲自动化测试- Python自动化测试前景怎么样(4)
Python言语还能够写爬虫,但仅仅只是爬虫的入门罢了.通过Python入门爬虫比较简略易学,不需要在一开始把握太多太根底太底层的常识就能够很快上手,而且很快能够做出成果,十分合适小白一开始想做出点看 ...
- nginx的负载均衡的问题
本节就聊聊采用Nginx负载均衡之后碰到的问题: Session问题 文件上传下载 通常解决服务器负载问题,都会通过多服务器分载来解决.常见的解决方案有: 网站入口通过分站链接负载(天空软件站,华军软 ...
- ASP.NET 简介(转自Wiki)
ASP.NET是由微软在.NET Framework框架中所提供,开发Web应用程序的类库,封装在System.Web.dll文件中,显露出System.Web名字空间,并提供ASP.NET网页处理. ...
- cocos creator 场景如何透明,多个canvas层级显示
转载地址:https://forum.cocos.com/t/creator-canvas/55373/14 Creator 版本:1.7 目标平台:WEB MOBILE 项目需要,页面做了多个Can ...
- JProfiler 9.1.1部署及使用
软件准备: 官网下载地址:http://www.ej-technologies.com/download/jprofiler/files 软件部署: windows安装双击即可. 注册号: L-Lar ...
- 【转】jvm类加载
类加载机制 JVM把class文件加载的内存,并对数据进行校验.转换解析和初始化,最终形成JVM可以直接使用的Java类型的过程就是加载机制. 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的生命 ...