Docker Desktop for WindowsでOracle Enterprise Manager Cloud Controlを試す


テスト環境

・Windows 10 Pro 20H2 19042.685
・Docker Desktop Community 2.3.0.4(Use the WSL 2 based engineを有効)
・Oracle Enterprise Manager Cloud Control 13c Release 4(13.4.0.0.0)

インストール要件

・ディスク空き容量:約70GB
・Oracleアカウント

手順

Oracle Enterprise Manager Cloud Control 13cのダウンロード

https://www.oracle.com/jp/enterprise-manager/downloads/cloud-control-downloads.html からLinux x86-64(64ビット)用の以下のファイルをダウンロードします。
em13400_linux64.bin
em13400_linux64-2.zip
em13400_linux64-3.zip
em13400_linux64-4.zip
em13400_linux64-5.zip
em13400_linux64-6.zip
em13400_linux64-7.zip
ダウンロードにはOracleアカウントが必要です。zipファイルの解凍はしないでください。

永続化のためのVolume作成

docker volume create oracle-emcc

dockerコンテナ起動

Oracle Databaseがすぐ使えるdockerイメージとしてabsolutapps/oracle-12c-eeを使わせていただきます。

docker run -d --name oracle-emcc --privileged --mount source=oracle-emcc,destination=/u01/app/oracle -v /e/docker/oracle:/eminstall --hostname oracle-db -e TZ=Asia/Tokyo -e ORACLE_CHARACTERSET=AL32UTF8 -e NLS_LANG=Japanese_Japan.AL32UTF8 -p 8080:8080 -p 1521:1521 -p 7803:7803 -p 443:443 absolutapps/oracle-12c-ee

「-v /e/docker/oracle:/eminstall」の部分は各自のダウンロードしたファイルが格納されているフォルダのパスを指定してください。「eminstall」は任意の名前です。以降ではeminstallで説明します。
DBが使えるようになるまでしばらく時間がかかります。以下でログを表示し「Done with scripts we are ready to go」が表示されるのを確認するか、ブラウザでhttp://localhost:8080/em/login にアクセスしてEM ExpressにアクセスできればOKです。

docker logs -f oracle-emcc

インストール前準備

上記のままではsqlplusで接続したときに「ORA-12547: TNS: 接続を失いました。」が発生するので以下を実行します。

docker exec -it oracle-emcc bash
[root@oracle-db /]# gosu oracle relink all

続いてOracleのパラメータ設定を行います。

[root@oracle-db /]# sqlplus /nolog
SQL> conn sys/oracle as sysdba
SQL> alter system set "optimizer_adaptive_features"=false scope=both;

SQL> System altered.

SQL> show parameter optimizer_adaptive_features

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
optimizer_adaptive_features          boolean     FALSE
SQL> exit 

レスポンス・ファイル生成

サイレント・インストールを実行するためにレスポンス・ファイルを生成します。

[root@oracle-db /]# /eminstall/em13400_linux64.bin -getResponseFileTemplates -outputLoc /u01/app/oracle

/u01/app/oracleにnew_install.rspが作成されるので以下を参考に編集します。
※変更行のみ抜粋
※PROXYの設定は各自の環境に合わせてください。

new_install.rsp
#UNIX_GROUP_NAME=<string>
#INVENTORY_LOCATION=<string>
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=false
[email protected]
#MYORACLESUPPORT_PASSWORD=<string>
INSTALL_UPDATES_SELECTION="skip"
#STAGE_LOCATION=<string>
[email protected]
MYORACLESUPPORT_PASSWORD_FOR_SOFTWAREUPDATES=password0
#PROXY_USER=<string>
#PROXY_PWD=<string>
#PROXY_HOST=<string>
#PROXY_PORT=<string>
ORACLE_MIDDLEWARE_HOME_LOCATION="/u01/app/oracle/middleware"
#ORACLE_HOSTNAME=<string>
AGENT_BASE_DIR="/u01/app/oracle/agent"
#WLS_ADMIN_SERVER_USERNAME="weblogic"
WLS_ADMIN_SERVER_PASSWORD="password0"
WLS_ADMIN_SERVER_CONFIRM_PASSWORD="password0"
NODE_MANAGER_PASSWORD="password0"
NODE_MANAGER_CONFIRM_PASSWORD="password0"
ORACLE_INSTANCE_HOME_LOCATION="/u01/app/oracle/gc_inst"
CONFIGURE_ORACLE_SOFTWARE_LIBRARY=true
SOFTWARE_LIBRARY_LOCATION="/u01/app/oracle/library"
DATABASE_HOSTNAME="oracle-db"
LISTENER_PORT=1521
SERVICENAME_OR_SID="orcl"
SYS_PASSWORD=oracle
SYSMAN_PASSWORD=password0
SYSMAN_CONFIRM_PASSWORD=password0
DEPLOYMENT_SIZE=SMALL
MANAGEMENT_TABLESPACE_LOCATION=/u01/app/oracle/oradata/orcl/mgmt.dbf
CONFIGURATION_DATA_TABLESPACE_LOCATION=/u01/app/oracle/oradata/orcl/mgmt_ecm_depot1.dbf
JVM_DIAGNOSTICS_TABLESPACE_LOCATION=/u01/app/oracle/oradata/orcl/mgmt_deepdive.dbf
AGENT_REGISTRATION_PASSWORD=password0
AGENT_REGISTRATION_CONFIRM_PASSWORD=password0
#STATIC_PORTS_FILE=<string>
PLUGIN_SELECTION={}
b_upgrade=false
EM_INSTALL_TYPE=NOSEED
CONFIGURATION_TYPE=ADVANCED
CONFIGURE_SHARED_LOCATION_BIP=false
#CONFIG_LOCATION=<string>
#CLUSTER_LOCATION=<string>

インストール

[root@oracle-db /]# su - oracle
[oracle@oracle-db ~]$ /eminstall/em13400_linux64.bin -silent -responseFile /u01/app/oracle/new_install.rsp

マシンによりますがインストールには1時間以上かかります。

動作確認

インストールが終了したらブラウザでhttps://localhost:7803/em にアクセスするとOracle Enterprise Manager Cloud Controlのログイン画面が表示されます。ブラウザによっては安全でないといわれて最初表示できませんので、「それでも表示する」的な選択をして表示させましょう。
User Name: sysman
Password: password0
でログインしましょう!

継続して使用するために

dockerコンテナを再起動した場合、再起動後に以下のことをしなければいけません。

[root@oracle-db /]# gosu oracle relink all
[oracle@oracle-db ~]$ cd /u01/app/oracle
[oracle@oracle-db oracle]$ ./middleware/bin/emctl start oms     
Oracle Enterprise Manager Cloud Control 13c Release 4  
Copyright (c) 1996, 2020 Oracle Corporation.  All rights reserved.
Starting Oracle Management Server...

WebTier Successfully Started
Oracle Management Server Successfully Started
Oracle Management Server is Up
JVMD Engine is Up
Starting BI Publisher Server ...
BI Publisher Server Successfully Started
BI Publisher Server is Up
[oracle@oracle-db oracle]$ ./agent/agent_13.4.0.0.0/bin/emctl start agent 
Oracle Enterprise Manager Cloud Control 13c Release 4  
Copyright (c) 1996, 2020 Oracle Corporation.  All rights reserved.
Starting agent .............................................................. started.
[oracle@oracle-db oracle]$