Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (seongtaejeong at gmail.com)
홈페이지
첨부 파일
 

SQL10007N Message "-1390" could not be retrieved. Reason code: "3".

이번엔 docker로 ibmcom/db2 인스턴스를 실행했는데,

docker - ibmcom/db2 컨테이너 실행
; https://www.sysnet.pe.kr/2/0/13009

$ docker run -itd --name mydb2 --restart=always --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=testusr -e DBNAME=testdb -v db2db_shared:/database ibmcom/db2:11.5.7.0

접속이 안 됩니다.

DB2: IBM.Data.DB2.DB2Exception (0x80004005): ERROR [08001] [IBM] SQL10007N Message "0" could not be retrieved.  Reason code: "3".

   at IBM.Data.DB2.DB2ConnPool.Open(DB2Connection connection, String& szConnectionString, DB2ConnSettings& ppSettings, Object& ppConn)
   at IBM.Data.DB2.DB2Connection.Open()
   at WebSiteTest.DB2Test()
   at WebSiteTest.Page_Load(Object sender, EventArgs e)

직접 컨테이너에 들어가 db2 CLI로 들어가도,

# /opt/ibm/db2/V11.5/bin/db2
SQL10007N Message "-1390" could not be retrieved.  Reason code: "3".

역시나 오류가 발생합니다. (다양한 원인이 있을 수 있지만) 이런 경우 분명한 것은 DB2 인스턴스가 실행되지 않았기 때문입니다. 따라서, -d 옵션을 사용하지 말고 컨테이너가 실행 시 출력하는 메시지를 잘 봐야 합니다.

$ docker run -it --name mydb2 --restart=always --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=testusr -e DBNAME=testdb -v db2db_shared:/database ibmcom/db2:11.5.7.0 /bin/bash
(*) Restoring global registry file ...
(*) Previous setup has not been detected. Creating the users... 
(*) Creating users ...
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
(*) Preparing the environment before updating the instance ... 
(*) Fixing /etc/services file for DB2 ... 
(*) Fixing db2nodes file configuration ... 
rm: cannot remove 'sqllib/.ftok': Permission denied
db2ftok.C:87: Failed to generate seed, rc = 0x90000001.
SQL1652N  File I/O error occurred.
(*) Creating instance ... 
DBI1446I  The db2icrt command is running.


DB2 installation is being initialized.

 The instance home directory "/database/config/db2inst1" is invalid because it 
is not owned by the user "db2inst1". Change the ownership of the home directory 
to be owned by the instance user and its primary group.

A major error occurred during the execution that caused this program to 
terminate prematurely. If the problem persists, contact your technical service 
representative.

For more information see the DB2 installation log at "/tmp/db2icrt.log.810".
DBI1264E  This program failed. Errors encountered during execution were
      written to the installation log file. Program name:
      db2icrt. Log file name: /tmp/db2icrt.log.810.

Explanation: 

This message is returned when some processes and operations have failed.
Detailed information about the error was written to the log file.

User response: 

Contact IBM support to get assistance in resolving this issue. Keep the
log file intact as this file is an important reference for IBM support.


   Related information:
   Contacting IBM Software Support


(!) There was a problem configuring the instance. Copying over logs and traces to /database/config ...
mkdir: cannot create directory '/database/config/db2icrt': File exists


              _______   D B 2  S u p p o r t   ______


This program generates information about a DB2 server, including information
about its configuration and system environment. The output of this program
is stored in a file named 'db2support.zip'. If possible, run this program
while the problem is occurring.


For the most complete output, this utility should be invoked with root
authority. Users with more limited privileges on the system can run this tool,
however, some of the data collection actions will result in reduced reporting
and reduced output.

Output file is "/database/config/db2icrt/db2support.zip"
Time and date of this collection: 2025-11-10-07.16.53.437509

Starting collection on host 30aa29d9bf32
 Creating directory /database/config/db2icrt/DB2SUPPORT/30aa29d9bf32_IIH
