0
点赞
收藏
分享

微信扫一扫

Oracle spfile

蓝莲听雨 2022-08-17 阅读 96


初始化参数文件spfile:是一个二级制文件,不能编辑,默认是放在$ORACLE_HOME/dbs下面,可以通过使用alter system来修改spfile里面的参数。

 

spfile文件是不可以编辑的,编辑了会损坏,但是可以使用strings来查看里面内容。

[oracle@Database2 dbs]$ strings spfileoradb.ora | more

oradb.__db_cache_size=1191182336

oradb.__java_pool_size=16777216

oradb.__large_pool_size=33554432

oradb.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment

oradb.__pga_aggregate_target=419430400

oradb.__sga_target=1677721600

oradb.__shared_io_pool_size=0

oradb.__shared_pool_size=419430400

 

在linux、Unix下面,默认的目录$ORACLE_HOME/dbs中搜索参数文件,按照顺序spfile<ORACLE_SID>.ora->spfile.ora->init<ORACLE_SID>.ora查找参数文件。

 

修改参数有两种方式,一种是alter system是修改整个实例的参数,另外一个是alter session是针对当前会话生效。

 

 

Oracle的参数有两种,一种是动态的,一种是静态的。动态参数允许在内存当中修改修改完之后直接生效。如果这个参数不能在内存当中修改,那么这种参数就是静态的。

SQL> alter system set memory_max_target=1024m;   ---这个不能直接在内存当中生效,是静态参数

alter system set memory_max_target=1024m

                 *

ERROR at line 1:

ORA-02095: specified initialization parameter cannot be modified

 

SQL> alter system set memory_target=1000m;  --这个可以直接修改,在内存当中生效

 

System altered.

 

可以通过视图 V$PARAMETER来查看那些参数可以修改后立刻生效。

SQL> SELECT NAME,ISSYS_MODIFIABLE FROM V$PARAMETER WHERE NAME LIKE 'memory%';

 

NAME        ISSYS_MODIFIABLE

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

memory_target        IMMEDIATE   --这个代表修改后在内存立刻生效,是动态的

memory_max_target        FALSE       --false代表是静态,不立刻生效

 

静态参数如果要修改使用scope=spfile这个选项

SQL> alter system set sga_max_size=0m scope=spfile;

 

System altered.

 

这里几个选项:(1)scope=memory,在内存当中修改,在当前实例生效,重启之后丢失,不生效(2)scope=spfile,在文件当中修改,重启实例生效(3)scope=both,在内存和spfile中修改,在当前实例生效,重启过后也生效(默认选项)

 

在没有指定scope的时候,默认使用的是both,在内存中和参数文件当中修改。

 

 

 

当使用spfile启动的时候报错,启动不到nomount状态下面就要使用spfile来创建pfile文件了,修改pfile里面的值来编辑参数。

SQL> startup force;

ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 1644M

 

将报错的参数修改为合适的值之后,再去用pfile创建spfile,用spfile启动。

SQL> create spfile from pfile;

 

File created.

 

SQL> startup force;

ORACLE instance started.

 

Total System Global Area 1302827008 bytes

Fixed Size     2262208 bytes

Variable Size  1119882048 bytes

Database Buffers   176160768 bytes

Redo Buffers     4521984 bytes

Database mounted.

Database opened.

SQL> show parameter spfile;

 

NAME      TYPE     VALUE

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

spfile      string     /u01/app/oracle/product/11.2.0

    /db_1/dbs/spfileoradb.ora

 

Oracle pfile文章请参考: pfile

举报

相关推荐

0 条评论