----控制文件
它是一个二进制文件,它描述了数据库的结构,当数据库处于mount或open状态的时候,它必须能被oracle 服务来写,它的名字默认每个操作系统都不一样的,也可以自己取,
没有这个文件,数据库不能mount,也不能恢复数据
物理结构改变的时候就会写控制文件
SQL> show 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;
-----pfile和spfile
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 | *’]
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;
----pfile和spfile的区别
1. spfile 二进制文件,只能用命令修改,减少出错.不像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 ----->动态参数,立即生效
SQL> SELECT distinct ISMODIFIED, ISSYS_MODIFIABLE FROM V$PARAMETER;
ISMODIFIED ISSYS_MODIFIABLE
-------------------- ------------------
FALSE DEFERRED
FALSE FALSE
FALSE IMMEDIATE
MODIFIED FALSE
SQL> SELECT 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/