Collecting resources group information
   The following file was not found or could not be executed during diagnostic
   data collection: /usr/bin/lssam
   The following file was not found or could not be executed during diagnostic
   data collection: /usr/bin/lsrsrc
   The following file was not found or could not be executed during diagnostic
   data collection: /usr/bin/lsrsrc
Collecting user identity information
Collecting current process information
Collecting active interprocess communications facilities information
Collecting system information
Collecting detailed data on system and hardware errors
   The following file was not found or could not be executed during diagnostic
   data collection: /usr/bin/errpt
Collecting registry contents
Collecting GPFS information
   The following file was not found or could not be executed during diagnostic
   data collection: /usr/lpp/mmfs/bin/gpfs.snap
Collecting configuration, log and trace information for RSCT
   The following file was not found or could not be executed during diagnostic
   data collection: /usr/bin/ctsnap
Collecting information about installed DB2 products
Collecting information about state of db2 instance
Collecting information about DB2 product prerequisites
Collecting /etc/services 
Collecting /tmp/db2icrt.log.810
Collection on host 30aa29d9bf32 completed
Compressing files in /database/config/db2icrt/DB2SUPPORT directory 
Collecting /database/config/db2icrt/db2support.log 
Collecting db2support.out 


db2support is now complete.
 An archive file has been produced: "/database/config/db2icrt/db2support.zip"

"15" warnings found during db2support collection

중간에 보면, "/database/config/db2inst1" 디렉터리를 "db2inst1" 사용자가 접근할 수 없어 문제가 발생했음을 알 수 있습니다. 즉 이런 경우가 바로 docker 볼륨 연결 시 권한 문제가 발생한 사례 중의 하나입니다.

실제로 볼륨 디렉터리의 권한을 확인하고,

$ docker volume inspect db2db_shared
[
    {
        "CreatedAt": "2025-09-29T13:54:07+09:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/mnt/docker-data/docker/volumes/db2db_shared/_data",
        "Name": "db2db_shared",
        "Options": null,
        "Scope": "local"
    }
]

$ ls -l "/mnt/docker-data/docker/volumes/db2db_shared/_data"
ls: cannot access '/mnt/docker-data/docker/volumes/db2db_shared/_data': Permission denied

$ sudo ls -l "/mnt/docker-data/docker/volumes/db2db_shared/_data"
total 0
drwxr-xr-x 2 testusr testusr  66 Mar 18  2022 backup
drwxr-xr-x 7 testusr testusr 159 Nov 10 13:31 config
drwxr-xr-x 3 testusr testusr  30 Mar 18  2022 data
drwxr-xr-x 3 testusr testusr  30 Mar 18  2022 logs

저 사용자 권한을 DB2 container의 db2inst1 사용자로 맞춰야 하는데요,

// db2 컨테이너 내에서 실행한 결과

# id db2inst1
uid=1000(db2inst1) gid=1000(db2iadm1) groups=1000(db2iadm1)

따라서 docker 호스트 측의 볼륨 권한을 이렇게 변경하고,

$ sudo chown -R 1000:1000 /mnt/docker-data/docker/volumes/db2db_shared

docker run을 다시 실행해 주면 이제 정상적으로 db2 데이터베이스가 올라오게 됩니다.




