[Oracle19C 数据库管理] 初始化参数

初始化参数文件

默认情况下, 初始化参数文件保存在 $ORACLE_HOME/dbs 目录中。

初始化参数分为SPFILE和Pfile两种。

  • SPFILE (Server Parameter File)
    二进制文件,可以由数据库服务器进行读写。不能进行手工的修改。相对于Pfile,它可以在系统中,使用ALTER SYSTEM命令修改参数。
    当创建DB的时候,DBCA可以创建出SPFILE。SPFILE的默认命名时SPFILE.ora。

  • PFILE (Text Initialization Parameter)
    键值对格式的配置文件,数据库服务器可以读入系统,但无法进行写入。所以系统的配置只能关闭系统后修改,然后开启系统生效。
    $ORACLE_HOME/dbs 目录有一个范例init.ora文件。可以使用这个文件创建一个init.ora, 当SPFILE不存在的时候,系统会从这个文件启动。如果Pfile不是这个名字,需要启动数据库的时候指定一下PFILE。

系统启动搜索初始化参数文件的顺序:

  1. SPFILE.ora
  2. SPFILE.ora
  3. init.ORA

查看启动的SPFILE文件

SQL> SHOW PARAMETER SPFILE;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/oracle/product/19.0.0
                                                 /dbhome_1/dbs/spfileCDBTEST.ora

通过SPFILE创建PFILE

SQL> CREATE PFILE='$ORACLE_HOME/dbs/initCDBTEST.ora' FROM SPFILE;

File created.

基本初始化参数

SQL> show parameter db_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_name                              string      CDBTEST


SQL> show parameter db_domain
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_domain                            string


db_recovery_file_dest指定了默认的快速恢复区域,这个区域内存放了备份的control file,online redo log, archive redo log, FlashBack log, rman backup。
SQL> show parameter db_recovery_file_dest;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /u01/app/oracle/fast_recovery_area

db_recovery_file_dest_size           big integer 15000M


SGA_TARGET指定了可用的内存。指定了SGA_TARGET以后,便启用了Automatic Shared Memory Management(ASMM)自动内存管理。系统自动管理SGA
的各个池用的内存。
SGA_MAX_SIZE指定了最大的内存用量。

SQL> show parameter sga
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sga_max_size                         big integer 1808M
sga_target                           big integer 0



SQL> show parameter undo_tablespace
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_tablespace                      string      UNDOTBS1


COMPATIBLE 参数指定了数据库必须维护的兼容性版本,可以在新的数据库系统运行旧版本的数据库。默认等于安装的数据库版本。
SQL> show parameter compatible

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
compatible                           string      19.0.0


SQL> show parameter control_files

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      /u01/app/oracle/oradata/CDBTEST/control01.ctl, 
                                                 /u01/app/oracle/fast_recovery_area/CDBTEST/control02.ctl

db_block_size是Oracle数据块大小,2048 - 32768,默认8192
SQL> show parameter db_block_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_size                        integer     8192


ALTER SESSION 与 ALTER SYSTEM

从V$PARAMETER视图中,可以查看参数的信息。

  • name字段 参数的名字
  • value字段 参数的值
  • isses_modifiable 是否可以在alter session中修改, true or false。
  • isses_modifiable 是否可以在alter system中修改。IMMEDIATE 修改后对所有session立即生效。 DEFFERED只对新的SESSION生效。 FALSE 下一次重启生效。
  • ispdb_modifiable 是否可以在PDB中修改这个参数, true or false。

SQL> select name, value, isses_modifiable, issys_modifiable, ispdb_modifiable
  2  from v$parameter where name = 'nls_date_format';

NAME                 VALUE           ISSES_MODIFIABLE     ISSYS_MODIFIABLE     ISPDB_MODIFIABLE
-------------------- --------------- -------------------- -------------------- --------------------
nls_date_format                      TRUE                 FALSE                TRUE

ALTER SYSTEM的SCOPE参数

  • MEMORY
    立即生效,但不写入配置文件。
    如果使用PFILE启动实例,那么只能用SCOPE=MEMORY。

  • SPFILE
    只是对SPFILE修改,下次启动时生效。
    SCOPE=SPFILE只适用于静态参数。

  • BOTH
    实例如果使用SPFILE启动,SCOPE=BOTH是默认参数。
    立即对内存的参数进行修改,并且保持在SPFILE中。

与初始化参数相关的动态视图

SHOW PARAMETER 参数名 : 可以查看参数的配置,支持模糊查询。



V$PARAMETER 存放当前会话中初始化参数的值。
V$SPPARAMETER 存放了系统的SPFILE包含的内容。

SQL> alter system set sga_target=50M scope=memory;

System altered.

SQL> select name, value from v$spparameter where name='sga_target';

NAME                           VALUE
------------------------------ ------------------------------
sga_target

SQL> select name, value from v$parameter where name='sga_target';

NAME                           VALUE
------------------------------ ------------------------------
sga_target                     67108864

V$PARAMETER2 包括当前会话生效的初始化参数。

posted on 2023-01-05 15:16  LeoZhangJing  阅读(821)  评论(0编辑  收藏  举报

导航