简体   繁体   中英

Oracle 12.2.0.1.0 dbca fails in docker container

I'm unable to successfully run dbca silently in a docker container. First, I installed the Oracle software using runInstaller, then root.sh, and netca. When I run dbca, I always get the following error:

DBCA_PROGRESS : 50%
[ 2017-12-21 21:49:18.914 UTC ] ORA-29283: invalid file operation
ORA-06512: at "SYS.DBMS_QOPATCH", line 1547
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 41
ORA-06512: at "SYS.UTL_FILE", line 478
ORA-06512: at "SYS.DBMS_QOPATCH", line 1532
ORA-06512: at "SYS.DBMS_QOPATCH", line 1417
ORA-06512: at line 1

The alert log says

QPI : Found directory objects and ORACLE_HOME out of sync
QPI : Trying to patch with the current ORACLE_HOME
QPI: ------QPI Old Directories -------
QPI: OPATCH_SCRIPT_DIR:/ade/b/2717506464/oracle/QOpatch
QPI: OPATCH_LOG_DIR:/ade/b/2717506464/oracle/QOpatch
QPI: OPATCH_INST_DIR:/ade/b/2717506464/oracle/OPatch
QPI: op_scpt_path /u01/app/oracle/product/12.2.0/dbhome_1/QOpatch
QPI: Unable to find proper QPI install
QPI: [1] Please check the QPI directory objects and set them manually
QPI: OPATCH_INST_DIR not present:/ade/b/2717506464/oracle/OPatch
Unable to obtain current patch information due to error: 20013, ORA-20013: DBMS_QOPATCH ran mostly in non install area
ORA-06512: at "SYS.DBMS_QOPATCH", line 777
ORA-06512: at "SYS.DBMS_QOPATCH", line 532
ORA-06512: at "SYS.DBMS_QOPATCH", line 2247

and the trace log

[Thread-66] [ 2017-12-22 17:21:42.931 UTC ] [ClonePostCreateScripts.executeImpl:508]  calling dbms_qopatch.replace_logscrpt_dirs()
[Thread-75] [ 2017-12-22 17:21:43.178 UTC ] [BasicStep.handleNonIgnorableError:509] oracle.sysman.assistants.util.SilentMessageHandler@3b2b52b7:messageHandler
[Thread-75] [ 2017-12-22 17:21:43.178 UTC ] [BasicStep.handleNonIgnorableError:510]  ORA-29283: invalid file operation
ORA-06512: at "SYS.DBMS_QOPATCH", line 1547
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 41
ORA-06512: at "SYS.UTL_FILE", line 478
ORA-06512: at "SYS.DBMS_QOPATCH", line 1532
ORA-06512: at "SYS.DBMS_QOPATCH", line 1417
ORA-06512: at line 1

Then I tried to use Oracle's official images with no success.

The only thing I modified in the Oracle's image creation process is createAsContainerDatabase parameter in dbca.rsp file. The original value was true and I changed it to false because I do not want to create a CDB.

Any idea what do I do incorrectly?

EDIT:

The image build fails on docker host running on Fedora 25, Kernel Version: 4.10.10-200.fc25.x86_64.

On macOS, and Debian Jessie, Kernel Version: 3.16.0-4-amd64, the dbca runs successfully.

Which storage driver you use?

I had exactly the same issue with Solus 3, kernel 4.14.8-41.current

Docker version:

Server:
 Version:      17.11.0-ce
 API version:  1.34 (minimum version 1.12)
 Go version:   go1.9.2
 Git commit:   7cbbc92838236e442de83d7ae6b3d74dd981b586
 Built:        Sun Nov 26 16:15:47 2017
 OS/Arch:      linux/amd64
 Experimental: false
..
Storage Driver: overlay
 Backing Filesystem: extfs
 Supports d_type: true

The image i used works fine on Linux Mint (docker 11, storage driver: aufs). So I tried to change "overlay" to "overlay2" in settings, and now it works.

Server Version: 17.11.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs

...

Creating and starting Oracle instance
35% complete
40% complete
44% complete
49% complete
50% complete
53% complete
55% complete
Completing Database Creation
56% complete
57% complete
58% complete
62% complete
65% complete
66% complete
Executing Post Configuration Actions
100% complete

But I have no idea why it's not wotking with "overlay"...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM