二楷堂昴の人生忙しい

二楷堂昴の人生忙しい

二楷堂昴が技術者のために技術知識を書いていきます

Oracle12cR2をインストールしていく4/4【自宅検証用】

Oracle12cR2をインストールしていくの最後の記事です。

今回はソフトウェアのインストールが完了したサーバで、データベースを構成していきます。

せっかくなので、プラガブルデータベースも構成します。

 

書く事よりも作業を進めていきましょう。

それでは進めていきます。

データベース作成

まずはリスナーを構成します。
GUI上のoracleユーザで作業をしていきます。

netca


Oracle Net Configuration Assistantが起動します。
Listener Configurationを選択してNEXTで進みます。

f:id:nikaidosubaru:20180320232012j:plain



AddのままNEXTへ行きます。

f:id:nikaidosubaru:20180320232111j:plain


とりあえずデフォルトのLISTENERでNEXTへ行きます。
商用環境ではサービス名_listenerなどが多いですね。

f:id:nikaidosubaru:20180320232237j:plain


次も変えた記憶がないのでTCPで行きます。
Gold試験でも全然気にしたことがありません。。。。

f:id:nikaidosubaru:20180320232413j:plain


次はポート番号です。
セキュリティ的な要件がないので、デフォルトの1521で行きます。
これは商用環境で変更する事もあります。(11g時代に1度だけ)

f:id:nikaidosubaru:20180320232527j:plain


最後は他にリスナーを構成するのか確認です。
NOで終了したいと思います。

f:id:nikaidosubaru:20180320232552j:plain


「Listener configuration complete!」が表示されたらNEXTしてFINISHで完了です。

データベース作成

データベースを作成していきます。
ちなみに先ほどのリスナーですが、先に作らなくてもデータベース作成中に作る事も出来ます。
ですが、Oracle Masterの試験に出てくるのであえてnetcaを使いました。あえてね。

dbca


正常に起動すると以下の画面になります。
「Create Database」でNEXTします。

f:id:nikaidosubaru:20180320233024j:plain


次の画面では「Advanced Mode」を選択します。
色々いじるので。


f:id:nikaidosubaru:20180320233139j:plain


「Custom Database」を選択します。
色々いじるので。

f:id:nikaidosubaru:20180320233300j:plain


グローバルデータベース名とSIDを入力します。
今回はSIDにしている「orcl」にします。
グローバルデータベース名は、SID+ドメイン名であるのがほとんどです。

またコンテナデータベースを構成するので、チェックを入れてPDB名に「orclpdb」と入力します。

f:id:nikaidosubaru:20180320233551j:plain


次はEnterprise Managerになります。
12c以降では、Cloud Controlという一元管理型と、個別でのExpress(正確にはRACも見れる)に分かれています。
ここでは、Expressをポート番号5500で構成します。

f:id:nikaidosubaru:20180320233740j:plain


次は、OracleDBで使用するシステムアカウントの設定です。
検証環境なので、下のチェックボックスを選択して全ユーザ共通にします。

f:id:nikaidosubaru:20180320233914j:plain


次の画面では、割り当てるリスナーを選択します。
こちら事前作成済みの「LISTENER」をチェックします。
画面下部の「Create a New Listener」でも新規作成出来ます。今回はしません。あえてね。

f:id:nikaidosubaru:20180320234105j:plain


次の画面では特に変更しません。
しかし、高速リカバリ領域は不用意にディスク容量を食うので設定する事は少ないです。
また、ASMを利用する場合はFilesystemでは設定しません。

f:id:nikaidosubaru:20180320234254j:plain


次はデータベースのオプションです。
そもそも選択肢がないので次へ進みます。

f:id:nikaidosubaru:20180320234427j:plain


次の画面ですが、「Oracle Database Vault」は構成しません。
管理者権限を管理するオプション製品ですが、監査レベルの高いシステムでは有効ですが検証環境では邪魔なだけです。
また、「Lavel Security」も無効にします。

