しばたテックブログ

気分で書いている技術ブログです。

All Windows Serverな環境でOracle Real Application Clusters(RAC)を構築してみる - 7.DB構築編


本シリーズの概要と一覧はこちらからどうぞ。


最後にDatabase Configuration Assistant(DBCA)を使ってデータベースを構築していきます。

私個人の感覚としてはDBCAは昔からずっと出来の悪いツールという印象しかなく使用をあまりお勧めしません。
DBCAはデータベースの作成以外にデータベース作成スクリプトを生成する事ができますので、DBCAの使用はスクリプトの生成までにとどめて、生成されたスクリプトを自分でカスタマイズして利用するのが良いのではないかと考えています。

ただ、今回はお試しの環境なので手っ取り早くDBCAのテンプレートからデータベースを作成する事にします。

注意事項

前のエントリでOracle DatabaseをインストールしてからDBCAを起動する際には、一度oracle@contoso.localユーザーでログオフ・ログインしなおしてください。

再ログインしてユーザープロファイルを更新しないとデータベースのインストール時に以下の様なエラーが出てしまいます。

f:id:stknohg:20150917183433p:plain

DBCAを使ったデータベース構築

RAC Node #1にoracle@contoso.localユーザーでログインします。
コマンドプロンプト(or PowerShell)を起動し、dbcaと入力しDBCAを起動します。

[要管理者権限]
PS C:\Users\oracle> dbca

DBCAが起動しウィザードが表示されるので以下にスクリーンショットを貼っていきます。

f:id:stknohg:20150917183330p:plain

  • データベースの作成を選びます。

f:id:stknohg:20150917183345p:plain

  • 今回はデフォルトの構成でデータベースを作成しますを選びます。
    ただ、デフォルトの構成はデータベースの設定が小規模すぎますので実際の業務では拡張モードでの構築が必須になるかと思います。

  • 各設定を以下の様にして次へ進みます。

    • グローバル・データベース名 : GDB

    • 記憶域のタイプ : ASM

    • データベース・ファイルの位置 : +DATA

    • 高速リカバリ領域 : +DATA

    • データベース・キャラクタ・セット : JA16SJISTILDE

    • 確認パスワード : 任意のパスワード(複雑さの要件あり)

    • コンテナデータベースとして作成 : 今回はコンテナデータベースにしてみます。PDB名は PDB とします。


f:id:stknohg:20150917183355p:plain

  • 事前検証が行われるのでしばらく待ちます。

f:id:stknohg:20150917183404p:plain

  • データベース構築内容のサマリが表示されます。
    終了ボタンを押すとデータベースの構築が開始されます。

  • 今回はテンプレートからのデータベース構築なのでスクリプトの生成はできません。


f:id:stknohg:20150917183412p:plain

  • データベースの構築が開始されるので完了を待ちます。

f:id:stknohg:20150917183421p:plain

  • 構築が完了するとこの様な画面になるので閉じるを押してDBCAを終了します。

  • SYS、SYSTEM以外のユーザーのアカウントロックを解除する場合はパスワードの管理...ボタンを押してロックを解除してください。

データベース構築後の確認

クラスタの状態

コマンドプロンプトを起動し、crsctl stat res -tコマンドを打ってクラスタリソースの状態を確認してみます。

[Node #1]> crsctl stat res -t

--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
               ONLINE  ONLINE       oraserver01              STABLE
               ONLINE  ONLINE       oraserver02              STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       oraserver01              STABLE
               ONLINE  ONLINE       oraserver02              STABLE
ora.OCR.dg
               ONLINE  ONLINE       oraserver01              STABLE
               ONLINE  ONLINE       oraserver02              STABLE
ora.asm
               ONLINE  ONLINE       oraserver01              Started,STABLE
               ONLINE  ONLINE       oraserver02              Started,STABLE
ora.net1.network
               ONLINE  ONLINE       oraserver01              STABLE
               ONLINE  ONLINE       oraserver02              STABLE
ora.ons
               ONLINE  ONLINE       oraserver01              STABLE
               ONLINE  ONLINE       oraserver02              STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       oraserver02              STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       oraserver01              STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       oraserver01              STABLE
ora.MGMTLSNR
      1        ONLINE  ONLINE       oraserver01              192.168.35.31,STABLE
ora.cvu
      1        ONLINE  ONLINE       oraserver01              STABLE
ora.gdb.db
      1        ONLINE  ONLINE       oraserver01              Open,STABLE
      2        ONLINE  ONLINE       oraserver02              Open,STABLE
ora.mgmtdb
      1        ONLINE  ONLINE       oraserver01              Open,STABLE
ora.oc4j
      1        ONLINE  ONLINE       oraserver01              STABLE
ora.oraserver01.vip
      1        ONLINE  ONLINE       oraserver01              STABLE
ora.oraserver02.vip
      1        ONLINE  ONLINE       oraserver02              STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       oraserver02              STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       oraserver01              STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       oraserver01              STABLE
--------------------------------------------------------------------------------

これまでのリソースに加えてデータベースリソースora.gdb.dbが各ノードで稼働していることがわかります。

データベースへ接続

データベースインスタンスに接続して最低限の情報を確認してみます。

[Node #1]>  sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on 木 9月 17 15:51:07 2015

Copyright (c) 1982, 2014, Oracle.  All rights reserved.



Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
に接続されました。

Oracle Database 12.1.0.2.0のSE2 RACになっていることがわかります。

SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
gdb1

インスタンス名はNode #1なのでgdb1になっています。

SQL> select name, open_mode from v$pdbs;

NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
PDB                            READ WRITE

Pluggable DatabasePDBもちゃんと作られています。

Enterprise Manager Expressへの接続(HTTPS)

https://oracluster.contoso.local:5500/emへアクセスするとEnterprise Manager Express(EM Express)に接続できるはずなのですが、今回の場合は謎なエラーとなり接続できませんでした。

f:id:stknohg:20150920215507p:plain (図は調査中のものでhttp://oraserver01.contoso.local:5500/emに接続を試みたものになりますが結果は同様です)

一応ブラウザの設定でTLS 1.0-1.2は有効であるにも関わらずこのエラーとなってしまい、また、Document ID 1608258.1の不具合を疑い証明書の再生成などを試みたのですが原因を特定することはできませんでした。
以前にRACを構築した際はこの様なエラーは発生しなかったので今回の環境に固有の問題だとは思います。

2015/09/28追記 HTTPS接続エラーの対処方法

---- 追記開始 ----

このHTTTPS接続のエラーについて、原因と対処方法がわかったので追記しておきます。
EM ExpressではSSL証明書を$ORACLE_BASE\admin\<db_name>\xdb_walletフォルダ(今回の場合はD:\app\oracle\admin\GDB\xdb_wallet)に格納します。

f:id:stknohg:20150928183010p:plain

ここにあるファイルのアクセス権を見るとsystemorahome@contoso.localにのみアクセス権が与えられた状態になっており、

f:id:stknohg:20150928183029p:plain

以下の様にローカルマシンのORA_GRID_LISTENERSフルコントロールを与えてやるとHTTPS接続できる様になりました。

f:id:stknohg:20150928183627p:plain

以前にRAC環境との差分をチェックしてこの様な設定をしたのですがこれが本当に正しいやり方かまでは突き止めれませんでした。
とりあえず動かす分にはこの対応で十分だとは思います。
この件はOracle Databaseのリリースノートに"5.11 Oracle Enterprise Manager Database ExpressのURLの問題"として記載されいました。
詳細な対応方法はリンク先をみてください。

---- 追記終了 ----

Enterprise Manager Expressへの接続(HTTP)

そこで以下の様にしてHTTP接続でEM Expressに接続できる様に設定を変えたところ、HTTP接続ではうまく接続することができました。

[Node #1]>  sqlplus / as sysdba
SQL> exec dbms_xdb_config.sethttpport(8080);

f:id:stknohg:20150920220337p:plain

f:id:stknohg:20150920220348p:plain

最後が微妙に締まらない感じになってしまいましたが、お試しの環境構築なのでこれで良しとしておきます。

補足

これも今回の環境に固有の問題だとは思うのですが、データベースを構築してしばらく運用してみるとPluggable Database PDBの調子が微妙に悪く断続的にデータベースに接続できなくなる現象が発生しました。

データベースを非コンテナデータベースで再作成してみたところ問題は起きなくなったため、とりあえず運用も含めて今回の環境を試したい場合は非コンテナデータベースにしておいた方が良いかもしれません。