Oracle Database의 소프트웨어를 설치하고 기본 ORCL Instance까지 자동으로 설치하는 방법과 Instance의 기동/정지 방법을 간단히 설명 하겠습니다.
소프트웨어 다운로드 및 설치 환경
- 설치할 Oracle버전&다운로드 사이트
- Oracle Database 12.2.0.1.0 for Microsoft Windows x64 (64-bit)
- V839963-01.zip
- https://edelivery.oracle.com/
- 설치할 Oracle버전&다운로드 사이트
- Oracle 12c는 찾을 수 없음, 최신 버전 Oracle 19c, 21c 다운로드 파일만 존재 합니다.
- https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
- WINDOWS.X64_193000_db_home.zip,WINDOWS.X64_213000_db_home.zip
- 설치할 대상 윈도우즈 컴퓨터
- OS : Windows Server 2012 R2
- IP Address(예) : 192.168.220.132
다운로드에는 다음과 같이 오라클 계정이 필요합니다. 없는경우 다음 화면 최 하단의 [계정 만들기]부터 시작하십시오
소프트웨어 설치하기
V839963-01.zip의 압축을 풀어서 setup파일을 실행합니다.
메일 주소 입력과 Oracle Support가입된 비밀번호를 미 입력으로 [다음]버튼은 누릅니다. 입력 정보 제공하지 않았다는 경고 메시지가 표시되는데 여기 서도 알림을 받지 않는다는 [예]버튼을 눌러 다음 단계로 넘어갑니다.
기본 선택되어 있는 [데이터베이스 생성 및 구성]에서 [다음]버튼을 클릭합니다. 이 선택은 ORCL의 기본 데이터베이스 인스턴스를 생성합니다.
기본 선택되어 있는 [가상 계정 사용]에서 [다음]버튼을 클릭합니다.
Oracle Base입력창의 값을 다음과 같이 변경 하면 소프트웨어 위치 데이터베이스 파일 위치도 자동으로 다음과 같이 변경 됩니다. 데이터베이스 버전은 설치 용량이 작은 쪽으로 선택했습니다. 비밀번호는 권장 표준의 따르지 않아도 되지만 다음과 같이 경고 메시지가 표시되면 [예]버튼을 눌러 무시하고 다음 단계로 넘어 갈 수 있습니다.
설치 구성 사항을 표시하기 위한 검사를 진행 하는데 시간이 걸립니다. 검사가 완료되고 [다음]버튼이 활성화 되면 버튼을 클릭합니다. . 이 글에서는 비밀번호에 password를 지정했습니다.
설치 프로그램의 설정 정보 데이터베이스 정보 요약이 표시됩니다. [설치]버튼을 클릭합니다.
프로그램 설치의 진행 진척을 표시합니다.
설치가 완료되면 다음과 같이 성공 화면이 표시됩니다. [닫기]버튼을 클릭 하여 모든 설지 과정을 종료합니다.
Oracle Enterprise Manager Database Express를 실행 할 경우 최신 Browser에서는 Adobe Flash Player가 지원되지않아 다음과 같은 에러 메시지가 표시됩니다.
Alternate HTML content should be placed here. This content requires the Adobe Flash Player. Get Flash
환경 변수 확인
[Oracle Database 12c InstallShield 마법사]는 자동으로 관련 환경 변수를 설정합니다. 이를 regedit.exe명령을 실행해 확인하면 다음과 같습니다.
[Windows 로고 키] + [R] 키를 눌러 “실행”대화 상자를 열고 “regedit”를 입력 실행 해서 [레지스트리 편집기] 화면을 표시합니다.
[컴퓨터\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDB12Home1]을 선택 하면 오른쪽 영역에 환경 변수 NLS_LANG, ORACLE_HOME, ORACLE_SID, ORACLE_BASE가 설정되어 있음을 확인 할 수 있습니다. 참고로NLS_LANG에 대해서는 ORA-12705: Cannot access NLS data files or invalid environment specified 글을 참조하십시오.
실행 파일의 %PATH%경로 확인하기
명령 프롬프트에서 환경변수 %PATH%값을 echo명령으로 확인하면 환경 변수 PATH에 Oracle실행 파일 패스 [c:\app\oracle\product\12.2.0\dbhome_1\bin;]가 지정되어 있는 것을 확인 할 수 있습니다. 이로 인해 Oracle명령이 실행하는 경로에 존재하지 않아도 Oracle명령을 실행 할 수 있습니다.
특수 환경 변수 %PATH%에 대해서는 “Windows MS-DOS 환경 변수 설정 방법” 과 “Windows MS-DOS 특수 환경 변수 %PATH%” 글을 참조 하십시오
메뉴 등록 확인하기
[Windows 로고 키]를 클릭하여 다음과 같이 설치된 소프트웨어 리스트를 확인 할 수 있습니다.
데이터베이스 서비스 확인
[ Windows 로고 키 + R] -> [실행] 창 -> [services.msc] 입력 후 엔터 키를 눌러 [서비스]화면을 표시합니다.
서비스 일람에서 OracleServiceORL과 OracleOraDB12Home1TNSListener서비스가 실행 중 상태임을 확인합니다.
Oracle 사용자 인증 설정 확인하기
다음과 같이 sqlnet.ora파일 내용에서 SQL.NET.AUTOracleHENTICATION_SERVICES에 NTS가 설정 되어있는 것을 확인합니다.이 설정은 Oracle Database 소프트웨어 설치 시의 기본 값입니다.
NTS 값으로 정의 되어있을 경우, 이것은 Windows의 사용자 인증 정보를 이용하겠다는 의미로, Oracle Instance에 대한 접속 여부를 현재 로그인 된 Windows의 사용자 권한으로 판단하겠다는 것을 의미합니다.
이 경우, 현재 접속 중인 사용자 계정이 ORA_DBA 그룹에 속해 있다면 “sqlplus / as sysdba” 명령을 사용해 접속할 수 있습니다.
SQL.NET.AUTHENTICATION_SERVICES에 대한 상세한 내용은 다음 글을 참조하세요.
Listener 상태확인
명령 프롬프트에서 다음 명령으로 Oracle Listener 상태를 확인합니다.
C:\>lsnrctl status
LSNRCTL for 64-bit Windows: Version 12.2.0.1.0 - Production on 10-11월-2021 13:09:50
Copyright (c) 1991, 2016, Oracle. All rights reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))에 연결되었습니다
리스너의 상태
------------------------
별칭 LISTENER
버전 TNSLSNR for 64-bit Windows: Version 12.2.0.1.0 - Production
시작 날짜 10-11월-2021 12:56:33
업타임 0 일 0 시간. 13 분. 19 초
트레이스 수준 off
보안 ON: Local OS Authentication
SNMP OFF리스너 매개변수 파일 C:\app\oracle\product\12.2.0\dbhome_1\network\admin\listener.ora
리스너 로그 파일 C:\app\oracle\diag\tnslsnr\WIN-O8FTTDMFL42\listener\alert\log.xml
끝점 요약 청취 중...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=SERVER-001)(PORT=5500))(Security=(my_wallet_directory=C:\APP\ORACLE\admin\orcl\xdb_wallet))(Presentation=HTTP)(Session=RAW))
서비스 요약...
"CLRExtProc" 서비스는 1개의 인스턴스를 가집니다.
"CLRExtProc" 인스턴스(UNKNOWN 상태)는 이 서비스에 대해 1 처리기를 가집니다.
"orcl" 서비스는 1개의 인스턴스를 가집니다.
"orcl" 인스턴스(READY 상태)는 이 서비스에 대해 1 처리기를 가집니다.
"orclXDB" 서비스는 1개의 인스턴스를 가집니다.
"orcl" 인스턴스(READY 상태)는 이 서비스에 대해 1 처리기를 가집니다.
명령이 성공적으로 수행되었습니다
주의사항) Oracle을 설치한 후 Listener상태를 확인하면 localhost 또는 127.0.0.1 가 기본 호스트명으로 설정되어 있습니다. 이 상태로는 외부에서 접속할 수 없습니다. 외부에서 접속가능한 컴퓨터명 (예:SERVER-001) 또는 IP Address (예: 192.168.220.132 ) 를 지정해 주십시오. 지정방법은 다음과 같습니다.
우선 다음과 같이 Oracle Listener를 정지합니다.
C:\>lsnrctl stop
LSNRCTL for 64-bit Windows: Version 12.2.0.1.0 - Production on 10-11월-2021 16:05:14
Copyright (c) 1991, 2016, Oracle. All rights reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))에 연결되었습니다
명령이 성공적으로 수행되었습니다
다음으로 listener.ora 파일에서 (HOST=localhost) 부분을 다음과 같이 수정합니다.
C:\>notepad C:\app\oracle\product\12.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# listener.ora Network Configuration File: C:\app\oracle\product\12.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\oracle\product\12.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle\product\12.2.0\dbhome_1\bin\oraclr12.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = SERVER-001)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
수정 후 컴퓨터의 재 기동 하거나 다음과 같이 Oracle Listener를 재 기동 합니다.
C:\>lsnrctl start
LSNRCTL for 64-bit Windows: Version 12.2.0.1.0 - Production on 10-11월-2021 16:08:25
Copyright (c) 1991, 2016, Oracle. All rights reserved.
시작 tnslsnr: 잠시만 기다리세요...
TNSLSNR for 64-bit Windows: Version 12.2.0.1.0 - Production
시스템 매개변수 파일은 C:\app\oracle\product\12.2.0\dbhome_1\network\admin\listener.ora 입니다
C:\app\oracle\diag\tnslsnr\WIN-O8FTTDMFL42\listener\alert\log.xml (으)로 로그 메시지를 기록했습니다
리스닝이: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SERVER-001)(PORT=1521)))
리스닝이: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SERVER-001)(PORT=1521)))에 연결되었습니다
... 중간생략 ...
끝점 요약 청취 중...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SERVER-001)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
서비스 요약...
"CLRExtProc" 서비스는 1개의 인스턴스를 가집니다.
"CLRExtProc" 인스턴스(UNKNOWN 상태)는 이 서비스에 대해 1 처리기를 가집니다.
명령이 성공적으로 수행되었습니다
lsnrctl start 실행 직후에는 CLRExtProc인스턴스만 리스트에 존재하지만 몇분 정도 지나서 확인 하면 다음과 같이 모든 인스턴스가 확인됩니다.
C:\>lsnrctl status
... 중간생략 ...
끝점 요약 청취 중...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SERVER-001)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=WIN-O8FTTDMFL42)(PORT=5500))(Security=(my_wallet_directory=C:\APP\ORACLE\admin\orcl\xdb_wallet))(Presentation=HTTP)(Session=RAW))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
서비스 요약...
"CLRExtProc" 서비스는 1개의 인스턴스를 가집니다.
"CLRExtProc" 인스턴스(UNKNOWN 상태)는 이 서비스에 대해 1 처리기를 가집니다.
"orcl" 서비스는 1개의 인스턴스를 가집니다.
"orcl" 인스턴스(READY 상태)는 이 서비스에 대해 1 처리기를 가집니다.
"orclXDB" 서비스는 1개의 인스턴스를 가집니다.
"orcl" 인스턴스(READY 상태)는 이 서비스에 대해 1 처리기를 가집니다.
명령이 성공적으로 수행되었습니다
sqlplus.exe명령으로 로컬 접속 확인하기
명령 프롬프트에서 sqlplus system/password로 접속할 수 있는지 확인합니다. 접속에 문제 없다면 다음과 같이 접속결과를 표시합니다.
C:\>sqlplus system/password
SQL*Plus: Release 12.2.0.1.0 Production on 수 11월 10 16:17:02 2021
Copyright (c) 1982, 2016, Oracle. All rights reserved.
마지막 성공한 로그인 시간: 토 10월 30 2021 14:52:28 +09:00
다음에 접속됨:
Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production
SQL>
외부 컴퓨터에서 sqlplus.exe명령으로 원격 접속 확인하기
외부 컴퓨터에서 sqlplus명령으로 원격 접속하면 다음과 같이 Error가 발생합니다.
C:\>sqlplus system/password@192.168.220.132/orcl
SQL*Plus: Release 12.2.0.1.0 Production on Sun Sep 19 17:28:01 2021
Copyright (c) 1982, 2016, Oracle. All rights reserved.
ERROR:
ORA-12170: TNS:Connect timeout occurred
Enter user-name:
“ORA-12170: TNS:Connect timeout occurred” Error를 해결하기 위해서는 다음과 같이 Windows Defender 방화벽에 Oracle Listener Port 1521을 허가합니다.
[제어판\모든 제어판 항목] 화면에서 “Windows Defender 방화벽” 아이콘을 클릭해서[제어판\모든 제어판 항목\ Windows Defender 방화벽]설정 화면을 표시합니다.
그리고 [제어판\모든 제어판 항목\ Windows Defender 방화벽]설정 화면의 왼쪽 메뉴에서 [고급 설정] 링크를 눌러 [고급 보안이 포함된 Windows Defender 방화벽] 화면을 표시합니다.
마지막으로 [고급 보안이 포함된 Windows Defender 방화벽] 화면의 인바운드 규칙에서 [새 규칙…]을 눌러 [새 인바운드 규칙 마법사]화면을 표시합니다.
[새 인바운드 규칙 마법사]화면의 [단계:규칙 종류]에서 [포트(O)]를 선택해 [다음(N)]버튼을 눌러 다음 화면으로 진행합니다.
[새 인바운드 규칙 마법사]화면의 [단계:프로토콜 및 포트]에서 [TCP(T)]를 선택, [특정 로컬 포트(S)]에서 1521 값을 입력하고 [다음(N)]버튼을 눌러 다음 화면으로 진행합니다.
[새 인바운드 규칙 마법사]화면의 [단계:작업]에서 [연결 허용(A)]를 선택하고 [다음(N)]버튼을 눌러 다음 화면으로 진행합니다.
[새 인바운드 규칙 마법사]화면의 [단계:프로필]에서 [도메인(D)], [개인(P)], [공용(U)] 모두 체크를 하고 [다음(N)]버튼을 눌러 다음 화면으로 진행합니다.
[새 인바운드 규칙 마법사]화면의 [단계:이름]에서 [이름(N):Oracle]과 [설명(옵션)(D): Oracle Database 12.2.0.1.0 for Microsoft Windows x64 Listener ]을 입력하고 [마침(N)]버튼을 눌러 [고급 보안이 포함된 Windows Defender 방화벽] 화면으로 돌아갑니다.
[새 인바운드 규칙 마법사]화면의 인바우드 규칙에서 오른쪽 마우스 클릭하면 [새로 고침]콘텍스트 메뉴가 표시됩니다. 여기서 [새로 고침]을 눌러 Oracle 인바운드 규칙이 추가 되었음을 확인합니다.
Windows Defender 방화벽에 Oracle Listener Port 1521을 허가함으로서 다음과 같이 외부 컴퓨터에서 sqlplus명령으로 원격 접속됨을 확인 할 수 있습니다.
C:\>set nls_lang=KOREAN_KOREA.KO16MSWIN949
C:\>sqlplus system/password@192.168.220.132/orcl
SQL*Plus: Release 12.2.0.1.0 Production on 수 11월 10 16:20:01 2021
Copyright (c) 1982, 2016, Oracle. All rights reserved.
마지막 성공한 로그인 시간: 수 11월 10 2021 16:17:02 +09:00
다음에 접속됨:
Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production
SQL>
ORCL Instance의 기본 값 확인하기
다음 SQL문으로 기본적으로 작성된 Oracle User를 확인 할 수 있습니다.
다음 SQL문으로 Oracle User에 연결된 profile에 대해서 각각의 resource 설정 값을 확인할 수 있습니다.