これもいつも忘れてしまう。例えば初期化パラメータの 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つの文字列として認識されてしまうので注意。