(Oracle DB) - 0. Oracle DB와 SQL Developer 환경구성

kynoh·2023년 2월 12일
0

Oracle Database

목록 보기
1/30
post-thumbnail

이 포스트는 Windows 11 (System Language : English) 인 환경에서 Oracle DataBase Enterprise Edition 11g 버전, SQL Developer를 다운로드 하는 방법, SQL Developer에 폰트 추가 및 한글 입출력하는 방법(caution!) 등에 대해 정리한 글입니다.

(Mar 1. 2023) 사용중에 connection이 누적되는 버그가 있어서 해당 버전을 사용하지 않고, 다른 버전 사용을 권장드립니다.

[Windows: Connections to Database are Slow / Hang and Report Errors TNS-12518/ORA-12518] - Oracle


💻 오라클 데이터베이스 11g 설치

✅ Step 0 : 회원가입 & ZIP 파일 다운로드

  • Oracle DB 11g를 사용하려면, 우선 Oracle에서 회원가입을 해야합니다.

(Mar 1. 2023) 사용중에 connection이 누적되는 버그가 있어서 해당 버전을 사용하지 않고, 다른 버전 사용을 권장드립니다.
[Windows: Connections to Database are Slow / Hang and Report Errors TNS-12518/ORA-12518] - Oracle


  • 회원가입을 한 이후에, Resouces 카테고리에서 Downloads 탭을 확인해보면, 아래와 같이 Customer Downloads를 확인할 수 있습니다.
    이걸 클릭합니다.
    (Oracle Software Delivery Cloud를 클릭하시면 바로 해당 페이지로 넘어갑니다.)


  • Oracle 계정으로 로그인한 이후에 download할 소프트웨어를 검색할 수 있는 창을 볼 수 있습니다.
    여기에 oracle database 11g를 검색하시면 여러 소프트웨어가 나옵니다.



  • 그러면 다운로드 큐에 담겼다는 메세지가 잠시 팝업되었다가 사라집니다.
    페이지 우측 상당에 아래와 같은 선택 목록들이 있는데, Continue를 클릭하시면 Download Queue 페이지로 넘어갑니다.


  • Windows 11 64-bit 환경에서 oracle database를 사용할 것이므로, 아래와 같이 설정하고 해당 item만 선택한 후, Continue를 클릭합니다.


  • 좌측 하단에 동의한다고 체크하시고, Continue를 클릭합니다.


  • 두 압축 파일 모두 받아야 합니다. 모두 선택되어있다면, Download를 클릭하여 진행합니다.

✅ Step 1 : 오라클 데이터베이스 11g 설치

(Mar 1. 2023) 사용중에 connection이 누적되는 버그가 있어서 해당 버전을 사용하지 않고, 다른 버전 사용을 권장드립니다.
[Windows: Connections to Database are Slow / Hang and Report Errors TNS-12518/ORA-12518] - Oracle

  • 이렇게 2개의 압축 파일이 모두 다운로드 되었다면, 두 압축파일의 압축해제 경로는 동일해야합니다.
    다시 말해, 각각 다른 폴더에 압축이 해제되면 안 됩니다.

  • 반디집 소프트웨어를 사용하신다면, 두 압축 파일을 모두 선택한 후에, 여기에 풀기(Extract Here)를 하시면 됩니다.


  • 압축을 풀면, database folder가 생성되는 것을 볼 수 있습니다.

  • setup.exe file을 실행하면, 잠깐동안 cmd창이 팝업되었다가 사라지고, 설치 화면이 나옵니다.

  • 최소 사양을 만족하시 않는다는 경고 메세지가 발생하더라도 Yes 하시면 됩니다.

  • Configure Security Updates 단계에서, 보안 업데이트를 받지않도록 합니다. 해당 체크 박스를, 스크린샷처럼 해제 상태로 만들어 주세요.

  • E-mail을 입력하지 않은 채로 Next를 클릭하면, 경고 메세지가 나오는데 무시하고 그냥 진행합니다.


  • 데이터베이스 생성 및 구성 옵션을 선택합니다.


  • 데스크톱 클래스를 선택합니다.


  • Enterprise Edition을 선택해줍니다.
  • Password는 잊으면 안 됩니다. 잘 기록해두세요.
  • 참고로, 저처럼 Windows OS의 시스템 기본 언어가 영어인 경우, Character Set이 한국어 버전과는 다르게 나옵니다.

아마 Windows를 한국어로 사용하시는 분들은 기본값(KO16MSWIN949)라고 나올 것입니다. Character Set기본값(Default)으로 둡니다.

Windows 영어 사용자의 경우, database에 한글 데이터를 저장할 때 문제가 됩니다. 예를 들어, 벨로그라는 문자 데이터를 저장하려고 하면, ???로 저장됩니다.

