RECLOGスマートフォン用の表示で見るRECLOGABOUTORACLECODEBLOG2018-06-16ORA-00838:MEMORY_TARGETの値が小さすぎるOracleORA-12514やORA-12516の記事でも書きましたが、DBのインスタンス起動時に表題のORA-00838エラーが発生するようになってしまいました。今日はその原因と解消方法について書きます。原因:初期化パラメータの値を変更したことpfileを使って起動してみる最後にpfileからspfileを再作成する原因:初期化パラメータの値を変更したこと前回『ORA-12516:リスナーは、一致するプロトコル・スタックが使用可能なハンドラを検出できませんでした。』というエラーが起きた時に、今後エラーが起きないようにするため、初期化パラメータPROCESSES(最大ユーザープロセス数)の値を変更しました。変更時には以下のSQL文を実行しました。spfile;上記のSQL文は最大ユーザープロセス数を500に変更するものです。元々のPROCESSESの値は50だったので、10倍に増やしたことになります。それを行わなかったためORA-00838エラーが発生してしまったようです。調べてみたらこういう場合はパラメータ・ファイル(pfile)から起動すれば良いとのこと。pfileを使って起動してみるpfileで起動するために、まずは現在の初期化パラメータに基づいたpfileを作成します。pfileを作成するためのSQL文は以下の通り。spfile='C:/Oracle/Administrator/product/12.1.0/dbhome_1/database/SPFILETESTDB.ORA';spfileはサーバー・パラメータ・ファイルというものです。こちらも初期化パラメータを設定するファイルですが、DBで管理しているようです。(pfileは管理していない)上記のSQL文を実行することで、指定したフォルダにinitorcl.oraというファイルが作成されます。そのままpfileを使って起動してもMEMORY_TARGETは小さいままですので、エディタでpfileを開き以下のように修正しました。sysdbaアイドル・インスタンスに接続しました。pfile='C:/Database/initorcl.ora'ORACLEインスタンスが起動しました。bytesデータベースがマウントされました。データベースがオープンされました。SQL>無事起動できました。最後にpfileからspfileを再作成するそのままではpfileの内容のみ変わっていてspfileはエラーの出る内容のままになっています。なると、また再起動時にエラーが起こることになってしまうので、修正したpfileを基にspfileを作成します。pfileからspfileを作成するSQL文は以下の通り。pfile='C:/Database/initorcl.ora';ファイルが作成されました。spfileの名前はspfile[インスタンス名].oraになるように指定してください。基本的には既にspfileが存在するはずなので同名を記述すればOKです。spfileの書き換えが済んだところでもう一度確認の為にSQL*Plus上から再起動をかけてみます。shutdownデータベースがクローズされました。データベースがディスマウントされました。ORACLEインスタンスがシャットダウンされました。startupORACLEインスタンスが起動しました。bytesデータベースがマウントされました。データベースがオープンされました。SQL>良かった、spfile経由でも無事起動できました。初期化パラメータ関係で起動しなくなった場合はこの方法で対処できそうです。Browserのトライアル版をインストールしました。(7)はてなブログをはじめよう!recroxさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。