oracel体系结构梳理----控制文件以及pfile和spfile

----控制文件

它是一个二进制文件,它描述了数据库的结构,当数据库处于mountopen状态的时候,它必须能被oracle 服务来写,它的名字默认每个操作系统都不一样的,也可以自己取,

没有这个文件,数据库不能mount,也不能恢复数据

物理结构改变的时候就会写控制文件

SQLshow parameter control

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

control_file_record_keep_time        integer     7

control_files                        string      E:\APP\ADMINISTRATOR\ORADATA\ORG11G\CONTROL01.CTL, E:\APP\ADMINISTRATOR\FAST_RECOVERY_AREA\ORG11G\CONTROL02.CTL

control_management_pack_access       string      DIAGNOSTIC+TUNING

11g两个,一般会分别放在不同磁盘上面!

在数据库进行持续运行时,将不断修改控制文件信息,如:

每次在线日志文件、数据文件的新增、修改、删除,归档等都会更新控制文件

热备份的时候

触发系统事件时

增量检查点将每三秒会唤醒DBWR,并将当前数据库的一致性信息更新到控制文件,包括实例恢复的起点REDO地址(RBA TARGET),或称LOWER RBA

STATUS 列有两种状态:

INVALID,NULL.

如果控制文件不能被检测到,就会显示为INVALID。 

如果可以检测到,就会显示NULL

 控制文件(control file)中主要包含以下内容: 

l The database name

l The timestamp of database creation

l The names and locations of associated datafiles and redo log files

l Tablespace information

l Datafile offline ranges

l The log history

l Archived log information

l Backup set and backup piece information

l Backup datafile and redo log information

l Datafile copy information

l The current log sequence number

l Checkpoint information

---修改控制文件信息

alter system set

control_files='E:\APP\ADMINISTRATOR\ORADATA\ORG11G\CONTROL01.CTL''E:\APP\ADMINISTRATOR\FAST_RECOVERY_AREA\ORG11G\CONTROL02.CTL' scope=spfile;

-----pfilespfile

create spfile='E:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILEORG11G.ORA' from pfile='E:\app\Administrator\product\11.2.0\dbhome_1\database\INITorg11g.ORA';

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

pfile是文本文件,可以手动编辑,有默认值如果设置错误则会直接忽略,使用默认值!

pfile是文本文件,是静态的,在操作系统级别手动修改,是在数据库启动的时候读,修改的参数,必须重新启动才能有效,不能立即生效

---spfile

spfile是二进制文件,是服务端参数文件,要用命令来修改。

修改一些系统参数时有时候会涉及到该文件:

alter system set parameter = value [comment=text][deferred][scope = memory | spfile | both]

[sid=sid | *]

1MEMORY(默认):改变马上修改内存,并生效,但是SPFILE没有修改,下次启动参数被还原。

2SPFILE:只是修改了SPFILE,下次启动新的参数值,当前运行参数值不生效。

3BOTH: MEMORYSPFILE都生效。

alter system set open_cursors=1000 scope=spfile;

alter system set open_cursors=1000 scope=memory

alter system set open_cursors=888 scope=both;

----pfilespfile的区别

1spfile 二进制文件,只能用命令修改,减少出错.不像pfile可以用编辑器随便改,错了也可能不报错.pfile文本文件

2. spfile的参数改动,有可能立即生效,但是pfile,改动后只能在下次启动的时候生效.

3. pfile是客户端的,spfile是在服务器端的.

4. spfile可以用rman备份,pfile不可以.

SELECT distinct ISMODIFIED, ISSYS_MODIFIABLE FROM V$PARAMETER;

MODIFIED  --- > 在会话级修改了

SYSTEM_MOD --- > 在系统级修改了

FALSE   --- > 实例启动后没有修改

alter session set

alter system set 

SELECT ISMODIFIED, ISSYS_MODIFIABLE FROM V$PARAMETER WHERE NAME='open_cursors';

ISSYS_MODIFIABLE

DEFERRED   ----->也是动态参数,对于当前session无效,下一个session生效

FALSE      ----->静态参数,需要重启db才能生效

IMMEDIATE  ----->动态参数,立即生效

SQLSELECT distinct ISMODIFIED, ISSYS_MODIFIABLE FROM V$PARAMETER;

ISMODIFIED           ISSYS_MODIFIABLE

-------------------- ------------------

FALSE                DEFERRED

FALSE                FALSE

FALSE                IMMEDIATE

MODIFIED             FALSE

SQLSELECT ISMODIFIED, ISSYS_MODIFIABLE FROM V$PARAMETER WHERE NAME='open_cursors';

ISMODIFIED           ISSYS_MODIFIABLE

-------------------- ------------------

FALSE                IMMEDIATE ----实例启动后没有修改,而且为动态参数,立即生效

--========================================================================================

---参数的类别

1显式参数:在参数文件中写了的

2.  隐式参数:默认的

3.  隐含参数:_开头的,oracle内部人员用的。

v$parameter  --- > 显示当前session的参数值。

v$system_parameter --- > 显示instance的参数值。

v$spparameter --- > 显示spfile中记录的参数值。

SELECT isdefault,name,VALUE FROM v$parameter ORDER BY name;

--查隐含参数 ---false表示你已经配置过的,true表示系统默认的,你没有配置过得

1.过时参数:在 Oracle 以前的版本中存在,但在新版本中已经淘汰了的参数,已经不再使用;

2.强调参数:就是在新版本中保留了下来,但是不希望用户使用的那些参数。

------查看过时参数

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启动的

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30018455/viewspace-1416047/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30018455/viewspace-1416047/

你可能感兴趣的:(oracel体系结构梳理----控制文件以及pfile和spfile)