トップ > DBA入門 > 6章
6章 初期化パラメータ
それでは本章では初期化パラメータの設定方法について学んでいきます。

初期化パラメータについて


初期化パラメータファイルはデータベースの設定情報が記載されたファイルです。
データベースがNOUMOUNTになるときに読み込まれ、
その設定値に従って、インスタンスを起動します。
初期化パラメータファイルは$ORACLE_HOME/dbs配下に格納されています。


初期化パラメータファイルはバイナリファイルと、
テキストファイルの2種類があります。

SPFILE(サーバパラメータファイル)
PFILE(パラメータファイル)

それでは初期化パラメータにはどのようなパラメータが存在するのでしょうか。
パラメータの数は100以上あり、すべて抑えるのは大変です。
今回は一部のパラメータをご紹介します。

[構文] 初期化パラメータの確認
SQL> show parameter [パラメータ名]

パラメータ名を省略した場合は、すべてのパラメータを表示します。

  SQL> show parameter

  NAME                                 TYPE        VALUE
  ------------------------------------ ----------- -----------
  DBFIPS_140                           boolean     FALSE
  O7_DICTIONARY_ACCESSIBILITY          boolean     FALSE
  active_instance_count                integer
  aq_tm_processes                      integer     1
  archive_lag_target                   integer     0
  asm_diskgroups                       string
  
  …省略…

  SQL> show parameter instance_name

  NAME                                 TYPE        VALUE
  ------------------------------------ ----------- -----------
  instance_name                        string      orcl
 

ではパラメータの一部をご紹介します。

DB_BLOCK_SIZE データブロックのサイズ
DB_NAME データベース名
CONTROL_FILES 制御ファイルのパス
DB_CACHE_SIZE データベースバッファ
キャッシュのサイズ
PGA_AGGREGATE_TARGET PGA合計サイズ
SGA_TARGET SGA合計サイズ
UNDO_TABLESPACE UNDO表領域名

SPFILEでのパラメータ変更


バイナリ形式のSPFILEの場合、パラメータの変更はSQL文で変更します。

[構文] 初期化パラメータの変更
SQL> ALTER SYSTEM SET パラメータ名 = 値
  2> [ SCOPE= [ MEMORY | SPFILE | BOTH ];
  ※デフォルトはboth

MEMORY


現在のインスタンスだけ変更を反映。DBの再起動後は元の設定に戻る。

SPFILE


SPFILEに変更を反映。DBの再起動後、変更したパラメータが適用される。

BOTH


memoryとspfileの両方。現在のインスタンス上に反映され、
DB再起動後も変更したパラメータが有効になる。
scope句を省略した場合のデフォルト。

  SQL> show parameter db_cache_size

  NAME                                 TYPE        VALUE
  ------------------------------------ ----------- --------------
  db_cache_size                        big integer 0

  SQL> alter system set db_cache_size = 100M;

  System altered.

  SQL> show parameter db_cache_size

  NAME                                 TYPE        VALUE
  ------------------------------------ ----------- --------------
  db_cache_size                        big integer 100M
  

上記では、db_cache_sizeを100MBに設定しています。
SCOPE句はないので、bothが使用されます。

またMEMORY,BOTHを使用できるかどうかはパラメータによって異なります。
変更できない場合は、以下のようなエラーが発生します。

  SQL> alter system set control_files = 
    2> '/u01/app/oracle/oradata/orcl/control01.ctl' ;

  alter system set control_files = 
  '/u01/app/oracle/oradata/orcl/control01.ctl'
                   *
  ERROR at line 1:
  ORA-02095: specified initialization parameter cannot be modified
 

また設定したパラメータを元に戻したい場合は、以下の構文を使用します。

[構文] 初期化パラメータのリセット
SQL> ALTER SYSTEM RESET パラメータ名
  2> [ SCOPE = SPFILE ];

RESETコマンドにはSPFILEしかない為、リセットにはDBの再起動が必要になります。

PFILEでのパラメータ変更


テキスト形式のPFILEの場合、パラメータの変更は
viコマンドなどのエディタで変更します。

  $ vi $ORACLE_HOME/dbs/initorcl.ora

   *.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
   *.audit_trail='db'
   *.compatible='12.1.0.2.0'
   *.control_files='/u01/app/oracle/oradata/orcl/control01.ctl',
                   '/u01/app/oracle/oradata/orcl/control02.ctl'
   *.db_block_size=8192
   *.db_domain=''
   *.db_name='orcl'
   *.diagnostic_dest='/u01/app/oracle'
   *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
   *.enable_pluggable_database=true
   *.memory_target=524288000
   *.nls_language='AMERICAN'
   *.nls_territory='JAPAN'
   *.open_cursors=300
   *.processes=300
   *.remote_login_passwordfile='EXCLUSIVE'
   *.undo_tablespace='UNDOTBS1'
~


本章では初期化パラメータの管理方法についてご紹介ました。
現在のバージョンではSPFILEを使用するのが通常となっています。