f:id:nikaidosubaru:20180320234619j:plain


次はメモリー管理の選択です。
デフォルトは「自動メモリー管理」ですが、ほとんどの現場でRDBとして構成する場合は「共有メモリー管理」にします。
理由はPGAに必要以上にメモリーを割り当てないためです。
DWHなどではキャッシュヒットが期待できないので、PGAを多く割り当てます。

f:id:nikaidosubaru:20180320234846j:plain


次はそのまま、デフォルトで次へ行きます。

f:id:nikaidosubaru:20180320234938j:plain


正常に設定が完了するとサマリー画面になります。
内容をチェックして問題なければ「Finish」でデータベースを作成します。

f:id:nikaidosubaru:20180320235042j:plain


データベースの作成中です。
しばらく時間がかかるのでタバコでも吸いましょう。




…オプション製品のインストールに時間がかかり過ぎて30分ほど経過




ESXの負荷状況を見てみます。

 3:50:26pm up  3:13, 445 worlds, 1 VMs, 2 vCPUs; CPU load average: 0.71, 0.76, 0.78
PCPU USED(%): 0.4 127 3.9 6.1 AVG:  34
PCPU UTIL(%): 0.7  85 3.0 5.4 AVG:  23
CORE UTIL(%):  85     8.2     AVG:  46

      ID      GID NAME             NWLD   %USED    %RUN    %SYS   %WAIT %VMWAIT    
   14959    14959 Oracle12cR2_Sin     9  135.60   92.58    0.17  808.94    0.11    
   19254    19254 esxtop.69572        1    1.80    1.43    0.00   98.77       -    
       1        1 system            138    0.49  307.32    0.01 13398.61       -   
   10678    10678 vpxa.67403         24    0.02    0.02    0.00 2400.00       -    
    5612     5612 hostd.66731        31    0.02    0.02    0.00 3100.00       -    
    2037     2037 net-lacp.66040      3    0.01    0.01    0.00  300.00       -    
   19166    19166 sshd.69539          1    0.01    0.01    0.00  100.00       -    
    5392     5392 rhttpproxy.6669    12    0.01    0.01    0.00 1200.00       -    
       8        8 helper            130    0.01    0.01    0.00 12999.64       -   
    2389     2389 nfsgssd.66249       1    0.01    0.01    0.00  100.00       -    
    3542     3542 ntpd.66460          2    0.00    0.00    0.00  200.00       -    
    4551     4551 vmware-usbarbit     1    0.00    0.00    0.00  100.00       -    
    4215     4215 ioFilterVPServe     2    0.00    0.00    0.00  200.00       -    
   10142    10142 dcbd.67335          1    0.00    0.00    0.00  100.00       -    
    5184     5184 sdrsInjector.66     1    0.00    0.00    0.00  100.00       -    
       9        9 drivers            12    0.00    0.00    0.00 1199.99       -    
    3950     3950 swapobjd.66513      1    0.00    0.00    0.00  100.00       -    
    5757     5757 storageRM.66753     1    0.00    0.00    0.00  100.00       -    
      10       10 ft                  4    0.00    0.00    0.00  400.00       -    
      11       11 vmotion             1    0.00    0.00    0.00  100.00       -    
     531      531 init.65771          1    0.00    0.00    0.00  100.00       -    
    1055     1055 vmsyslogd.65829     1    0.00    0.00    0.00  100.00       -    
    1063     1063 vmsyslogd.65830     3    0.00    0.00    0.00  300.00       -    
    1127     1127 sh.65840            1    0.00    0.00    0.00  100.00       -    
    1199     1199 vobd.65849         19    0.00    0.00    0.00 1900.00       -    
    1247     1247 sh.65873            1    0.00    0.00    0.00  100.00       -    
    1303     1303 vmkeventd.65880     1    0.00    0.00    0.00  100.00       -    
    1548     1548 vmkdevmgr.65947     1    0.00    0.00    0.00  100.00       -    


