2017-12-21 24 views
1

도커 컨테이너에서 dbca를 자동으로 실행할 수 없습니다. 먼저 runInstaller, root.sh 및 netca를 사용하여 Oracle 소프트웨어를 설치했습니다. 내가 DBCA를 실행하면, 나는 항상 다음과 같은 오류가 발생합니다 :오라클 12.2.0.1.0 dbca가 도커 컨테이너에서 작동하지 않습니다.

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 

경고 로그

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 

내가 사용하려고 그런

[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] [email protected]: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 

추적 로그를 말한다 오라클의 official images 아니오 성공.

오라클의 이미지 생성 과정에서 수정 한 것은 dbca.rsp 파일의 createAsContainerDatabase 매개 변수입니다. 원래 값은 true이고 CDB를 만들고 싶지 않기 때문에 false으로 변경했습니다.

어떤 생각을 잘못 했나요?

편집 : 4.10.10-200.fc25.x86_64 :

이미지 빌드 페도라 25 커널 버전에서 실행되는 고정 표시기 호스트에서 실패합니다.

macOS 및 Debian Jessie, 커널 버전 : 3.16.0-4-amd64의 경우 dbca이 성공적으로 실행됩니다.

답변

2

사용중인 저장 드라이버는 무엇입니까?

 
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 

내가 리눅스 민트에 좋은 작품을 사용하는 이미지 (고정 표시기 (11), 저장 :

나는 솔 루스 3, 커널 4.14.8-41.current

도커 버전과 정확히 같은 문제가 있었다 드라이버 : aufs). 그래서 설정에서 "오버레이"를 "오버레이 2"로 변경하려고 시도했습니다. 이제 작동합니다.

 
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 

하지만 그것은 "오버레이"로 wotking하지 왜 아무 생각이 ...

+0

이것은 재미있는 힌트, 감사합니다! 사실, 내 맥과 데비안에서, 나는 AUF와 overlay2있다. 그리고 거기에서 작동합니다. Fedora에서 설치가 성공적이지 않은 경우 사용중인 파일 시스템이 오버레이됩니다. –

+0

오라클이 오래된 오버레이 드라이버에서 작동하지 않는 이유가 있을지도 모릅니다. 도커 문서에 따르면 overlay2와 달리 오버레이 드라이버는 다중 레이어 이미지를 만드는 데 하드 링크를 사용합니다. 여기 https://marogel.wordpress.com/2011/06/15/의 경우, 그 사람은 하드 링크로 자신의 오라클 문제를 설명합니다. 이 관계는 단지 내 추측입니다. –

+0

저도 같은 생각입니다. 설치 : CentOS7- 도커 - 호스트, 스토리지 - 드라이버 오버레이, 비 플러그 - 데이터베이스를 사용하는 Oracle DB 도커 컨테이너. 동일한 오류가 발생하여 dbca 설정도 50 %에서 실패했습니다. daemon.json에서''storage-driver ': "overlay2"'를 사용하여 수정. 참고 : CentOS7 호스트의 경우, "storage-opts"도 추가해야했습니다 : [ "overlay2.override_kernel_check = true"]' – Ben