이러한 문제를 방지하기 위해 다른 Step에서, Oracle DB / SQL Developer의 영어 환경에서 한글 입출력이 정상적으로 처리될 수 있는 방법을 소개해 놓았으니 참고하시고, 일단 영어 사용자도 Default로 둡니다.


  • 필요조건 검사(Prequisite Checkes)요약(Summary) 단계를 거치신 후에는 Oracle DataBase의 설치가 진행되며, 설치된 결과를 확인하시는 것을 끝으로 설치가 종료됩니다.

💻 SQL Developer설치

  • SQL Developer는 최신 버전으로 받아볼 수 있고, 아주 쉽게 받을 수 있습니다.
    Oracle SQL Developer Downloads에 접속하셔서 자신의 사용환경에 맞추어 다운로드합니다.

(만약 Java Developement Kit 을 따로 받아본 적이 없다면, JDK가 포함된 항목을 다운로드받습니다.)


  • C 드라이브에 해당 압축파일을 해제하면, sqldeveloper라는 폴더가 C 드라이브에 저장됩니다.

  • sqldeveloper 폴더 내에 있는 sqldeveloper.exe를 실행하면, SQL Developer 소프트웨어가 실행됩니다.

  • 만약 JDK의 경로를 묻는 화면이 나온다면, jdk 폴더는 아래와 같은 경로에 있으므로 해당 경로의 jdk 폴더를 선택해주시면 됩니다.


  • SQL Developer가 정상적으로 작동한다면, 이제 Connection을 새로 만들어주어야 합니다.

  • +모양의 New Connections 버튼을 클릭해서 아래의 항목들을 작성합니다.

  • Name : Connection의 이름을 의미합니다.
  • Username / Password : 사용자 이름과 비밀번호는 마음대로 정하면 됩니다.
  • SID : 이 항목에, Oracle DataBase로 설치한 DataBase의 이름을 작성하시면 됩니다. 예를 들어, 이 post에서처럼 orcl로 지정했었다면, 여기에는 orcl을 적어야 합니다.

  • 위의 4개 항목 모두 작성했다면, Test를 클릭합니다.
  • 해당 창 좌측 하단에 있는 Status : 에 성공인지 아닌지 출력됩니다.
  • 성공했다면, Connect를 클릭합니다.

💻 SQL Developer에 폰트 추가하기

이번에는 SQL Developer software 에서 폰트를 추가하는 방법을 알아봅시다.

분명 제 Windows 11 OS에서는 여러 폰트를 추가로 설치해놨었는데, SQL Developer에서 나오지 않는 폰트들이 있었습니다.

일단 SQL Developer에서 폰트를 변경하기 위해서는 아래의 메뉴들을 따라가면 됩니다.

Tools - Preferences - Code Editor - Fonts

프로그램 자체가 지원하지 않는 폰트일 수도 있지만... Fira Mono, D2Coding 등의 폰트는 사용할 수 있었습니다.

단! 만약 한글이 지원되지 않는 폰트(ex. Fira Mono)는 아래와 같이 나옵니다.

...... 그래서 전 어쩔 수 없이, D2Coding을 폰트로 지정하여 사용합니다.


만약 Windows에는 폰트가 설치되어 있음에도 불구하고, 위의 Fonts 설정창에 사용하고자 하는 폰트가 나오지 않는다면, 다음과 같은 방법을 시도해봅시다.

방법은 간단합니다. 해당 폰트가 설치된 경로로 가서, 해당 폰트를 마우스 우클릭하여, (Show more options 누른 후 나오는 메뉴에서) Install for all users로 설치하면 됩니다.


C:\Users\벨로그\AppData\Local\Microsoft\Windows\Fonts 이러한 경로에 폰트 파일들이 있습니다. (벨로그 부분은, 사용자의 계정이름에 따라 달라지는 부분이니 참고!)


이렇게 폰트 설치를 마친 후에, 다시 SQL Developer의 폰트 설정창으로 확인해보면 폰트가 목록에 있음을 알 수 있습니다.


🔴 오라클 데이터베이스에서 한글 사용하기

이 post에서 다루는 환경처럼 Windows 11, Oracle Database, SQL Developer가 모두 영어라면, 한글을 정상적으로 입력하거나 출력할 수 없는 경우가 발생합니다.

이런 환경에서 이 문제가 발생한다면, Oracle database의 character set과 language set이 일치하지 않아서 발생하는 문제일 수 있습니다. 제가 그러한 경우였거든요.
이 set들을 수동으로 변경해주어야 합니다!