時折、COREUTILが90%を超えますが常時ではありません。
ただし、Oracleのプロセスは常に上位にあります。
あぁめんどくさいw


ようやく完了しました。
正常終了しております。


f:id:nikaidosubaru:20180321005050j:plain


データベースの作成が完了したので、次に行きたいと思います。

コンテナデータベースとプラガブルデータベース


それではOracle 12cの新機能であるコンテナデータベースとプラガブルデータベースを見ていきます。
せっかくのマルチテナントアーキテクチャなので、簡単に使ってみましょう。
oracleユーザへスイッチして、DBA権限でデータベースに接続します。

[root@oracle12c network-scripts]# su - oracle
[oracle@oracle12c ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Wed Mar 21 00:52:33 2018

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> 
SQL> 


sysdba権限で接続しました。
ではコンテナデータベースを見ていきましょう。

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL> 


ルートCDBが見えています。
次にpdbを確認します。

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO
SQL> 

PDBの元になるのが「PDB$SEED」です。
プラガブルデータベースを作成する際はPDB$SEEDを利用します。

次はCDBの共通ユーザを作成します。
マルチテナント環境では、すべてのPDBにアクセス権を持つ「共通ユーザ」とPDB単位で有効化される「ローカル・ユーザ」があります。
今回は共有ユーザの作成と、新しいPDBを作成します。
共通ユーザは、ユーザ名の接頭辞として「C##」を付加します。

SQL> CREATE USER C##nikaido IDENTIFIED BY subaru
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
; 


次に権限を付与します。
共通ユーザはCDBでのみ作成できます。

SQL> GRANT CONNECT,RESOURCE TO C##nikaido ;

Grant succeeded.

SQL> 


テスト用のプラガブルデータベースを作成します。
管理者ユーザに「nikaido」を作成します。
共通ユーザとは別のユーザです。

SQL> CREATE PLUGGABLE DATABASE testpdb ADMIN USER nikaido IDENTIFIED BY subaru
FILE_NAME_CONVERT=(
'/u01/app/oracle/oradata/orcl/pdbseed/temp01.dbf','/u01/app/oracle/oradata/orcl/testpdb/temp_testpdb.dbf',
'/u01/app/oracle/oradata/orcl/pdbseed/system01.dbf','/u01/app/oracle/oradata/orcl/testpdb/system_testpdb.dbf',
'/u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf', '/u01/app/oracle/oradata/orcl/testpdb/sysaux_testpdb.dbf')

Pluggable database created.


作成したPDBを確認します。
MOUNT状態なのでオープンしていきます。

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO
         4 TESTPDB                        MOUNTED
SQL> 


オープンしようとしたら起動中のようで拒否されました。
数秒待つと、Read Writeでオープンになります。

SQL> alter pluggable database TESTPDB open ;

Warning: PDB altered with errors.
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO
         4 TESTPDB                        READ WRITE YES
SQL> 


作成したPDBに接続します。
Alter session文で接続先を変更します。

SQL> alter session set container=testpdb;

Session altered.

SQL> 


CDBに戻る時も同じです。

SQL> alter session set container=CDB$ROOT ;

Session altered.

SQL> 


今回はコンテナデータベースとプラガブルデータベースの確認までです。
共通ユーザの動きや作成などはまた次回にします。
権限付与だけしておきます。

SQL> GRANT CREATE SESSION TO C##nikaido ;

Grant succeeded.

SQL> 
SQL> GRANT SET CONTAINER TO C##nikaido container=ALL;

Grant succeeded.

ここまではVMware環境で構成しましたが、OracleVM Boxでも一緒です。
Oracle Masterの学習向けに手順を公開しております。
やはり座学よりも実機、業務で携わっていてもコンテナデータベースを使わない事が多いので、勉強するなら手を動かすことが一番ですね。