본문 바로가기

쓰레기장""

docker로 sqld 실습환경 만들기

책은 SQLD 비밀노트 이다. (왠만하면.....추천 안한다)

 

음...-_- 책에서 실습 환경이 윈도우로만 되어 있어서 mac 환경에서 하기 위해 docker로 진행한 부분을 포스팅 한다.

 

책에서 쓰인 데이터 및 스크립트들은 아래 링크에서 받을 수 있다. (언제든지 링크 주소는 바뀔수 있으니, 한빛출판사 홈페이지에서 검색해보자)

https://hanbit.co.kr/media/books/book_view.html?p_code=B8289488788

 

소문난 명강의 : 시험장에 몰래 가져갈 이경오의 SQL+SQLD 비밀노트

공공 데이터를 활용해 SQL 기본부터 실무 활용, 그리고 SQLD 자격증까지 한번에 끝낼 수 있는 도서

hanbit.co.kr

 

 

 

1. docker로 oracle 실행하기

docker image : https://hub.docker.com/r/jaspeen/oracle-xe-11g

$ docker run --name oracle11g -v "현재 PC의 원하는 위치:/tmp" -d -p 1521:1521 jaspeen/oracle-xe-11g

오라클 사용자 아이디/비번

system // oracle

 

 

2. 책의 챕터2 부분 진행 (TABLESPACE / TEMPORARY 경로는 임의로 설정했음)

CREATE USER SQLD IDENTIFIED BY 1234;
ALTER USER SQLD ACCOUNT UNLOCK;
GRANT RESOURCE, DBA, CONNECT TO SQLD;

CREATE TABLESPACE SQLD_DATA
DATAFILE '/tmp/SQLD_DATA.dbf' SIZE 4G

CREATE TEMPORARY TABLESPACE SQLD_TEMP
TEMPFILE '/tmp/SQLD_TEMP.dbf' SIZE 1G
AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;

alter user SQLD default tablespace SQLD_DATA;

ALTER USER SQLD TEMPORARY TABLESPACE SQLD_TEMP;

 

 

3. 덤프파일 적용

챕터2 책에서 표기된 데이터를 받으라고 한 링크는 동작하지 않습니다. (나처럼 시간 낭비하지 말자)

한빛출판사에서 책 검색 후 부록/예제소스에서 다운로드 받으면 됩니다.

https://www.hanbit.co.kr/store/books/look.php?p_code=B8289488788

EXPORT_SQLD 압축 해제 후 처음 도커 실행시 volumn 설정 경로에 dump 파일을 옮기면 도커내부에서 접근이 가능합니다.

도커 콘솔로 접속 후 덤프 파일을 적용합니다. (시간이 꽤 걸립니다.)

impdp SQLD/1234 schemas=SQLD directory=D_SQLD dumpfile=EXPORT_SQLD.dmp logfile=EXPORT_SQLD.log

적용 후 테이블 검색

SELECT ROWNUM AS 순번
     , TABLE_NAME AS 테이블명
     , (SELECT L.COMMENTS
          FROM DBA_TAB_COMMENTS L
         WHERE L.OWNER = 'SQLD'
           AND L.TABLE_NAME = A.TABLE_NAME) AS 테이블한글명
     , DATA_CNT AS 테이블행수
     , COUNT(*) OVER() AS 총테이블수
     , SUM(DATA_CNT) OVER() AS 총행수
  FROM
     (
       SELECT TRIM('TB_ADRES_CL') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_ADRES_CL
       UNION ALL
       SELECT TRIM('TB_ADRES_CL_SE') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_ADRES_CL_SE
       UNION ALL
       SELECT TRIM('TB_ADSTRD') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_ADSTRD
       UNION ALL
       SELECT TRIM('TB_AGRDE_SE') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_AGRDE_SE
       UNION ALL
       SELECT TRIM('TB_PLOT_SE') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_PLOT_SE
       UNION ALL
       SELECT TRIM('TB_POPLTN') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_POPLTN
       UNION ALL
       SELECT TRIM('TB_POPLTN_SE') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_POPLTN_SE
       UNION ALL
       SELECT TRIM('TB_RN') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_RN
       UNION ALL
       SELECT TRIM('TB_STDR_INDUST_CL') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_STDR_INDUST_CL
       UNION ALL
       SELECT TRIM('TB_SUBWAY_STATN') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_SUBWAY_STATN
       UNION ALL
       SELECT TRIM('TB_SUBWAY_STATN_TK_GFF') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_SUBWAY_STATN_TK_GFF
       UNION ALL
       SELECT TRIM('TB_TK_GFF_SE') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_TK_GFF_SE
       UNION ALL
       SELECT TRIM('TB_BSSH') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_BSSH
       UNION ALL
       SELECT TRIM('TB_INDUTY_CL') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_INDUTY_CL
       UNION ALL
       SELECT TRIM('TB_INDUTY_CL_SE') AS TABLE_NAME, COUNT(*) DATA_CNT FROM SQLD.TB_INDUTY_CL_SE
     ) A
;

 

 

끝!

  • 책이 나온지 반년도 안되었는데......이건 너무하다..
  • 실행스크립트도 윈도우 포멧으로 작성되어 한글이 전부 깨진다. (sql 칼럼을 한글로 하면 어떻하니...)
  • 빨리 자격증따고 버려야겠다

'쓰레기장""' 카테고리의 다른 글

요즘 같은 세상에....  (0) 2021.12.20
지구야 미안해!!  (0) 2020.07.18
월세로 집을 구한다면 꼭 첫달 월세를 확인하세요!!  (0) 2019.07.03
jenkins 설치 및 연동  (0) 2019.05.14
우주라이크  (0) 2018.12.28