予言者と5つめのラズベリーパイ

Pi 5 で vaultwarden を動かし始めていろいろみていたら、まだメモリやディスクに余裕があると思っているところにRaspberry Pi 5 なら Oracle DB もインストールできるんだねー https://medium.com/@oryza.triznyach/oracle-database-on-the-raspberry-pi-54201d68b431 うおお(やる気)

しかしこのまま実行してみたところ Oracle のリポジトリが消えているので、 Mac(M1)でOracleDBコンテナ(Oracle Database 19c Enterprise Edition)をビルドする https://zenn.dev/gentaro_23/articles/001-oracle-container を参照、コンテナビルド、インストールまで成功した。

コンテナ内部で sqlplus をつなぐことは出来たが、ローカルネットの osqledit で接続できんかった。IPアドレスだけまちがっていたw。

あとで使用リソースについて書き足すが、なんなら専用で1台必要そう。メモリのこり 500MB とか一気に可処分領域がなくなってしまった。勉強用にしちゃあ大食いだよな。処し方に悩む。

2024-06-29T01:54:30Z オラパイ

steveswinsburg/oracle19c-docker: A docker container for running Oracle 19c - now with ARM support https://github.com/steveswinsburg/oracle19c-docker

docker-images/OracleDatabase/SingleInstance at main · oracle/docker-images https://github.com/oracle/docker-images/tree/main/OracleDatabase/SingleInstance#running-oracle-database-11gr2-express-edition-in-a-container

Oracle Database on the Raspberry Pi | by Oryza Triznyach | Medium https://medium.com/@oryza.triznyach/oracle-database-on-the-raspberry-pi-54201d68b431

docker image からシコシコと

# git clone https://github.com/oracle/docker-images.git

$ cd /orcl/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0
# mv ~/LINUX.ARM64_1919000_db_home.zip ./

$ cd /orcl/docker-images/OracleDatabase/SingleInstance/dockerfiles
# ./buildContainerImage.sh -v 19.3.0 -t oracle-db:19.3.0 -e
Checking Docker version.
Dockerfile
Checking if required packages are present and valid...
LINUX.ARM64_1919000_db_home.zip: OK
==========================
Container runtime info:
Client: Docker Engine - Community
 Version:    27.0.3
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.15.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.28.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 2
  Running: 1
  Paused: 0
  Stopped: 1
 Images: 1
 Server Version: 27.0.3
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: runc io.containerd.runc.v2
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: ae71819c4f5e67bb4d5ae76a6b735f29cc25774e
 runc version: v1.1.13-0-g58aa920
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.8.0-1006-raspi
 Operating System: Ubuntu 24.04 LTS
 OSType: linux
 Architecture: aarch64
 CPUs: 4
 Total Memory: 7.752GiB
 Name: tmpi01
 ID: 1d3c9ab2-5f08-4e91-85e4-8ca9a206fe4c
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

==========================
Building image 'oracle-db:19.3.0' ...
[+] Building 292.4s (15/15) FINISHED                                                                                                                                                      docker:default
 => [internal] load build definition from Dockerfile                                                                                                                                                0.0s
 => => transferring dockerfile: 5.06kB                                                                                                                                                              0.0s
 => WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 25)                                                                                                                     0.0s
 => [internal] load metadata for docker.io/library/oraclelinux:8                                                                                                                                    2.8s
 => [internal] load .dockerignore                                                                                                                                                                   0.0s
 => => transferring context: 2B                                                                                                                                                                     0.0s
 => [base 1/4] FROM docker.io/library/oraclelinux:8@sha256:5f8cbbe5793b8fe804c173e6a9855824136c42af38740932d9f478f2bb49c1e6                                                                        16.8s
 => => resolve docker.io/library/oraclelinux:8@sha256:5f8cbbe5793b8fe804c173e6a9855824136c42af38740932d9f478f2bb49c1e6                                                                              0.0s
 => => sha256:5f8cbbe5793b8fe804c173e6a9855824136c42af38740932d9f478f2bb49c1e6 547B / 547B                                                                                                          0.0s
 => => sha256:8f9485261ff506342912bcee042ecfdc854b76873e339667dc74f5d5d91e27ba 529B / 529B                                                                                                          0.0s
 => => sha256:b13512602456292ac02345c58b4022d76f1b88ee5eb23cfb79babba76949e653 1.49kB / 1.49kB                                                                                                      0.0s
 => => sha256:49b1237866c41540037b5c63a6124dd6f883dc794c5cfdd2fe3d89f92559c75a 99.54MB / 99.54MB                                                                                                    5.7s
 => => extracting sha256:49b1237866c41540037b5c63a6124dd6f883dc794c5cfdd2fe3d89f92559c75a                                                                                                          10.8s
 => [internal] load build context                                                                                                                                                                  16.7s
 => => transferring context: 2.42GB                                                                                                                                                                16.6s
 => [base 2/4] COPY setupLinuxEnv.sh checkSpace.sh /opt/install/                                                                                                                                    0.8s
 => [base 3/4] COPY runOracle.sh startDB.sh createDB.sh createObserver.sh dbca.rsp.tmpl setPassword.sh checkDBStatus.sh runUserScripts.sh relinkOracleBinary.sh configTcps.sh /opt/oracle/          0.0s
 => [base 4/4] RUN chmod ug+x /opt/install/*.sh &&     sync &&     /opt/install/checkSpace.sh &&     /opt/install/setupLinuxEnv.sh &&     rm -rf /opt/install                                     100.3s
 => [builder 1/2] COPY --chown=oracle:dba LINUX.ARM64_1919000_db_home.zip db_inst.rsp installDBBinaries.sh /opt/install/                                                                            4.7s
 => [builder 2/2] RUN chmod ug+x "/opt/install"/*.sh &&     sync &&     "/opt/install"/"installDBBinaries.sh" ee                                                                                  132.6s
 => [stage-2 1/4] COPY --chown=oracle:dba --from=builder /opt/oracle /opt/oracle                                                                                                                   12.0s
 => [stage-2 2/4] RUN "/opt/oracle"/oraInventory/orainstRoot.sh &&     "/opt/oracle/product/19c/dbhome_1"/root.sh                                                                                   0.4s
 => [stage-2 3/4] WORKDIR /home/oracle                                                                                                                                                              0.0s
 => [stage-2 4/4] RUN echo 'ORACLE_SID=${ORACLE_SID:-ORCLCDB}; export ORACLE_SID=${ORACLE_SID^^}' > .bashrc                                                                                         0.2s
 => exporting to image                                                                                                                                                                             14.9s
 => => exporting layers                                                                                                                                                                            14.9s
 => => writing image sha256:bc927c0128c87992bb0b46316ff463ec6831ea3e37d7927734620c665c1e12f3                                                                                                        0.0s
 => => naming to docker.io/library/oracle-db:19.3.0                                                                                                                                                 0.0s

 1 warning found (use --debug to expand):
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 25)


  Oracle Database container image for 'ee' version 19.3.0 is ready to be extended:

    --> oracle-db:19.3.0

  Build completed in 292 seconds.

サーバー起動

# docker run --name oracle-19-db -p 1521:1521 -p 5500:5500 -p 2484:2484 --ulimit nofile=1024:65536 --ulimit nproc=2047:16384 --ulimit stack=10485760:33554432 --ulimit memlock=3221225472 -e ORACLE_PWD=password1234 oracle-db:19.3.0
ORACLE EDITION: ENTERPRISE

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 01-JUL-2024 17:56:35

Copyright (c) 1991, 2023, Oracle.  All rights reserved.

Starting /opt/oracle/product/19c/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Log messages written to /opt/oracle/diag/tnslsnr/6f114b509815/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                01-JUL-2024 17:56:36
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/6f114b509815/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
The listener supports no services
The command completed successfully
[WARNING] [DBT-06208] The 'SYS' password entered does not conform to the Oracle recommended standards.
   CAUSE:
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
[WARNING] [DBT-06208] The 'SYSTEM' password entered does not conform to the Oracle recommended standards.
   CAUSE:
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
[WARNING] [DBT-06208] The 'PDBADMIN' password entered does not conform to the Oracle recommended standards.
   CAUSE:
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
Prepare for db operation
8% complete
Copying database files
31% complete
Creating and starting Oracle instance
32% complete
36% complete
40% complete
43% complete
46% complete
Completing Database Creation
51% complete
54% complete
Creating Pluggable Databases
58% complete
77% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
 /opt/oracle/cfgtoollogs/dbca/ORCLCDB.
Database Information:
Global Database Name:ORCLCDB
System Identifier(SID):ORCLCDB
Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log" for further details.

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jul 1 18:05:59 2024
Version 19.19.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.19.0.0.0

SQL>
System altered.

SQL>
System altered.

SQL>
Pluggable database altered.

SQL>
PL/SQL procedure successfully completed.

SQL> SQL>
Session altered.

SQL>
User created.

SQL>
Grant succeeded.

SQL>
Grant succeeded.

SQL>
Grant succeeded.

SQL>
User altered.

SQL> SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.19.0.0.0
The Oracle base remains unchanged with value /opt/oracle
The Oracle base remains unchanged with value /opt/oracle
#########################
DATABASE IS READY TO USE!
#########################
The following output is now a tail of the alert.log:
ORCLPDB1(3):CREATE SMALLFILE TABLESPACE "USERS" LOGGING  DATAFILE  '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED  EXTENT MANAGEMENT LOCAL  SEGMENT SPACE MANAGEMENT  AUTO
ORCLPDB1(3):Completed: CREATE SMALLFILE TABLESPACE "USERS" LOGGING  DATAFILE  '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED  EXTENT MANAGEMENT LOCAL  SEGMENT SPACE MANAGEMENT  AUTO
ORCLPDB1(3):ALTER DATABASE DEFAULT TABLESPACE "USERS"
ORCLPDB1(3):Completed: ALTER DATABASE DEFAULT TABLESPACE "USERS"
2024-07-01T18:05:59.872181+00:00
ALTER SYSTEM SET control_files='/opt/oracle/oradata/ORCLCDB/control01.ctl' SCOPE=SPFILE;
2024-07-01T18:05:59.877737+00:00
ALTER SYSTEM SET local_listener='' SCOPE=BOTH;
   ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE
Completed:    ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE

どない?

# docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          2         1         5.76GB    5.54GB (96%)
Containers      1         1         205B      0B (0%)
Local Volumes   0         0         0B        0B
Build Cache     8         0         0B        0B

たぶんだけど

いまはもう同じやりかたで動かないかも?

どっちにしても8月に ROCK 5B 届くのでそっちでもう一回チャレンジします。