본문 바로가기

IT관련

Oracle 샘플 스키마, DB유저 (Sample Schema, User) 생성 예제 (12cR2)

지난번에 오라클 샘플 스키마(HR, OE, PM, IX, SH, BI, CO)에 대한 설명과 간단히 HR 스키마를 만들어봤습니다.

 

   참고 >> Oracle 샘플 스키마 - HR, OE, PM, IX, SH, BI, CO

 

이번에는 다른 샘플스키마들도 만들어 보겠습니다.

Oracle 12cR2 이상에서 제공되는 방식입니다. 해보지는 않았는데, 아마 하위버전들에서도 스크립트가 안돌아가지는 않을 것 같긴 합니다.

 

Oracle 12cR2 부터는 Sample 스키마들을 별도로 GitHub 에서 받아서 설치하도록 변경되었습니다.

다운로드는 아래 GitHub 에서 받습니다.

 

    >> https://github.com/oracle/db-sample-schemas/releases/latest

 

아래와 같이 나오는데, zip 파일이나 tar.gz 파일이나 아무거나 받으면 됩니다.

 

 

받은 파일은 해당 DB서버로 ftp 등으로 옮겨서 압축을 풀면 됩니다.

사실 모두 스크립트 파일들이기 때문에 별도의 설치과정은 없고, 적당한 디렉토리에 옮겨서 압축 풀어주면 끝입니다.^^

 

 

압축을 풀면 위처럼 보이는데, 각각의 서브디렉토리로 들어가서 xxx_main.sql 을 실행시켜서 각각 샘플스키마를 생성해줘도 되고, mksample.sql 을 실행해서 한방에 모든 샘플스키마들을 만들어줄 수도 있습니다.

 

근데, 주의할 점이 그냥 실행하면 아래와같이 __SUB__CWD__ 관련 에러가 발생합니다.

 

         SP2-0310: unable to open file "__SUB__CWD__/human_resources/hr_main.sql"

 

이건 모든 스크립트에 현재 디렉토리를 지정하는 __SUB__CWD__ 라는 변수를 사용하고 있기 때문입니다.

이 변수를 아래와 같은 perl 커맨드를 사용해서 현재 디렉토리로 바꿔줘야 합니다.

 


$ perl -p -i.bak -e 's#__SUB__CWD__#'$(pwd)'#g' *.sql */*.sql */*.dat

 

이렇게 하면 현재 디렉토리와 서브디렉토리를 모두 뒤져서 바꿔줍니다.

 

이제, 실행할 준비가 되었습니다. sys 유저로 접속해서 mksample.sql 파일을 실행시켜주면 됩니다.

 

 

좀 많이 물어보는데,

먼저, sys 유저와 system 유저의 패스워드를 물어봅니다. 정확히 입력해줍니다.

그 다음에는 hr 유저에서 부터 bi 유저까지 샘플유저들에서 사용할 패스워드를 지정해줍니다. 저는 전부 유저명과 똑같이 지정했습니다.

9번은 샘플스키마를 생성할 Tablespace를 지정합니다. 10번은 Temp Tablespace 명을 지정합니다. 

당근 둘다 미리 생성되어 있어야 합니다. 새로 생성하는 것이 아닙니다.^^

 

11번은 그냥 로그 파일위치인데, 위와 똑같이 하던가 oracle 유저가 Writing 권한이 있는 디렉토리를 지정해주면 됩니다.

12번은 connect string 으로 "IP:포트명/서비스명" 과 같이 적어주면 됩니다.

저는 같은 DB서버에서 수행하니까 IP는 localhost 로 했고, 포트명은 보통은 1521 입니다. 저는 1522 로 띄워놔서리...

서비스명은 lsnrctl status 커맨드로 리스너정보 조회하면 나옵니다.

 

그러면, 몇가지 에러를 뱉어내면서 쭉 만들어지는데...

에러는 죄다 혹시 기존에 있으면 삭제하는 거라... 신경쓸 필요없습니다.

(저의 경우 mkdir 에러가 난 것은 이미 한번 실행한적이 있는데, 또 하느라 그런겁니다.)

 

 

여기까지 하면 HR, OE, PM, IX, SH, BI 샘플스키마(유저)가 만들어지고, 12cR2 에서 새롭게 추가된 CO 스키마는 별도로 작업을 해야 합니다. 이건 오라클 도큐먼트를 참조하세요~~

 

https://docs.oracle.com/en/database/oracle/oracle-database/19/comsc/database-sample-schemas.pdf

 

이들 샘플 스키마 삭제는 drop user HR cascade; 와 같이 각각 삭제해도 되고,

mksample.sql 파일과 같은 디렉토리 위치에 있는 drop_sch.sql 파일을 실행시켜서 한꺼번에 삭제할 수도 있습니다.

 

 

아래 프로그램을 사용하면, Scott, HR 샘플스키마를 아주 쉽게 만들 수 있습니다.

>> Oracle 샘플 테스트 데이터 생성 프로그램 다운로드 (DataMaker)

 

 

윈도우즈에 설치한 Oracle DB 에서 샘플스키마를 만드는 경우는 아래 유튜브 영상을 참고하세요. 좀 다릅니다.