====================================
Feb.28.2023
하지만 Oracle에서는 데이터베이스 구성의 속성값을 변경하는 것에 대해 절대 권장하지 않습니다.
다시말해 아래의 설명대로 하다가 오타가 있는채로 값을 변경해버릴 수도 있고..(저처럼;;) 재설치해야하는 경우가 발생할 수 있습니다.
[Changing Or Choosing the Database Character Set] - Oracle
[Oracle 11gR2: NLS_CHARACTERSET accidentally removed with an UPDATE-Query] - StackExchange

✅ 환경변수 & 레지스트리

  • Windows의 검색창에서 Advanced System settings를 검색해서 실행합니다.


  • Environment Variables...를 클릭합니다.


  • System variables 항목에서 New...를 클릭하여 NLS_LANG이라는 이름의 환경 변수를 추가해줍니다.

값으로는 2가지 경우를 고려해볼 수 있습니다.
sqlplus prompt의 안내 메세지가 한글이기를 원한다면, KOREAN_KOREA.KO16MSWIN949로 초기화해줍니다.

(그런데 아마 시간 표시등도 바꿔야해서 territory까지 바꿔줘야하고 조금 복잡할 수도 있을 것 같아요..)

만약 sqlplus prompt의 안내 메세지가 영문이기를 원한다면, AMERICAN_AMERICA.KO16MSWIN949로 초기화해줍니다.)


  • 레지스트리는 환경변수에 선택한 값을 아래의 경로에서 등록해주시면 됩니다. 저는 영문 프롬프트를 선택했으므로 아래의 스샷처럼 나옵니다.
    경로 : HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE \ KEY_OraDB(~~)Home1에서 NLS_LANG을 변경하시면 됩니다.


✅ SQL 쿼리

  • CMD를 열어서 SQLPLUS /NOLOG를 입력합니다. (대/소문자 상관없어요!)

  • CONN /AS SYSDBA를 입력합니다.

  • 만약 ERROR: ORA-01031: insufficient privileges라는 메세지가 출력되면, 아래의 방법으로 해결할 수 있을 것입니다.

  • CONN SYS/오라클 데이터베이스 비밀번호 AS SYSDBA를 입력하시면 됩니다.
    오라클 데이터베이스 비밀번호는 설치할 때 설정한 데이터베이스 비밀번호입니다. (비밀번호는 대/소문자 구분되기 때문에 정확히 입력해야합니다!)

  • 이제 NLS_CHARACTERSET, NLS_NCHAR_CHARACTERSETNLS_LANGUAGE의 값들을 업데이트 해줘야 합니다. 아래의 명령을 입력해주시고,
UPDATE sys.props$ SET value$ = 'KO16MSWIN949' WHERE name='NLS_CHARACTERSET';
UPDATE sys.props$ SET value$ = 'KO16MSWIN949' WHERE name='NLS_NCHAR_CHARACTERSET';

아래의 명령도 입력해주세요. (아래의 명령은 sqlplus가 한글로 나옵니다.)

UPDATE sys.props$ SET value$='KOREAN_KOREA.KO16MSWIN949' WHERE name='NLS_LANGUAGE'; 

또는 아래의 명령을 입력해주세요.
(아마 윈도우 영문으로 사용하는 분들은 이게 나을 것입니다.
만약 위의 명령어를 입력하고 sqlplus를 사용하면,,, 예를 들어 sqlplus로 login할 때 시간이 표시되는데, default territory가 america여서, '1일 3월 2022년' 이런 식으로 나올 거에요..)

UPDATE sys.props$ SET value$='AMERICAN_AMERICA.KO16MSWIN949' WHERE name='NLS_LANGUAGE'; 

  • 그리고 commit;을 입력하여 업데이트를 진행해줍니다.

  • 이제 Oracle Database를 종료시키고, 다시 시작해야 합니다.
SHUTDOWN IMMEDIATE;

Oracle Database가 종료된 후, 새로 입력 대기 상태가 된다면, STARTUP;을 입력해줍니다.


이제 의도대로 값이 바뀌었는지 확인해보기 위해 아래의 명령을 입력해줍니다.

SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER IN ('NLS_NCHAR_CHARACTERSET', 'NLS_CHARACTERSET', 'NLS_LANGUAGE');

  • 이제 windows os, oracle database가 모두 (미국식) 영어 형식이더라도 한글 데이터를 입/출력할 수 있습니다.
  • 아래의 test code를 통해 확인해보세요.
select vsize('하하') from dual;	-- 한글 문자 1개에 2 bytes인지 확인
select '한글테스트용입니다.' AS 한글테스트용 from dual;	-- 한글 입출력 확인

  • SQL Developer가 영어 환경일 때, 한글 데이터를 정상적으로 입출력하려면, UTF-8로 변경해주어야 합니다.

Tools - Preferences - Environment 에서 Encoding 항목을 UFT-8로 수정하고, SQL Developer를 다시 시작합니다. (UTF8 아니에요!)


🔗 References

profile
On-orbit

0개의 댓글

관련 채용 정보