혹시나 db2 인스턴스가 올라왔는데도 여전히 ERROR [08001] [IBM] SQL10007N Message "0" could not be retrieved. Reason code: "3". 오류가 계속 발생한다면? db2 접속 계정(id/pw)이 올바른지 확인해 보세요. ^^




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 11/12/2025]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 106  107  [108]  109  110  111  112  113  114  115  116  117  118  119  120  ...
NoWriterDateCnt.TitleFile(s)
11352정성태11/14/201729182사물인터넷: 4. Samba를 이용해 윈도우와 Raspberry Pi간의 파일 교환 [1]
11351정성태11/7/201731233.NET Framework: 698. C# 컴파일러 대신 직접 구현하는 비동기(async/await) 코드 [6]파일 다운로드1
11350정성태11/1/201728200디버깅 기술: 108. windbg 분석 사례 - Redis 서버로의 호출을 기다리면서 hang 현상 발생
11349정성태10/31/201727849디버깅 기술: 107. windbg - x64 SOS 확장의 !clrstack 명령어가 출력하는 Child SP 값의 의미 [1]파일 다운로드1
11348정성태10/31/201723376디버깅 기술: 106. windbg - x64 역어셈블 코드에서 닷넷 메서드 호출의 인자를 확인하는 방법
11347정성태10/28/201728292오류 유형: 424. Visual Studio - "클래스 다이어그램 보기" 시 "작업을 완료할 수 없습니다. 해당 인터페이스를 지원하지 않습니다." 오류 발생
11346정성태10/25/201724390오류 유형: 423. Windows Server 2003 - The client-side extension could not remove user policy settings for 'Default Domain Policy {...}' (0x8007000d)
11338정성태10/25/201721173.NET Framework: 697. windbg - SOS DumpMT의 "BaseSize", "ComponentSize" 값에 대한 의미파일 다운로드1
11337정성태10/24/201725243.NET Framework: 696. windbg - SOS DumpClass/DumpMT의 "Vtable Slots", "Total Method Slots", "Slots in VTable" 값에 대한 의미파일 다운로드1
11336정성태10/20/201726147.NET Framework: 695. windbg - .NET string의 x86/x64 메모리 할당 구조
11335정성태10/18/201725156.NET Framework: 694. 닷넷 - <Module> 클래스의 용도
11334정성태10/18/201725204디버깅 기술: 105. windbg - k 명령어와 !clrstack을 조합한 호출 스택을 얻는 방법
11333정성태10/17/201724394오류 유형: 422. 윈도우 업데이트 - Code 9C48 Windows update encountered an unknown error.
11332정성태10/17/201724880디버깅 기술: 104. .NET Profiler + 디버거 연결 + .NET Exceptions = cpu high
11331정성태10/16/201723120디버깅 기술: 103. windbg - .NET 4.0 이상의 환경에서 모든 DLL에 대한 심벌 파일을 로드하는 파이썬 스크립트
11330정성태10/16/201721114디버깅 기술: 102. windbg - .NET 4.0 이상의 환경에서 DLL의 심벌 파일 로드 방법 [1]
11329정성태10/15/201727386.NET Framework: 693. C# - 오피스 엑셀 97-2003 .xls 파일에 대해 32비트/64비트 상관없이 접근 방법파일 다운로드1
11328정성태10/15/201730637.NET Framework: 692. C# - 하나의 바이너리로 환경에 맞게 32비트/64비트 EXE를 실행하는 방법파일 다운로드1
11327정성태10/15/201725033.NET Framework: 691. AssemblyName을 .csproj에서 바꾼 경우 빌드 오류 발생하는 문제파일 다운로드1
11326정성태10/15/201723182.NET Framework: 690. coreclr 소스코드로 알아보는 .NET 4.0의 모듈 로딩 함수 [1]
11325정성태10/14/201724203.NET Framework: 689. CLR 4.0 환경에서 DLL 모듈의 로드 주소(Base address) 알아내는 방법
11324정성태10/13/201725539디버깅 기술: 101. windbg - "*** WARNING: Unable to verify checksum for" 경고 없애는 방법
11322정성태10/13/201725261디버깅 기술: 100. windbg - .NET 4.0 응용 프로그램의 Main 메서드에 Breakpoint 걸기
11321정성태10/11/201725747.NET Framework: 688. NGen 모듈과 .NET Profiler
11320정성태10/11/201728099.NET Framework: 687. COR_PRF_USE_PROFILE_IMAGES 옵션과 NGen의 "profiler-enhanced images" [1]
11319정성태10/11/201734830.NET Framework: 686. C# - string 배열을 담은 구조체를 직렬화하는 방법
... 106  107  [108]  109  110  111  112  113  114  115  116  117  118  119  120  ...