下载镜像
➜ Oracle git clone git@github.com:oracle/docker-images.git
正克隆到 'docker-images'...
remote: Enumerating objects: 15140, done.
remote: Counting objects: 100% (2/2), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 15140 (delta 0), reused 0 (delta 0), pack-reused 15138
接收对象中: 100% (15140/15140), 10.19 MiB | 1008.00 KiB/s, 完成.
处理 delta 中: 100% (8923/8923), 完成.
➜ Oracle ll
总用量 2.9G
drwxrwxr-x 32 llc llc 4.0K 1月 5 14:21 docker-images
-rw-r--r-- 1 root root 2.9G 1月 5 14:12 LINUX.X64_193000_db_home.zip
➜ Oracle cd docker-images
➜ docker-images git:(main) ll
总用量 140K
drwxrwxr-x 6 llc llc 4.0K 1月 5 14:21 Archive
-rw-rw-r-- 1 llc llc 3.3K 1月 5 14:21 CODE_OF_CONDUCT.md
-rw-rw-r-- 1 llc llc 1.4K 1月 5 14:21 CODEOWNERS
drwxrwxr-x 3 llc llc 4.0K 1月 5 14:21 Contrib
-rw-rw-r-- 1 llc llc 9.5K 1月 5 14:21 CONTRIBUTING.md
drwxrwxr-x 3 llc llc 4.0K 1月 5 14:21 GraalVM
-rw-rw-r-- 1 llc llc 1.9K 1月 5 14:21 LICENSE.txt
drwxrwxr-x 3 llc llc 4.0K 1月 5 14:21 NoSQL
drwxrwxr-x 4 llc llc 4.0K 1月 5 14:21 OracleAccessManagement
drwxrwxr-x 3 llc llc 4.0K 1月 5 14:21 OracleBI
drwxrwxr-x 3 llc llc 4.0K 1月 5 14:21 OracleCloudInfrastructure
drwxrwxr-x 5 llc llc 4.0K 1月 5 14:21 OracleCoherence
drwxrwxr-x 4 llc llc 4.0K 1月 5 14:21 OracleDatabase
drwxrwxr-x 4 llc llc 4.0K 1月 5 14:21 OracleEssbase
drwxrwxr-x 4 llc llc 4.0K 1月 5 14:21 OracleFMWInfrastructure
drwxrwxr-x 4 llc llc 4.0K 1月 5 14:21 OracleGoldenGate
drwxrwxr-x 4 llc llc 4.0K 1月 5 14:21 OracleHTTPServer
drwxrwxr-x 5 llc llc 4.0K 1月 5 14:21 OracleIdentityGovernance
drwxrwxr-x 4 llc llc 4.0K 1月 5 14:21 OracleInstantClient
drwxrwxr-x 4 llc llc 4.0K 1月 5 14:21 OracleInternetDirectory
drwxrwxr-x 5 llc llc 4.0K 1月 5 14:21 OracleJava
drwxrwxr-x 4 llc llc 4.0K 1月 5 14:21 OracleLinuxDevelopers
drwxrwxr-x 3 llc llc 4.0K 1月 5 14:21 OracleOpenJDK
drwxrwxr-x 3 llc llc 4.0K 1月 5 14:21 OracleRestDataServices
drwxrwxr-x 4 llc llc 4.0K 1月 5 14:21 OracleSOASuite
drwxrwxr-x 5 llc llc 4.0K 1月 5 14:21 OracleUnifiedDirectory
drwxrwxr-x 4 llc llc 4.0K 1月 5 14:21 OracleUnifiedDirectorySM
drwxrwxr-x 3 llc llc 4.0K 1月 5 14:21 OracleVeridata
drwxrwxr-x 3 llc llc 4.0K 1月 5 14:21 OracleWebCenterContent
drwxrwxr-x 3 llc llc 4.0K 1月 5 14:21 OracleWebCenterPortal
drwxrwxr-x 3 llc llc 4.0K 1月 5 14:21 OracleWebCenterSites
drwxrwxr-x 4 llc llc 4.0K 1月 5 14:21 OracleWebLogic
-rw-rw-r-- 1 llc llc 3.2K 1月 5 14:21 README.md
➜ docker-images git:(main) cd OracleDatabase
➜ OracleDatabase git:(main) ll
总用量 12K
drwxrwxr-x 6 llc llc 4.0K 1月 5 14:21 RAC
-rw-rw-r-- 1 llc llc 878 1月 5 14:21 README.md
drwxrwxr-x 7 llc llc 4.0K 1月 5 14:21 SingleInstance
➜ OracleDatabase git:(main) cd SingleInstance
➜ SingleInstance git:(main) ll
总用量 56K
-rw-rw-r-- 1 llc llc 1.1K 1月 5 14:21 COPYRIGHT
drwxrwxr-x 9 llc llc 4.0K 1月 5 14:21 dockerfiles
drwxrwxr-x 6 llc llc 4.0K 1月 5 14:21 extensions
-rw-rw-r-- 1 llc llc 8.4K 1月 5 14:21 FAQ.md
drwxrwxr-x 3 llc llc 4.0K 1月 5 14:21 helm-charts
-rw-rw-r-- 1 llc llc 20K 1月 5 14:21 README.md
drwxrwxr-x 13 llc llc 4.0K 1月 5 14:21 samples
drwxrwxr-x 3 llc llc 4.0K 1月 5 14:21 tests
➜ SingleInstance git:(main) cd dockerfiles
➜ dockerfiles git:(main) ll
总用量 36K
drwxrwxr-x 2 llc llc 4.0K 1月 5 14:21 11.2.0.2
drwxrwxr-x 2 llc llc 4.0K 1月 5 14:21 12.1.0.2
drwxrwxr-x 2 llc llc 4.0K 1月 5 14:21 12.2.0.1
drwxrwxr-x 2 llc llc 4.0K 1月 5 14:21 18.3.0
drwxrwxr-x 2 llc llc 4.0K 1月 5 14:21 18.4.0
drwxrwxr-x 2 llc llc 4.0K 1月 5 14:21 19.3.0
drwxrwxr-x 2 llc llc 4.0K 1月 5 14:21 21.3.0
-rwxrwxr-x 1 llc llc 7.0K 1月 5 14:21 buildContainerImage.sh
➜ dockerfiles git:(main) cd 19.3.0
➜ 19.3.0 git:(main) ll
总用量 84K
-rwxrwxr-x 1 llc llc 1.1K 1月 5 14:21 checkDBStatus.sh
-rwxrwxr-x 1 llc llc 904 1月 5 14:21 checkSpace.sh
-rw-rw-r-- 1 llc llc 63 1月 5 14:21 Checksum.ee
-rw-rw-r-- 1 llc llc 63 1月 5 14:21 Checksum.se2
-rwxrwxr-x 1 llc llc 7.5K 1月 5 14:21 createDB.sh
-rw-rw-r-- 1 llc llc 9.0K 1月 5 14:21 dbca.rsp.tmpl
-rw-rw-r-- 1 llc llc 6.8K 1月 5 14:21 db_inst.rsp
-rw-rw-r-- 1 llc llc 4.3K 1月 5 14:21 Dockerfile
-rwxrwxr-x 1 llc llc 2.7K 1月 5 14:21 installDBBinaries.sh
-rw-rw-r-- 1 llc llc 2.0K 1月 5 14:21 relinkOracleBinary.sh
-rwxrwxr-x 1 llc llc 7.6K 1月 5 14:21 runOracle.sh
-rwxrwxr-x 1 llc llc 1021 1月 5 14:21 runUserScripts.sh
-rwxrwxr-x 1 llc llc 795 1月 5 14:21 setPassword.sh
-rwxrwxr-x 1 llc llc 1.1K 1月 5 14:21 setupLinuxEnv.sh
-rwxrwxr-x 1 llc llc 679 1月 5 14:21 startDB.sh
查看19.3版本所需安装包名称
➜ 19.3.0 git:(main) cat Dockerfile|grep INSTALL_FILE_1
INSTALL_FILE_1="LINUX.X64_193000_db_home.zip" \
COPY --chown=oracle:dba $INSTALL_FILE_1 $INSTALL_RSP $INSTALL_DB_BINARIES_FILE $INSTALL_DIR/
➜ 19.3.0 git:(main)
➜ 19.3.0 git:(main) LINUX.X64_193000_db_home.zip
zsh: command not found: LINUX.X64_193000_db_home.zip
将安装包拷贝到当前路径
➜ 19.3.0 git:(main) sudo cp /home/llc/Applications/Oracle/oracle/product/19.3.0/dbhome_1/LINUX.X64_193000_db_home.zip ./
[sudo] llc 的密码:
➜ 19.3.0 git:(main) ll
总用量 2.9G
-rwxrwxr-x 1 llc llc 1.1K 1月 5 14:21 checkDBStatus.sh
-rwxrwxr-x 1 llc llc 904 1月 5 14:21 checkSpace.sh
-rw-rw-r-- 1 llc llc 63 1月 5 14:21 Checksum.ee
-rw-rw-r-- 1 llc llc 63 1月 5 14:21 Checksum.se2
-rwxrwxr-x 1 llc llc 7.5K 1月 5 14:21 createDB.sh
-rw-rw-r-- 1 llc llc 9.0K 1月 5 14:21 dbca.rsp.tmpl
-rw-rw-r-- 1 llc llc 6.8K 1月 5 14:21 db_inst.rsp
-rw-rw-r-- 1 llc llc 4.3K 1月 5 14:21 Dockerfile
-rwxrwxr-x 1 llc llc 2.7K 1月 5 14:21 installDBBinaries.sh
-rw-r--r-- 1 root root 2.9G 1月 5 14:24 LINUX.X64_193000_db_home.zip
-rw-rw-r-- 1 llc llc 2.0K 1月 5 14:21 relinkOracleBinary.sh
-rwxrwxr-x 1 llc llc 7.6K 1月 5 14:21 runOracle.sh
-rwxrwxr-x 1 llc llc 1021 1月 5 14:21 runUserScripts.sh
-rwxrwxr-x 1 llc llc 795 1月 5 14:21 setPassword.sh
-rwxrwxr-x 1 llc llc 1.1K 1月 5 14:21 setupLinuxEnv.sh
-rwxrwxr-x 1 llc llc 679 1月 5 14:21 startDB.sh
➜ 19.3.0 git:(main) ./buildContainerImage.sh -v 19.3.0 -e
➜ 19.3.0 git:(main) pwd
/home/llc/AppData/GitHub/Oracle/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0
➜ 19.3.0 git:(main) cd ..
使用buildDockerImage.sh文件制作镜像
➜ dockerfiles git:(main) ./buildContainerImage.sh -v 19.3.0 -e
Checking Docker version.
Checking if required packages are present and valid...
LINUX.X64_193000_db_home.zip: 成功
==========================
Container runtime info:
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Docker Buildx (Docker Inc., v0.7.1-docker)
scan: Docker Scan (Docker Inc., v0.9.0)
Server:
Containers: 10
Running: 5
Paused: 0
Stopped: 5
Images: 9
Server Version: 20.10.12
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc version: v1.0.2-0-g52b36a2
init version: de40ad0
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 5.11.0-43-generic
Operating System: Ubuntu 20.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.658GiB
Name: llc-UX410UQK
ID: DL55:E6EF:HDR3:BOZU:VCHJ:B4MR:FQ53:6AN2:BWRH:YOWV:3UKF:63WX
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
==========================
Building image 'oracle/database:19.3.0-ee' ...
Sending build context to Docker daemon 3.06GB
Step 1/22 : FROM oraclelinux:7-slim as base
7-slim: Pulling from library/oraclelinux
f09c1d3b7e7b: Pull complete
Digest: sha256:09e76dbbb70c3fd3496bebbb7dd00811371d7e509a2e8179e219d3909070f744
Status: Downloaded newer image for oraclelinux:7-slim
---> 5ca608cbbc7a
Step 2/22 : LABEL "provider"="Oracle" "issues"="https://github.com/oracle/docker-images/issues" "volume.data"="/opt/oracle/oradata" "volume.setup.location1"="/opt/oracle/scripts/setup" "volume.setup.location2"="/docker-entrypoint-initdb.d/setup" "volume.startup.location1"="/opt/oracle/scripts/startup" "volume.startup.location2"="/docker-entrypoint-initdb.d/startup" "port.listener"="1521" "port.oemexpress"="5500"
---> Running in 7ac05e9a2220
Removing intermediate container 7ac05e9a2220
---> 0be542c99c67
Step 3/22 : ARG SLIMMING=true
---> Running in 4b76d1aa40a2
Removing intermediate container 4b76d1aa40a2
---> 23e4f517fcaa
Step 4/22 : ENV ORACLE_BASE=/opt/oracle ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 INSTALL_DIR=/opt/install INSTALL_FILE_1="LINUX.X64_193000_db_home.zip" INSTALL_RSP="db_inst.rsp" CONFIG_RSP="dbca.rsp.tmpl" PWD_FILE="setPassword.sh" RUN_FILE="runOracle.sh" START_FILE="startDB.sh" CREATE_DB_FILE="createDB.sh" SETUP_LINUX_FILE="setupLinuxEnv.sh" CHECK_SPACE_FILE="checkSpace.sh" CHECK_DB_FILE="checkDBStatus.sh" USER_SCRIPTS_FILE="runUserScripts.sh" INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" RELINK_BINARY_FILE="relinkOracleBinary.sh" SLIMMING=$SLIMMING ENABLE_ARCHIVELOG=false ARCHIVELOG_DIR_NAME=archive_logs CLONE_DB=false PRIMARY_DB_CONN_STR="" CHECKPOINT_FILE_EXTN=".created" WALLET_DIR=""
---> Running in 40bd9736aedd
Removing intermediate container 40bd9736aedd
---> 8e92106aebfb
Step 5/22 : ENV PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch/:/usr/sbin:$PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
---> Running in 98925e108f21
Removing intermediate container 98925e108f21
---> a936adc1350b
Step 6/22 : COPY $SETUP_LINUX_FILE $CHECK_SPACE_FILE $INSTALL_DIR/
---> d2b6b5876fb9
Step 7/22 : COPY $RUN_FILE $START_FILE $CREATE_DB_FILE $CONFIG_RSP $PWD_FILE $CHECK_DB_FILE $USER_SCRIPTS_FILE $RELINK_BINARY_FILE $ORACLE_BASE/
---> 20b8d3c38e77
Step 8/22 : RUN chmod ug+x $INSTALL_DIR/*.sh && sync && $INSTALL_DIR/$CHECK_SPACE_FILE && $INSTALL_DIR/$SETUP_LINUX_FILE && rm -rf $INSTALL_DIR
---> Running in 5c030a853991
Loaded plugins: ovl
Resolving Dependencies
--> Running transaction check
---> Package openssl.x86_64 1:1.0.2k-22.el7_9 will be installed
--> Processing Dependency: make for package: 1:openssl-1.0.2k-22.el7_9.x86_64
---> Package oracle-database-preinstall-19c.x86_64 0:1.0-3.el7 will be installed
最后出现下面提示,成功
The response file for this session can be found at:
/opt/oracle/product/19c/dbhome_1/install/response/db_2022-01-05_06-34-40AM.rsp
You can find the log of this install session at:
/tmp/InstallActions2022-01-05_06-34-40AM/installActions2022-01-05_06-34-40AM.log
As a root user, execute the following script(s):
1. /opt/oracle/oraInventory/orainstRoot.sh
2. /opt/oracle/product/19c/dbhome_1/root.sh
Execute /opt/oracle/oraInventory/orainstRoot.sh on the following nodes:
[e1fbee875bfb]
Execute /opt/oracle/product/19c/dbhome_1/root.sh on the following nodes:
[e1fbee875bfb]
Successfully Setup Software with warning(s).
Moved the install session logs to:
/opt/oracle/oraInventory/logs/InstallActions2022-01-05_06-34-40AM
Removing intermediate container e1fbee875bfb
---> 5a593704c166
Step 14/22 : FROM base
---> fb8af8ff23f1
Step 15/22 : USER oracle
---> Running in cfa9b76d7d31
Removing intermediate container cfa9b76d7d31
---> 663c021cfdeb
Step 16/22 : COPY --chown=oracle:dba --from=builder $ORACLE_BASE $ORACLE_BASE
---> 720caf9caaba
Step 17/22 : USER root
---> Running in d9c666ff79a7
Removing intermediate container d9c666ff79a7
---> 480452bff75a
Step 18/22 : RUN $ORACLE_BASE/oraInventory/orainstRoot.sh && $ORACLE_HOME/root.sh
---> Running in 8ffc9dcfc3b7
Changing permissions of /opt/oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /opt/oracle/oraInventory to dba.
The execution of the script is complete.
Check /opt/oracle/product/19c/dbhome_1/install/root_8ffc9dcfc3b7_2022-01-05_06-43-34-840050584.log for the output of root script
Removing intermediate container 8ffc9dcfc3b7
---> d069aa1ebd50
Step 19/22 : USER oracle
---> Running in 8d275df21f52
Removing intermediate container 8d275df21f52
---> 99ae5ae1a5cd
Step 20/22 : WORKDIR /home/oracle
---> Running in b0cb58dfcd01
Removing intermediate container b0cb58dfcd01
---> fbc7de4c3f8c
Step 21/22 : HEALTHCHECK --interval=1m --start-period=5m CMD "$ORACLE_BASE/$CHECK_DB_FILE" >/dev/null || exit 1
---> Running in 0cff7d40a17d
Removing intermediate container 0cff7d40a17d
---> 31c3829b6088
Step 22/22 : CMD exec $ORACLE_BASE/$RUN_FILE
---> Running in 85ad26dcadaa
Removing intermediate container 85ad26dcadaa
---> da0574edfb88
Successfully built da0574edfb88
Successfully tagged oracle/database:19.3.0-ee
Oracle Database container image for 'ee' version 19.3.0 is ready to be extended:
--> oracle/database:19.3.0-ee
Build completed in 1084 seconds.
查看镜像
➜ dockerfiles git:(main) docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
oracle/database 19.3.0-ee da0574edfb88 2 minutes ago 6.53GB
oraclelinux 7-slim 5ca608cbbc7a 4 weeks ago 132MB
准备启动容器
创建本机挂载目录
➜ docker pwd
/home/llc/AppData/docker
➜ docker mkdir oracle
➜ docker chmod 775 oracle
➜ docker ll
总用量 32K
drwxrwxr-x 4 llc llc 4.0K 6月 21 2021 fastdfs
drwxrwxr-x 24 llc llc 4.0K 9月 11 15:21 jenkins
drwxrwxr-x 4 systemd-coredump llc 4.0K 8月 16 09:47 mongo
drwxrwxr-x 3 llc llc 4.0K 6月 15 2021 mysql
drwxrwxr-x 2 llc llc 4.0K 1月 5 14:56 oracle
指定挂载本地目录启动 加-v参数,-p宿主机的1522映射容器的1521端口
➜ docker docker run --name oracle-19c -p 1522:1521 -p 5501:5500 -e ORACLE_SID=orcl -e ORACLE_PDB=pdb1 -e ORACLE_PWD=oracle -v /home/llc/AppData/docker/oracle:/opt/oracle/oradata oracle/database:19.3.0-ee
ORACLE EDITION: ENTERPRISE
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 05-JAN-2022 07:02:40
Copyright (c) 1991, 2019, 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/294ceb729665/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 05-JAN-2022 07:02:41
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/294ceb729665/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
Cannot create directory "/opt/oracle/oradata/ORCL".
8% complete
Copying database files
31% complete
100% complete
[FATAL] Recovery Manager failed to restore datafiles. Refer logs for details.
8% complete
0% complete
Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCL/ORCL.log" for further details.
[ 2022-01-05 07:02:49.776 UTC ] [WARNING] [DBT-06208] The 'SYS' password entered does not conform to the Oracle recommended standards.
[ 2022-01-05 07:02:49.777 UTC ] [WARNING] [DBT-06208] The 'SYSTEM' password entered does not conform to the Oracle recommended standards.
[ 2022-01-05 07:02:49.777 UTC ] [WARNING] [DBT-06208] The 'PDBADMIN' password entered does not conform to the Oracle recommended standards.
[ 2022-01-05 07:02:51.637 UTC ] Prepare for db operation
[ 2022-01-05 07:02:51.695 UTC ] Cannot create directory "/opt/oracle/oradata/ORCL".
DBCA_PROGRESS : 8%
[ 2022-01-05 07:02:51.698 UTC ] Copying database files
DBCA_PROGRESS : 31%
DBCA_PROGRESS : 100%
[ 2022-01-05 07:03:13.606 UTC ] [FATAL] Recovery Manager failed to restore datafiles. Refer logs for details.
DBCA_PROGRESS : 8%
DBCA_PROGRESS : 0%
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jan 5 07:03:14 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> ALTER SYSTEM SET control_files='/opt/oracle/oradata/ORCL/control01.ctl' scope=spfile
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE is in use
SQL>
System altered.
SQL> ALTER PLUGGABLE DATABASE PDB1 SAVE STATE
*
ERROR at line 1:
ORA-01109: database not open
SQL> BEGIN DBMS_XDB_CONFIG.SETGLOBALPORTENABLED (TRUE); END;
*
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'DBMS_XDB_CONFIG.SETGLOBALPORTENABLED' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
SQL> SQL>
Session altered.
SQL> CREATE USER OPS$oracle IDENTIFIED EXTERNALLY
*
ERROR at line 1:
ORA-01109: database not open
SQL> GRANT CREATE SESSION TO OPS$oracle
*
ERROR at line 1:
ORA-01109: database not open
SQL> GRANT SELECT ON sys.v_$pdbs TO OPS$oracle
*
ERROR at line 1:
ORA-01109: database not open
SQL> ALTER USER OPS$oracle SET container_data=all for sys.v_$pdbs container = current
*
ERROR at line 1:
ORA-01109: database not open
SQL> SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
ORACLE_HOME = [/home/oracle] ? ORACLE_BASE environment variable is not being set since this
information is not available for the current user ID .
You can set ORACLE_BASE manually if it is required.
Resetting ORACLE_BASE to its previous value or ORACLE_HOME
The Oracle base remains unchanged with value /opt/oracle
/opt/oracle/checkDBStatus.sh: line 27: sqlplus: command not found
mkdir: cannot create directory '/opt/oracle/oradata/dbconfig': Permission denied
mv: cannot stat '/opt/oracle/product/19c/dbhome_1/dbs/spfileORCL.ora': No such file or directory
mv: cannot stat '/opt/oracle/product/19c/dbhome_1/dbs/orapwORCL': No such file or directory
mv: cannot move '/opt/oracle/product/19c/dbhome_1/network/admin/sqlnet.ora' to '/opt/oracle/oradata/dbconfig/ORCL/': No such file or directory
mv: cannot move '/opt/oracle/product/19c/dbhome_1/network/admin/listener.ora' to '/opt/oracle/oradata/dbconfig/ORCL/': No such file or directory
mv: cannot move '/opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora' to '/opt/oracle/oradata/dbconfig/ORCL/': No such file or directory
mv: cannot move '/opt/oracle/product/19c/dbhome_1/install/.docker_enterprise' to '/opt/oracle/oradata/dbconfig/ORCL/': No such file or directory
cp: cannot create regular file '/opt/oracle/oradata/dbconfig/ORCL/': No such file or directory
ln: failed to create symbolic link '/opt/oracle/product/19c/dbhome_1/network/admin/sqlnet.ora': File exists
ln: failed to create symbolic link '/opt/oracle/product/19c/dbhome_1/network/admin/listener.ora': File exists
ln: failed to create symbolic link '/opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora': File exists
cp: cannot stat '/opt/oracle/oradata/dbconfig/ORCL/oratab': No such file or directory
ORACLE_HOME = [/home/oracle] ? ORACLE_BASE environment variable is not being set since this
information is not available for the current user ID .
You can set ORACLE_BASE manually if it is required.
Resetting ORACLE_BASE to its previous value or ORACLE_HOME
The Oracle base remains unchanged with value /opt/oracle
/opt/oracle/checkDBStatus.sh: line 27: sqlplus: command not found
#####################################
########### E R R O R ###############
DATABASE SETUP WAS NOT SUCCESSFUL!
Please check output for further info!
########### E R R O R ###############
#####################################
The following output is now a tail of the alert.log:
2022-01-05T07:03:07.666927+00:00
Successful mount of redo thread 1, with mount id 126909927
2022-01-05T07:03:07.667885+00:00
Database mounted in Exclusive Mode
Lost write protection disabled
.... (PID:581): Using STANDBY_ARCHIVE_DEST parameter default value as /opt/oracle/product/19c/dbhome_1/dbs/arch [krsd.c:18141]
Create Relation IPS_PACKAGE_UNPACK_HISTORY
Completed: ALTER DATABASE MOUNT
2022-01-05T07:03:14.254185+00:00
ALTER SYSTEM SET local_listener='' SCOPE=MEMORY;
lib/libclntsh.so.11.1 -> libclntsh.so
lib/libclntsh.so.12.1 -> libclntsh.so
lib/libclntsh.so.18.1 -> libclntsh.so
precomp/public/SQLCA.H -> sqlca.h
precomp/public/SQLDA.H -> sqlda.h
precomp/public/ORACA.H -> oraca.h
precomp/public/SQLCA.COB -> sqlca.cob
precomp/public/ORACA.COB -> oraca.cob
javavm/admin/classes.bin -> ../../javavm/jdk/jdk8/admin/classes.bin
javavm/admin/libjtcjt.so -> ../../javavm/jdk/jdk8/admin/libjtcjt.so
jdk/jre/bin/ControlPanel -> jcontrol
javavm/admin/lfclasses.bin -> ../../javavm/jdk/jdk8/admin/lfclasses.bin
javavm/lib/security/cacerts -> ../../../javavm/jdk/jdk8/lib/security/cacerts
javavm/lib/sunjce_provider.jar -> ../../javavm/jdk/jdk8/lib/sunjce_provider.jar
javavm/lib/security/README.txt -> ../../../javavm/jdk/jdk8/lib/security/README.txt
javavm/lib/security/java.security -> ../../../javavm/jdk/jdk8/lib/security/java.security
jdk/jre/lib/amd64/server/libjsig.so -> ../libjsig.so
Launching Oracle Database Setup Wizard...
[WARNING] [INS-32055] The Central Inventory is located in the Oracle base.
ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.
[WARNING] [INS-13014] Target environment does not meet some opti
报错了,进入容器。oradata的属主为1000:1000;
在宿主机上创建oracle用户,更改/data/oracle的属主为oracle:oinstall
➜ oracle docker exec -it oracle-19c bash
[oracle@294ceb729665 ~]$
[oracle@294ceb729665 ~]$ cd /opt
[oracle@294ceb729665 opt]$ cd oracle
[oracle@294ceb729665 oracle]$ ll
total 92
drwxr-x--- 3 oracle oinstall 4096 Jan 5 07:02 admin
drwxr-x--- 2 oracle oinstall 4096 Jan 5 07:02 audit
drwxr-x--- 3 oracle oinstall 4096 Jan 5 07:02 cfgtoollogs
-rwxrwxr-x 1 oracle dba 1044 Jan 5 06:21 checkDBStatus.sh
drwxr-xr-x 2 oracle dba 4096 Jan 5 06:35 checkpoints
-rwxrwxr-x 1 oracle dba 7634 Jan 5 06:21 createDB.sh
-rw-rw-r-- 1 oracle dba 9204 Jan 5 06:21 dbca.rsp.tmpl
drwxrwxr-x 1 oracle dba 4096 Jan 5 06:35 diag
drwxrwx--- 1 oracle dba 4096 Jan 5 07:02 oraInventory
drwxrwxr-x 2 1000 1000 4096 Jan 5 06:56 oradata
drwxr-xr-x 1 oracle dba 4096 Jan 5 06:26 product
-rwxrwxr-- 1 oracle dba 2008 Jan 5 06:21 relinkOracleBinary.sh
-rwxrwxr-x 1 oracle dba 7743 Jan 5 06:21 runOracle.sh
-rwxrwxr-x 1 oracle dba 1021 Jan 5 06:21 runUserScripts.sh
drwxr-xr-x 1 oracle dba 4096 Jan 5 06:26 scripts
-rwxrwxr-x 1 oracle dba 795 Jan 5 06:21 setPassword.sh
-rwxrwxr-x 1 oracle dba 679 Jan 5 06:21 startDB.sh
容器中的Oracle用户ID如下
[oracle@294ceb729665 oracle]$ id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)
而宿主中的ID如下
➜ ~ id oracle
用户id=1002(oracle) 组id=1002(oinstall) 组=1002(oinstall),1003(dba)
注意:/oracle/oradata目录权限一定要正确,在容器中oracle用户的uid是54321,所以要保证容器内的oracle用户有权限读写该目录。 如创建oracle用户且uid是54321
➜ llc groupadd -g 54321 oinstall
➜ llc groupadd -g 54322 dba
➜ llc groupadd -g 54323 oper
➜ llc useradd -u 54321 -g oinstall -G dba,oper -d /home/oracle -s /bin/bash -c "Oracle Software Owner" oracle
➜ ~llc id oracle
用户id=54321(oracle) 组id=54321(oinstall) 组=54321(oinstall),54322(dba),54323(oper)
➜ ~llc chown oracle:oinstall /home/llc/AppData/docker/oracle
重新运行Docker
➜ docker docker run --name oracle-19c -p 1522:1521 -p 5501:5500 -e ORACLE_SID=orcl -e ORACLE_PDB=pdb1 -e ORACLE_PWD=oracle -v /home/llc/AppData/docker/oracle:/opt/oracle/oradata oracle/database:19.3.0-ee
ORACLE EDITION: ENTERPRISE
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 05-JAN-2022 07:49:22
Copyright (c) 1991, 2019, 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/aa62eba5828a/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 05-JAN-2022 07:49:23
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/aa62eba5828a/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/ORCL.
Database Information:
Global Database Name:ORCL
System Identifier(SID):ORCL
Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCL/ORCL.log" for further details.
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jan 5 08:05:47 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.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>
User altered.
SQL> SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.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:
PDB1(3):ALTER DATABASE DEFAULT TABLESPACE "USERS"
PDB1(3):Completed: ALTER DATABASE DEFAULT TABLESPACE "USERS"
2022-01-05T08:05:47.311899+00:00
ALTER SYSTEM SET control_files='/opt/oracle/oradata/ORCL/control01.ctl' SCOPE=SPFILE;
2022-01-05T08:05:47.319721+00:00
ALTER SYSTEM SET local_listener='' SCOPE=BOTH;
ALTER PLUGGABLE DATABASE PDB1 SAVE STATE
Completed: ALTER PLUGGABLE DATABASE PDB1 SAVE STATE
XDB initialized.
2022-01-05T08:15:36.377526+00:00
PDB1(3):Resize operation completed for file# 10, old size 327680K, new size 337920K
出现
DATABASE IS READY TO USE!
代表数据库创建成功
进入容器后连接数据库查询测试发现报错
SQL> select * from all_users;
select * from all_users
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
SQL> startup;
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle/product/19c/dbhome_1/dbs/initorcl.ora'
SQL> exit
提示服务不可用,尝试启动发现缺少文件。
[oracle@aa62eba5828a ~]$ cd /opt/oracle/product/19c/dbhome_1/dbs/
[oracle@aa62eba5828a dbs]$ ll
total 12
-rw-rw---- 1 oracle oinstall 1544 Jan 5 08:39 hc_ORCL.dat
-rw-r--r-- 1 oracle dba 3079 May 14 2015 init.ora
-rw-r----- 1 oracle oinstall 24 Jan 5 07:49 lkORCL
lrwxrwxrwx 1 oracle oinstall 43 Jan 5 08:05 orapwORCL -> /opt/oracle/oradata/dbconfig/ORCL/orapwORCL
lrwxrwxrwx 1 oracle oinstall 48 Jan 5 08:05 spfileORCL.ora -> /opt/oracle/oradata/dbconfig/ORCL/spfileORCL.ora
解决办法如下
将$ORACLE_BASE/admin/ORCL/pfile/
下的init.ora拷贝到/opt/oracle/product/19c/dbhome_1/dbs/
之后重启
oracle@aa62eba5828a dbs]$ cp /opt/oracle/admin/ORCL/pfile/init.ora.0520228230 ./initorcl.ora
[oracle@aa62eba5828a dbs]$ ll
total 16
-rw-rw---- 1 oracle oinstall 1544 Jan 5 08:39 hc_ORCL.dat
-rw-r--r-- 1 oracle dba 3079 May 14 2015 init.ora
-rw-r----- 1 oracle oinstall 2233 Jan 5 09:00 initorcl.ora
-rw-r----- 1 oracle oinstall 24 Jan 5 07:49 lkORCL
lrwxrwxrwx 1 oracle oinstall 43 Jan 5 08:05 orapwORCL -> /opt/oracle/oradata/dbconfig/ORCL/orapwORCL
lrwxrwxrwx 1 oracle oinstall 48 Jan 5 08:05 spfileORCL.ora -> /opt/oracle/oradata/dbconfig/ORCL/spfileORCL.ora
[oracle@aa62eba5828a dbs]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jan 5 09:00:45 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
;
ORACLE instance started.
Total System Global Area 1610609928 bytes
Fixed Size 9135368 bytes
Variable Size 385875968 bytes
Database Buffers 1207959552 bytes
Redo Buffers 7639040 bytes
SQL> select 1 from dual;
1
----------
1
SQL>