一,参数的分类
初始化参数的分类,按照得出方式不同,初始化参数可以分为3类:推导参数、操作系统依赖参数和可变参数。
1,推导参数
通常来自其他参数的运算,依赖其他参数得出。所以这类参数通常不需要修改。如果强制修改,那么修改值会覆盖推导值。这样的参数有很多例如:sessions参数,在oracle文档中,参数按照公式计算得出:sessions=1.1*processes)+5
缺省情况下,当processes被修改时,此参数会自动计算并生效。
2,操作系统依赖参数
某些参数的有效值或者取值范围依赖或者受限于操作系统,如db_cache_size参数,设置oracle使用的内存大小,该参数的最大值就要受限制于物理内存。这一类参数通常称为操作系统依赖参数。
3,可变参数
可变参数通常可以调整,有些设置的是限制条件,如OPEN_CURSORS;有的参数是设置容量,如:DB_CACHE_SIZE等。这类参数通常可以为DBA或最终用户调整,从而产生限制或性能变化,对oracle至关重要。
二,其他的分类方式
1,按照修改方式划分,初始化参数又可以分为静态参数和动态参数。静态参数只能在参数文件中修改,在重新启动后方能生效;动态参数可以动态调整,调整后通常可以立即生效。
2,按照获取方式不同,初始化参数又可以分为显示参数和隐式参数。显示参数可以通过v$parameter查询得到;而隐式参数通常以“_”开头,必须通过查询系统表方能获得这些参数。
三,如何@gettrcname
1,vim gettrcname.sql
----------------------------------------------------------------------
SELECT d.VALUE
|| '/'
|| LOWER (RTRIM (i.INSTANCE, CHR (0)))
|| '_ora_'
|| p.spid
|| '.trc' trace_file_name
FROM (SELECT p.spid
FROM v$mystat m, v$session s, v$process p
WHERE m.statistic# = 1 AND s.SID = m.SID AND p.addr = s.paddr) p,
(SELECT t.INSTANCE
FROM v$thread t, v$parameter v
WHERE v.NAME = 'thread'
AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
(SELECT VALUE
FROM v$parameter
WHERE NAME = 'user_dump_dest') d
/
2,SQL> @gettrcname
TRACE_FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/admin/orcl/udump/orcl_ora_3485.trc
SQL>
3,[root@rhel oracle]# cat null > /u01/app/oracle/admin/orcl/udump/orcl_ora_3485.trc
[root@rhel oracle]# cat /u01/app/oracle/admin/orcl/udump/orcl_ora_3485.trc
四,show parameter的执行的sql
1,SQL> show parameter sga;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 272M
sga_target big integer 272M
SQL>
2,[root@rhel oracle]# cat /u01/app/oracle/admin/orcl/udump/orcl_ora_3485.trc
3,SELECT NAME NAME_COL_PLUS_SHOW_PARAM,DECODE
(TYPE,1,'boolean',2,'string',3,'integer',4,'file',5,'number', 6,'big integer',
'unknown') TYPE,DISPLAY_VALUE VALUE_COL_PLUS_SHOW_PARAM FROM V$PARAMETER WHERE UPPER
(NAME) LIKE UPPER('%sga%') ORDER BY NAME_COL_PLUS_SHOW_PARAM,ROWNUM
注:刚才的那个show是被这样的一个sql执行的!
五,参数文件
1,pfile ; init.ora这个文件是根据用户创建数据库之前定义的参数自动生成的,该参数常被用来在创建过程中启动数据库,通过CreateDB.sql可以看到这个引用;
2,spfile ;spfile的引入,Oracle引入了一个视图用记录spfile的参数设置信息,这个视图是v$parameter,然而Oracle并没有像其他文件一样,在运行期间保持锁定,由于运行期并不锁定spfile,所以spfile可能会意外丢失,如果发生此类情况,oracle会不允许使用create spfile from pfile 缺省命令来重建spfile(因ORA-32002错误而失败),通常可以创建一个自定义名称的spfile文件,然后重命名为缺省名称即可。
六,scope
alter system 命令增加了一个新的选项scope。scope参数有3个可选值:memory,spfile和both。
1,memory:只改变当前实例运行,重新启动后就失效了。
2,spfile:只改变spfile的设置,不改变当前实例运行,重新启动数据库后生效。
3,both:同时修改实例和spfile,当前更改立即生效,重新启动数据库后仍然有效。
注:不带scope参数和scope=both实际上是等价的。如果修改静态参数,那么需要指定spfile参数,不能指定both参数 ,否则数据库会报错。
七,RAC环境中参数
1,针对RAC环境,alter system还可以指定SID参数,对不同的实例进行不同的设置。alter system set = scope=memory|spfile|both [sid=]在RAC环境中,如果不指定SID名称,或者指定为“*”,那么修改缺省的对所有实例生效。
2,在RAC环境中,不同实例的undo_tablespace 设置是不同的,当修改一个实例的undo空间时,一定要注意指定相应的实例,避免修改错误
select sid,name,value from v$parameter where name='undo_tablespace';可以在数据库shutdown时可以创建和修改pfile。
3,如果不慎错误的修改了参数导致数据库无法启动时,可以通过创建pfile文件,修改其中的参数,再有pfile创建spfile文件方式解决,最后又spfile正常启动数据库。
4,ALTER SYSTEM SET OPEN_CURSORS=500 SID='*' SCOPE=MEMORY;
5,select sid,name,value from v$parameter where name='open_cursors';
6,alter system open_cursors=150 scope=spfile sid='RAC1';
八,通过修改pfile定位到spfile
1,SQL> alter system set db_block_buffers=1000 scope=spfile;
System altered.
2,SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
3,SQL> startup
ORA-00824: cannot set sga_target due to existing internal settings, see alert log for more information
4,修改参数文件,删除其中的db_block_buffers参数
5,SQL> create spfile from pfile;
File created.
6,SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 75499088 bytes
Database Buffers 205520896 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
九,参数的自动调整
1,SGA_TARGET参数启用了自动SGA调整之后,Oracle会同时启用一系列的新的隐含参数控制SGA各组件的大小。例如:shared_pool_size、large_pool_size、java_pool_size、streams_pool_size等等,这
些参数的不同就是自动调整的结果,通过spfile的动态修改,这些参数值可以跨越数据库重新启动而继续生效。
2,重置SPFILE中设置的参数虽然不常用,但是oracle提供了重置参数的方法。当想恢复某个参数为缺省值时,可以使用这个命令:
alter system reset parameter sid='sid|*';
注:该命令常用于rac环境中,在单实例环境中需要指定sid='*',reset一个参数,oracle将从spfile文件中去除该参数。
3,例子:
SQL> alter system set db_block_buffers=1000 scope=spfile;
System altered.
SQL> alter system reset db_block_buffers scope=spfile sid='*';
System altered.
SQL>
十,是否使用spfile
1,查询v$parameter动态视图,如果以下查询返回空值,那么你就在用pfile。
SQL> SELECT name,value FROM v$parameter WHERE name='spfile';
NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
spfile
/u01/app/oracle/10.2.0/db_1/dbs/spfileorcl.ora
SQL>
2,或者可以使用show命令,如果value列显示空值就说明你在使用pfile:
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/10.2.0/db_1/dbs/spfileorcl.ora
SQL>
3,查询v$parameter 视图,如果返回0值,表示在使用pfile,否则在使用spfile。
SQL> SELECT COUNT(*) FROM v$parameter where value IS NOT NULL;
COUNT(*)
----------
189
SQL>
十一,备份spfile
1,Oracle把spfile也纳入到RMAN的备份恢复策略当中,如果配置了控制文件自动给备份(autoback),如果oracle会在数据库发生重大变化(如增减表空间)时自动进行控制文件及spfile文件的备份。
2,SQL> select * from v$rman_configuration;
CONF# NAME VALUE
---------- -------------------------------------------------- ------------------------
1 CONTROLFILE AUTOBACKUP ON
2 CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE 'SBT_TAPE' TO '%F'
3 CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'
SQL>
3,使用自动备份恢复spfile文件:
RMAN>restore spfile to '/tmp/spfileorcl.ora' from autobackup;
4,同样地方法恢复控制文件:
RMAN>restore spfile to '/tmp/control01.ctl' from autobackup;
如果数据库无法mount,就不能使用上述的方式恢复自动备份控制文件。在缺省的状态下,自动备份功能是关闭的。
十二,oracle查找错误:
[oracle@rhel ~]$ oerr ora 30012
30012, 00000, "undo tablespace '%s' does not exist or of wrong type"
// *Cause: the specified undo tablespace does not exist or of the
// wrong type.
// *Action: Correct the tablespace name and reissue the statement.
[oracle@rhel ~]$
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29611940/viewspace-1143691/
,如需转载,请注明出处,否则将追究法律责任。