株式会社コーソル

KNOWLEDGE

コーソルの技術情報

コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。

KNOWLEDGE検索人気のキーワード

Oracle DB ベストプラクティス

初期化パラメータの格納にサーバーパラメータファイル(spfile)を使用すべき理由と注意点

Oracle Databaseの動作を調整するために初期化パラメータが用意されています。
歴史的な経緯から初期化パラメータを設定するファイルに以下の2種類があります。

  • テキスト形式の初期化パラメータファイル (通称pfile, init.ora)
  • サーバーパラメータファイル (通称spfile)

01.ALTER SYSTEM SETコマンドで設定を変更できる

設定を恒久的に変更するとき、テキスト形式の初期化パラメータファイルを使用した場合では、テキスト形式の初期化パラメータファイルをテキストエディタなどで開き、修正を加える必要がありました。 サーバーパラメータファイルの場合は、ALTER SYSTEM SETコマンドで設定を変更できます。 現在起動中のインスタンスとサーバーパラメータファイルの両方の設定を変更する場合

SQL> ALTER SYSTEM SET PROCESSES=100 scope=both;

サーバーパラメータファイルの設定を変更する場合。 設定が有効になるのはインスタンス再起動後となります。

SQL> ALTER SYSTEM SET PROCESSES=100 scope=spfile;

コマンドで設定が変更可能であるため、設定変更処理をプログラム化しやく、設定ミスが発生しにくいです。

02.サーバーパラメータファイルを前提としている機能がある

自動SGA管理、自動メモリ管理のサーバーパラメータファイルを使用していることを前提としている箇所があります。 自動SGA管理、自動メモリ管理では、インスタンスの動作状態に合わせてメモリコンポーネントのサイズを調整しています。テキスト形式の初期化パラメータファイルを使用している場合、これらの調整結果は次回インスタンス起動時に引き継がれません。サーバーパラメータファイルを使用している場合、調整結果は次回インスタンス起動時に引き継がれます。

03.サーバーパラメータファイル使用時の注意点

サーバーパラメータファイルはバイナリファイルであるため、取り扱いに注意が必要が場合があります。

04.設定を削除する方法

テキスト形式の初期化パラメータファイルの場合、テキストエディタで編集可能であるため、設定が記載されている箇所を削除するだけで設定を削除できます。 しかし、サーバーパラメータファイルはテキストエディタなどのツールを用いて直接編集できないため、削除用のコマンド ALTER SYSTEM RESETを実行する必要があります。

SQL> ALTER SYSTEM RESET PROCESSES scope=spfile;

10.2以前では、ALTER SYSTEM RESETにsid句の指定が必要で、省略した場合はORA-00905が発生します。 sid句は初期化パラメータ設定が有効となるインスタンスを指定するもので、主にReal Application Clusters(RAC)環境で意味を持ちます。10.2以前のシングルインスタンス環境では、設定を削除するためにALTER SYSTEM RESET実行するときは、sid=’*’を指定すると覚えておいてください。

SQL> ALTER SYSTEM RESET PROCESSES scope=spfile sid='*';

05.サーバーパラメータファイルが破損した場合に復旧する方法

サーバーパラメータファイルが破損した場合に復旧する方法については、以下に記載しておりますので、必要に応じてあわせてご確認ください。

サーバーパラメータファイル(spfile)の復旧方法