HOME >> Tips >> Oracle

プラガブル・データベースを自動起動する設定(12.1.0.1)

2016/10/31
文書番号:20594

Oracle 12c でコンテナ・データベースとして構成している場合、OS 起動時にデータベースが起動しただけではプラガブル・データベースには接続できません。

コンテナ・データベースは起動していますが、プラガブル・データベースはオープンしていないからです。


サーバーを起動し、プラガブル・データベースへ接続するとエラーになります。


クリックで拡大

コンテナ・データベースに複数のプラガブル・データベースを持つ場合、「常にすべてが稼動するわけでない」という考えの場合、仕様としては間違ってない気もしますが。

それでもデータベース起動時に毎回手動でプラガブル・データベースを起動しないといけないとなると、 運用上は不便(複数ならなおさら)なのでコンテナ・データベース起動時にプラガブル・データベースも自動で起動するように設定します。

Oracle 12c (12.1.0.1)ではOSの起動時にプラガブル・データベースを起動するバッチを実行して起動します。


12.1.0.2 以降のバージョンであればプラガブル・データベースの設定で自動起動ができます。
プラガブル・データベースを自動起動する設定(12.1.0.2 以降)

【実行するバッチファイルを作成する】

  1. プラガブル・データベースを起動するコマンドファイルを作成します。

    以下の内容を記述して「startup.sql」とします。
    ※ファイル名は適宜変更してください。
    
    ALTER PLUGGABLE DATABASE PDBORCL OPEN;
    
    QUIT;
    
    赤字の部分は実際のプラガブル・データベース名に変更してください。
    ※複数のプラガブル・データベースがある場合は複数行記述します。
  2. 上記のコマンドを実行するバッチファイルを作成します。

    以下の内容を記述して「startuo.bat」とします。
    ※ファイル名は適宜変更してください。
    
    rem 実行ディレクトリを取得
    set current_dir=%~dp0
    
    rem SQLファイルを指定して実行する
    sqlplus sys/パスワード as sysdba @%current_dir%startup.sql
    
    赤字の部分は実際のsysユーザーのパスワードに変更してください。
    ※Windows 認証できる環境であれば不要です。

    ※手順1で作成した「Startup.sql」ファイルが「Startup.bat」と同じフォルダにある前提です。
    ※異なるフォルダに保存する際は実行パスを適宜変更してください。
  3. 手順1、2で作成した2つのファイルを任意のフォルダに配置します。

    クリックで拡大

【タスクスケジューラに登録する】

  1. キーボードの Windwos ロゴキーを押しながら「R」キーを押します。

    クリックで拡大

  2. 「ファイル名を指定して実行」ダイアログが起動します。
    「taskschd.msc」と入力して「OK」をクリックします。

    クリックで拡大
  3. タスクスケジューラが起動します。
    左ペインで「タスクスケジューラ ライブラリ」をクリックして、右ペインの「タスクの作成...」をクリックします。

    クリックで拡大
  4. 「タスクの作成」ダイアログが起動します。

    タスクの名前をわかりやすいもので設定し、次の2つの項目にチェックします
     ・ユーザーがログオンしているかどうかにかかわらず実行する
     ・最上位の特権で実行する

    クリックで拡大
  5. 「トリガー」タブをクリックして「新規」ボタンをクリックします。
    ここではタスクを実行するタイミングを設定します。

    クリックで拡大
  6. 「新しいトリガー」ダイアログが起動します。

    「タスクの開始」の項目で「スタートアップ時」を選択します。

    クリックで拡大
  7. 「詳細設定」の項目で「遅延時間を指定する」の項目にチェックを入れ、遅延時間を設定します。
    コンテナ・データベースが起動している必要があるので確実に起動する時間を指定します。
    ※環境に合わせて指定してください。画面の10分は目安ですがちょっと長いと思います。

    設定したら「OK」をクリックしてトリガーの設定を完了します。

    クリックで拡大
  8. 「操作」タブをクリックして「新規」ボタンをクリックします。
    ここでは実行するコマンドを設定します。

    クリックで拡大
  9. 「プログラム/スクリプト」の項目に、先ほど作成したバッチファイルを指定します。
    設定したら「OK」をクリックして設定を完了します。

    クリックで拡大
  10. ここまで設定したら「OK」をクリックします。

    クリックで拡大
  11. 実行するアカウントのパスワードを求められます。
    パスワードを入力して「OK」をクリックします。

    クリックで拡大
  12. タスクの一覧に追加されたことを確認してタスクスケジューラを終了します。

    クリックで拡大
  13. 再起動をしてプラガブル・データベースが自動で起動されるか確認します。

【参考情報】


プラガブル・データベースを自動起動する設定(12.1.0.2 以降)