Mac

M1 MacBook ProにColimaでOracleDatabase18をインストールする

こちらの記事を参考に、インストールを試みましたが上手くいかないことがありましたが、何とか設定変更でインストールが成功したので、変更点について公開します。

このMacについてですが、OSはmacOS Monterey、MacBook Pro(13-inch,M1,2020)となります。

colimaのstartについてですが、インターネットを調べても以下のコマンドで起動していることがほとんどでした。

$ colima start --cpu 4 --memory 4 --disk 100 -a x86_64

ここで2つの問題が発生しました。

  • colimaのstartが失敗する
  • colimaのstartは失敗するがOracleのコンテナイメージの作成で失敗する

colimaのstartが失敗

> Using the existing instance “colima”
> [hostagent] Starting QEMU (hint: to watch the boot progress, see “/Users/issi/.lima/colima/serial.log”)
> SSH Local Port: 54681
> [hostagent] Waiting for the essential requirement 1 of 5: “ssh”
> [hostagent] QEMU has exited
> exiting, status={Running:false Degraded:false Exiting:true Errors:[] SSHLocalPort:0} (hint: see “/Users/issi/.lima/colima/ha.stderr.log”) FATA[0001] error starting vm: error at ‘starting’: exit status 1

このエラーは同僚のM1 Macで発生しました。
原因はbrewをRosettaでインストールしていることが原因でした。

まだ解決していません。

Oracleのコンテナイメージの作成で失敗

#
A fatal error has been detected by the Java Runtime Environment:
#
SIGILL (0x4) at pc=0x00007f700d212b64, pid=106, tid=0x00007f702427f700
#
JRE version: Java(TM) SE Runtime Environment (8.0_171-b11) (build 1.8.0_171-b11)
Java VM: Java HotSpot(TM) 64-Bit Server VM (25.171-b11 mixed mode linux-amd64 compressed oops)
Problematic frame:
J 461 C1 com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.checkEntityLimit(Lcom/sun/org/apache/xerces/internal/impl/XMLScanner$NameType;Lcom/sun/xml/internal/stream/Entity$ScannedEntity;II)V (50 bytes) @ 0x00007f700d212b64 [0x00007f700d212b40+0x24]

Java関連のエラーが発生しました。メモリーを8GBしても現象が変わりませんでした。

解決方法はメモリーを16GBに設定することです。

上記のコマンドですでにcolimaをスタートさせたことがある場合は設定ファイルを変更してcolimaの再起動します。

$ vi /Users/issi/.colima/default/colima.yaml
memory: 16

$ colima stop

$ colima start

コンテナの作成が成功した後で、memoryの値を4に戻しても大丈夫です。

コンテナ作成

$ docker run --name 18.4.0-xe -p 1521:1521/tcp -p 5500:5500/tcp -e ORACLE_CHARACTERSET=AL32UTF8 -v /Users/issi/docker/oracle/18.4.0-xe:/opt/oracle/oradata container-registry.oracle.com/database/express:18.4.0-xe
ORACLE PASSWORD FOR SYS AND SYSTEM: 195b0663d21da063

パスワードはコマンド直後に表示されます。
データベースはXEというものが作成されました。

Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE
mv: failed to preserve ownership for '/opt/oracle/oradata/dbconfig/XE/spfileXE.ora': Permission denied
mv: failed to preserve ownership for '/opt/oracle/oradata/dbconfig/XE/orapwXE': Permission denied
mv: failed to preserve ownership for '/opt/oracle/oradata/dbconfig/XE/listener.ora': Permission denied
mv: failed to preserve ownership for '/opt/oracle/oradata/dbconfig/XE/tnsnames.ora': Permission denied
The Oracle base remains unchanged with value /opt/oracle
#########################
DATABASE IS READY TO USE!
#########################

データベースの作成は成功しましたが、Permission Deniedのエラーが複数行表示されています。
これについてはまだ解決できていません。

データベースに接続できるところまでは確認できました。

操作方法

colima

$ colima start

起動

$ solima stop

停止

docker

$ docker start 18.4.0-xe

Oracle起動

$ docker stop 18.4.0-xe

Oracle停止