Gblog

おもにTips

初期化パラメータに複数の値を設定する

これもいつも忘れてしまう。例えば初期化パラメータの control_file や event など 単一のパラメータに複数の値を設定する場合の設定方法。

pfile の場合は、2行に分けて続けて書いてあげればいい。

control_files='/u01/app/oracle/oradata/ora112/control01.ctl'
control_files='/u01/app/oracle/oradata/ora112/control02.ctl'

するとこんな感じ。

SQL> select name , value from v$parameter2 where name ='control_files';

NAME            VALUE
--------------- ----------------------------------------------------------------------------------------------------
control_files   /u01/app/oracle/oradata/ora112/control01.ctl
control_files   /u01/app/oracle/oradata/ora112/control02.ctl

 

離して書くと片方しか有効にならない。

control_files='/u01/app/oracle/oradata/ora112/control01.ctl'
processes=150
control_files='/u01/app/oracle/oradata/ora112/control02.ctl'

この場合は、後者だけ有効になる。

SQL> select name , value from v$parameter2 where name ='control_files'

NAME            VALUE
--------------- ----------------------------------------------------------------------------------------------------
control_files   /u01/app/oracle/oradata/ora112/control02.ctl

 

spfile の場合は alter 文で変更するわけですが、こんなかんじ。

コロン(:) でつなげて書いてあげます。

SQL> alter system set control_files=
2 '/u01/app/oracle/oradata/ora112/control01.ctl:/u01/app/oracle/oradata/ora112/control02.ctl'
3 scope=SPFILE;

System altered.

SQL> select name , value from v$parameter2 where name ='control_files';

NAME            VALUE
--------------- ----------------------------------------------------------------------------------------------------
control_files   /u01/app/oracle/oradata/ora112/control01.ctl:/u01/app/oracle/oradata/ora112/control02.ctl

・・・・あれ?うまく設定できない。

動作変わった?

 

SQL> alter system set control_files=
2 '/u01/app/oracle/oradata/ora112/control01.ctl',
3 '/u01/app/oracle/oradata/ora112/control02.ctl'
4 scope=SPFILE;

System altered.

SQL> select name , value from v$parameter2 where name ='control_files';

NAME            VALUE
--------------- ----------------------------------------------------------------------------------------------------
control_files   /u01/app/oracle/oradata/ora112/control01.ctl
control_files   /u01/app/oracle/oradata/ora112/control02.ctl

これだと大丈夫。

間違って設定すると、(今回のように)1つの文字列として認識されてしまうので注意。