사용자 도구

사이트 도구


database:oracle

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
database:oracle [2020/07/01 16:12]
kwon37xi [Docker 로 설치]
database:oracle [2020/07/08 17:27] (현재)
kwon37xi [Docker 로 설치]
줄 1: 줄 1:
 ====== Oracle Database ====== ====== Oracle Database ======
 +  * [[database:​oracle:​jdbc|Oracle JDBC Driver]]
  
 ===== Docker Images ===== ===== Docker Images =====
줄 8: 줄 9:
   * [[https://​hub.docker.com/​r/​jaspeen/​oracle-xe-11g|jaspeen/​oracle-xe-11g - Docker Hub]] - https://​github.com/​jaspeen/​docker-oracle-xe-11g   * [[https://​hub.docker.com/​r/​jaspeen/​oracle-xe-11g|jaspeen/​oracle-xe-11g - Docker Hub]] - https://​github.com/​jaspeen/​docker-oracle-xe-11g
   * [[https://​hub.docker.com/​_/​oracle-database-enterprise-edition|Oracle Database Enterprise Edition - Docker Hub]]   * [[https://​hub.docker.com/​_/​oracle-database-enterprise-edition|Oracle Database Enterprise Edition - Docker Hub]]
 +    * [[https://​medium.com/​@pakss328/​docker-oracle-%EA%B8%B0%EB%B3%B8-%EC%85%8B%ED%8C%85-a09bf869cb59|docker oracle 기본 셋팅 - 박상수 - Medium]]
 +  * [[https://​github.com/​steveswinsburg/​oracle12c-docker|steveswingsburg/​oracle12c]]
 +  * [[https://​emflant.tistory.com/​237|(docker) oracle xe 18c 설치 및 sqlplus 접속하기 :: SourceBox]]
 +  * [[https://​github.com/​oracle/​docker-images|oracle/​docker-images:​ Official source for Docker configurations,​ images, and examples of Dockerfiles for Oracle products and projects]]
  
 ===== Docker 로 설치 ===== ===== Docker 로 설치 =====
 +  * [[https://​github.com/​oracle/​docker-images/​issues/​959|Docker 로 Oracle 설치시에 all_objects 조회가 엄청나게 느린 현상이 발생함]]
 +    * [[java:​junit:​dbunit|DBUnit]],​ [[java:​junit:​database_rider|database-rider]] 에서 문제됨.
 +    * docker 기반이 아닐 경우 1초 정도에 실행 끝남.
 +    * [[https://​stackoverflow.com/​questions/​37722685/​oracle-11g-docker-select-very-slow|sql - Oracle 11g docker SELECT very slow - Stack Overflow]] ''​asynch_io''​ 를 꺼야 성능이 좋아진다는 내용
   * [[https://​hub.docker.com/​r/​wnameless/​oracle-xe-11g-r2|wnameless/​oracle-xe-11g-r2]] [[https://​github.com/​wnameless/​docker-oracle-xe-11g|github]]<​code sh>   * [[https://​hub.docker.com/​r/​wnameless/​oracle-xe-11g-r2|wnameless/​oracle-xe-11g-r2]] [[https://​github.com/​wnameless/​docker-oracle-xe-11g|github]]<​code sh>
 docker run -d --name==oracle11gr2 \ docker run -d --name==oracle11gr2 \
줄 15: 줄 24:
  -p 49180:8080 \  -p 49180:8080 \
  -e ORACLE_ALLOW_REMOTE=true  -e ORACLE_ALLOW_REMOTE=true
- -e ORACLE_DISABLE_ASYNCH_IO=true+ -e ORACLE_DISABLE_ASYNCH_IO=true ​# 필수!! all_objects 조회를 위해서.
   wnameless/​oracle-xe-11g-r2   wnameless/​oracle-xe-11g-r2
 </​code>​ </​code>​
줄 33: 줄 42:
  
   * sqlplus<​code sh>   * sqlplus<​code sh>
-docker exec -it oracle11gr2 /bin/bash+docker exec -it -u oracle:​dba ​oracle11gr2 /bin/bash 
 +# sqlplus 실행 
 +sqlplus "​SYS/​oracle"​ AS SYSDBA
  
-# 접속 후 
-su oracle 
-sqlplus /nolog 
- 
-# sqlplus 에서 
-SQL> conn / as sysdba 
 </​code>​ </​code>​
 ===== Table Space와 사용자 추가 ===== ===== Table Space와 사용자 추가 =====
줄 71: 줄 76:
 </​code>​ </​code>​
  
 +===== charset / characterset =====
 +  * 확인
 +<code sql>
 +select * from nls_database_parameters where parameter like '​%CHARACTERSET%'; ​
 +-- NLS_CHARACTERSET : AL32UTF8
 +-- NLS_NCHAR_CHARACTERSET : AL16UTF16
 +
 +select VALUE$ from sys.props$ where name='​NLS_LANGUAGE';​
 +SELECT * FROM nls_database_parameters where parameter = '​NLS_LANGUAGE'​
 +-- AMERICAN
 +</​code>​
 +
 +  * SQL을 이용한 변경 - 아래는 ''​KO16MSWIN949''​로 변경하는 예인데, 되도록 ''​AL32UTF8''​ 사용할 것.
 +<code sql>
 +update props$ set value$='​KO16MSWIN949'​ where name='​NLS_CHARACTERSET';​
 +update props$ set value$='​AL16UTF16'​ where name='​NLS_NCHAR_CHARACTERSET';​
 +update sys.props$ set value$='​KOREAN_KOREA.UTF8'​ where name='​NLS_LANGUAGE';​
 +commit;
 +
 +-- 모든 데이터베이스에 일괄 적용. 아래 작업을 안하면 오류 발생했음.
 +-- ORA-06552: PL/SQL: Compilation unit analysis terminated
 +-- ORA-06553: PLS-553: 알 수 없는 문자 집합 이름입니다
 +-- ORA-06553: PLS-553: character set name is not recognized
 +
 +ALTER SYSTEM ENABLE RESTRICTED SESSION;
 +ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;​
 +ALTER SYSTEM SET AQ_TM_PROCESSES=0;​
 +
 +ALTER DATABASE CHARACTER SET INTERNAL_USE KO16MSWIN949;​
 +ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16;
 +
 +-- 재시작
 +shutdown immediate
 +startup
 +</​code>​
 +
 +  * 문자셋 종류
 +    * ''​KO16KSC5601''​ : 완성형 한글, 한글2350글자. 한글 2bytes 차지
 +    * ''​KO16MSWIN949''​ : CP949, 모든 한글 표현, 한글 2bytes 차지
 +    * ''​AL32UTF8''​ : UTF-8, 한글 3bytes 차지
 +  * 참고
 +    * [[https://​db.necoaki.net/​134|db.necoaki.net :: Oracle Character set 에 관하여]] 문자셋 그 자체에 대한 설명
 +    * [[https://​rocksea.tistory.com/​241|[Oracle] Character set 변경.]]
 +    * [[https://​jehna.tistory.com/​34|[Oracle] 문자셋(characterset) 확인 및 변경 :: Jehna :)]]
 +
 +===== TIMEZONE =====
 +  * [[https://​www.carajandb.com/​en/​blog/​2016/​be-careful-when-setting-the-dbtimezone/​|Be careful when setting the DBTIMEZONE! | CarajanDB]]
 +  * [[https://​www.oracletutorial.com/​oracle-date-functions/​oracle-dbtimezone/​|Oracle DBTIMEZONE]]
 +
 +===== 권한 Grant =====
 +  * [[https://​hello-nanam.tistory.com/​1|나남나여 :: 오라클 테이블 권한 부여 ( GRANT )]]
 +  * [[https://​m.blog.naver.com/​PostView.nhn?​blogId=heartflow89&​logNo=221002112762&​proxyReferer=https:​%2F%2Fwww.google.com%2F|[Oracle/​오라클] 권한 부여(GRANT) / 제거(REVOKE) / 조회 / 계정(사용자) 생성 : 네이버 블로그]]
 +  * [[https://​jink1982.tistory.com/​34|[Oracle] 권한 생성(GRANT),​ 권한 삭제(REVOKE) :: 돼민이]]
 +  * [[http://​develop.sunshiny.co.kr/​736|Oracle - 디폴트 롤, DBA, CONNECT, RESOURCE :: You've got to find what you love.]]
 +
 +==== 기본 Role ====
 +  * ''​CONNECT''​ : DB 접속 권한
 +  * ''​RESOURCE''​ : 객체(생성,​ 수정, 삭제), 데이터(입력,​ 수정, 조회, 삭제) 권한
 +  * ''​DBA''​ : 절대 권력?
 +
 +==== Table 단위 권한 부여 ====
 +<​code>​
 +-- 부여
 +GRANT SELECT, INSERT, DELETE, UPDATE ON [TABLE NAME] TO [USER];
 +
 +-- 해제
 +REVOKE SELECT, INSERT, DELETE, UPDATE ON [TABLE NAME] FROM [USER];
 +</​code>​
database/oracle.1593587568.txt.gz · 마지막으로 수정됨: 2020/07/01 16:12 저자 kwon37xi