Gblog

おもにTips

v$parameter と v$parameter2

前回の記事で使いましたが、パラメータの確認にたまに便利な v$parameter2。

たとえば、

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

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

 これだとうまく設定されていそうですが、、、

SQL> alter database mount;
alter database mount
*
行1でエラーが発生しました。:
ORA-00205: ?????????????????????????????????????????

実際には、起動できません。

 ログをみると、1つの文字列として認識されてしまっていることがわかります。

Wed Mar 16 09:26:48 2016
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/app/oracle/oradata/ora112/control01.ctl, /u01/app/oracle/oradata/ora112/control02.ctl'
ORA-27037: unable to obtain file status

このダメなケースだと。

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

NAME            VALUE
--------------- ----------------------------------------------------------------------------------------------------
control_files   /u01/app/oracle/oradata/ora112/control01.ctl, /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, /u01/app/oracle/oradata/ora112/control02.ctl

 v$parameter と v$parameter2 は同じ結果。

 

うまく設定できると、、、

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

NAME            VALUE
--------------- ----------------------------------------------------------------------------------------------------
control_files   /u01/app/oracle/oradata/ora112/control01.ctl, /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

 v$parameter2 では設定値をそれぞれ認識して別の行として表示してくれます。

 

設定値の確認には、v$parameter2 がよいかも。