ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

Oracle公式ContainerでDockerイメージのダウンロード及び構築

OracleデーターベースをDockerで構築する

以前参考に構築したイメージがなくなり、新しく構築する必要ができたので、Oracleさんの公式Containerを利用してみました。

Oracle Container Registry

Oracle Container Registryから公式のDockerイメージをダウンロードすることが可能
ダウンロードにはサイトへのログインが必要なので、IDが無い場合は、登録が必要

f:id:haronoid:20200402133356p:plain
必要とするリポジトリを選択する。 f:id:haronoid:20200402133437p:plain

右側の欄に同意をしないと、ダウンロードできないので、ご注意
f:id:haronoid:20200402133737p:plain

最後に命令コマンドがあるのでこれを使います。
f:id:haronoid:20200402133555p:plain

イメージダウンロード

まず、コマンドラインからのログインが必要です。

docker login container-registry.oracle.com
# 手順1で登録したユーザ名とパスワードを入力
> Username: xxxxx@xxxxx
> Password: xxxxxx

ここから、Tagに有ったコマンドを実行、ダウンロードにかなり時間かかりました。

docker pull container-registry.oracle.com/database/standard:12.1.0.2

環境設定ファイル作成

common.env

TZ=Asia/Tokyo
DB_SID=ORCL
DB_PASSWD={password}
DB_DOMAIN=mylocaldomain
DB_BUNDLE=basic

コンテイナー作成

docker run -d --env-file ./common.env -p 1521:1521 -p 5500:5500 -it --name ora12c --shm-size="8g" container-registry.oracle.com/database/standard:12.1.0.2

実行はあっさり終わりましたが、ここからが時間かかりました。
Dockerログで最後のReadyまで表示されるまで待ちます。

User check : root.

Setup Oracle Database

Oracle Database 12.1.0.2 Setup

Thu Apr 2 10:28:32 JST 2020


Check parameters ......

log file is : /home/oracle/setup/log/paramChk.log

paramChk.sh is done at 0 sec

untar DB bits ......

log file is : /home/oracle/setup/log/untarDB.log

untarDB.sh is done at 276 sec

config DB ......

log file is : /home/oracle/setup/log/configDB.log

configDB.sh is done at 1334 sec

Done ! The database is ready for use .

接続情報について

接続には環境設定ファイルのDB_SIDとDB_DOMAINで決まります。
形式:{DB_SID}.{DB_DOMAIN}

Database=localhost:1521
SN=ORCL.mylocaldomain

SQLPLUS起動

docker exec -it ora12c bash -c "source /home/oracle/.bashrc; sqlplus /nolog" 

## sys ユーザ のパスワードは Oradoc_db1 で、 sysdba として接続します。
SQL> conn sys/{password}@ORCL.mylocaldomain as sysdba

DumpからDBを復元

インスタンスの中のDPDUMPフォルダーにDumpファイルをコピー

docker cp  /Downloads/MYDB.DMP ora12c:/u01/app/oracle/admin/ORCL/dpdump

コンテナに接続し、impを実行する。

docker exec -it ora12c bash
impdp system/{password} directory=DATA_PUMP_DIR dumpfile=MYDB.DMP log=expdp_MYDB.log

PASSWORDの期限を無期限にする

DEFAULTパスワード期限を無期限に設定する。

docker exec -it ora12c bash
sqlplus sys/{password} as sysdba

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

パスワード再設定

ALTER USER ユーザ名 IDENTIFIED BY 新パスワード;

ロックの解除

ALTER USER ユーザ名 ACCOUNT UNLOCK;