首页 > 数据库 > Oracle > oracle结构梳理---归档文件
org11g.__db_cache_size=419430400
org11g.__java_pool_size=16777216
org11g.__large_pool_size=16777216
org11g.__oracle_base='E:\app\Administrator'#ORACLE_BASE set from environment
org11g.__pga_aggregate_target=587202560
org11g.__sga_target=1124073472 ----实例名.表示单个的实例下
org11g.__shared_io_pool_size=0
org11g.__shared_pool_size=620756992
org11g.__streams_pool_size=33554432
*.audit_file_dest='E:\app\Administrator\admin\org11g\adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='E:\app\Administrator\oradata\org11g\control01.ctl','E:\app\Administrator\fast_recovery_area\org11g\control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='org11g'
*.db_recovery_file_dest='E:\app\Administrator\fast_recovery_area'
*.db_recovery_file_dest_size=4322230272
*.db_writer_processes=3
*.diagnostic_dest='E:\app\Administrator'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=org11gXDB)'
*.log_archive_dest_1='location=D:\oracle\archive'
*.memory_target=1698693120
*.open_cursors=300 ----前面加*表示rac环境就是所有实例环境中有效
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
----参数文件
pfile
spfile
----------------------------------------------------------------
1.spfile文件: $ORACLE_HOME/dbs/spfile.ora
在WINDOWS是在$ORACLE_HOME\database下
2.#符号是注释
在同一行可以设置多个参数,每个参数值后加空格,如
PROCESSES = 100 CPU_COUNT = 1 OPEN_CURSORS = 10
可读性太差
3. 参数值有多个枚举值,每个值必须用逗号分隔,如果是字符串,则每个枚举值用引号来区分,这里大家容易犯错。
4. 多个枚举值可以分行,用”\”作为分行符
xxx = (SEG1, SEG2, SEG3, \
SEG4, SEG5)
5. 重复设置同一个参数,以最后一次出现为准
6. *.open_cursors = 150
*表示所有的实例
7.pfile是文本文件,可以手动编辑,有默认值如果设置错误则会直接忽略,使用默认值!
pfile是文本文件,是静态的,在操作系统级别手动修改,是在数据库启动的时候读,修改的参数,必须重新启动才能有效,不能立即生效
---spfile
spfile是二进制文件,是服务端参数文件,要用命令来修改。
alter system set parameter = value [comment=’text’][deferred][scope = memory | spfile | both]
[sid=’sid | *’]
1. MEMORY(默认):改变马上修改内存,并生效,但是SPFILE没有修改,下次启动参数被还原。
2. SPFILE:只是修改了SPFILE,下次启动新的参数值,当前运行参数值不生效。
3. BOTH: MEMORY和SPFILE都生效。
alter system set open_cursors=1000 scope=spfile;
alter system set open_cursors=1000 scope=memory;
alter system set open_cursors=888 scope=both;
show parameter open_cursors
SELECT distinct ISMODIFIED, ISSYS_MODIFIABLE FROM V$PARAMETER;
MODIFIED --- > 在会话级修改了
SYSTEM_MOD --- > 在系统级修改了
FALSE --- > 实例启动后没有修改
alter session set
alter system set
ISSYS_MODIFIABLE
DEFERRED ----->也是动态参数,对于当前session无效,下一个session生效
FALSE ----->静态参数,需要重启db才能生效
IMMEDIATE ----->动态参数,立即生效
SELECT ISMODIFIED, ISSYS_MODIFIABLE FROM V$PARAMETER WHERE NAME='open_cursors';
如果是RAC设置初始化参数,那么需要指定SID
alter system set open_cursors=300 scope=spfile sid='node1';
alter system set open_cursors=300 scope=spfile sid='*';
如果是隐含参数,
必须要用双引号,而不是单引号
alter system set "_large_pool"=300 .....
pfile和spfile的区别
1. spfile 二进制文件,只能用命令修改,减少出错.不像pfile可以用编辑器随便改,错了也可能不报错.
pfile文本文件
2. spfile的参数改动,有可能立即生效,但是pfile,改动后只能在下次启动的时候生效.
3. pfile是客户端的,而spfile是在服务器端的.
4. spfile可以用rman备份,pfile不可以.
UNIX环境: 默认路径?/dbs/
WINDOWS环境: 默认路径?\database\
create spfile='$ORACLE_HOME/abc/spfileorcl.ora' from pfile='$ORACLE_HOME/dbs/initorcl.ora';
Alter system set spfile='/u01/oracle/abc/test_spfile.ora';
startup pfile='?/dbs/initorcl.ora'
startup pfile='?/abc/initorcl.ora'
----------------------------------------------
---参数的类别
1. 显式参数:在参数文件中写了的
2. 隐式参数:默认的
3. 隐含参数:以_开头的,oracle内部人员用的。
v$parameter --- > 显示当前session的参数值。
v$system_parameter --- > 显示instance的参数值。
v$spparameter --- > 显示spfile中记录的参数值。
set linesize 150
col name for a50
col value for a35
SELECT isdefault,name,VALUE FROM v$parameter ORDER BY name;
--查隐含参数 ---false表示你已经配置过得,true表示系统默认的,你没有配置过得
col name format a30
col value format a20
select name,value
from ( --GV$SYSTEM_PARAMETER
select x.inst_id as instance,
x.indx + 1,
ksppinm as name,
ksppity,
ksppstvl as value,
ksppstdf as isdefault,
decode(bitand(ksppiflg / 256, 1), 1, 'TRUE', 'FALSE') as ISEM,
decode(bitand(ksppiflg / 65536, 3),
1,
'IMMEDIATE',
2,
'DEFERRED',
'FALSE') as ISYM,
decode(bitand(ksppstvf, 7), 1, 'MODIFIED', 'FALSE') as IMOD,
decode(bitand(ksppstvf, 2), 2, 'TRUE', 'FALSE') as IADJ,
ksppdesc as description
from x$ksppi x, x$ksppsv y
where x.indx = y.indx
and substr(ksppinm, 1, 2) = '__'
and ksppinm like '%size%'
and x.inst_id = USERENV('Instance'))
order by name;
1.过时参数:在 Oracle 以前的版本中存在,但在新版本中已经淘汰了的参数,已经不再使用;
2.强调参数:就是在新版本中保留了下来,但是不希望用户使用的那些参数。
------查看过时参数
set pagesize 200
col name for a50
col ISSPECIFIE for a15
select name, isspecified from v$obsolete_parameter;--false在参数文件中没有配置,true已经过时但是还在被使用
------查看强调参数
SELECT kspponm, DECODE (ksppoflg, 1, 'Obsolete', 2, 'Underscored')
FROM x$ksppo
ORDER BY kspponm;--Obsolete 过时 Underscored 强调
show parameter spfile ---有值则是spfile启动的!10g之后均为spfile启动的,判断是spfile启动的,还是pfile启动
select ISSPECIFIED, count(*)
from v$spparameter
where ISSPECIFIED = 'TRUE'
group by ISSPECIFIED;-----ISSPECIFIED = true.就是在spfile中对应的参数是否被指定,只要有true即表示是spfile启动的
create pfile from spfile;
shutdown immediate
startup pfile='?/database/INITorg11g.ORA';
select ISSPECIFIED,count(*) from v$spparameter
where ISSPECIFIED = 'TRUE'
group by ISSPECIFIED;----count(*)=0
课外作业:
spfileorcl.ora文件移走
spfile.ora
顺序:
spfile@.ora -- >spfile.ora --- > init@.ora --- > init.ora
background_dump_dest
alert_.log
tail -1000 alert_orcl.log |grep non-default---找默认参数
ls alert*.log
tail -200 alert_orcl.log
System parameters with non-default values:
set linesize 150
col name for a20
col value for a50
select name,type,value
from v$parameter
where name = 'control_files';
select name,type,value
from v$parameter2
where name ='control_files';
v$system_parameter --- > 显示instance的参数值。
v$spparameter --- > 显示spfile中记录的参数值。
oracle五大可以重建的东西,临时表空间,undo,密码文件和参数文件,控制文件,其实连sysaux也可以重建,只是过程复杂,
飞雪的办法根据警告日志可以快速搭建一个适合该数据库的,再不行就默认安装的例子,再不行就记下db_name然后参数文件只写这一个参数就可以指定pfile打开,
那是特殊情况,其他用的就是default参数
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30018455/viewspace-1418451/ ,如需转载,请注明出处,否则将追究法律责任。