본문 바로가기
정보관리(데이터베이스, DB)/오라클

Oracle XE 18c 샘플데이터 HR 스키마 생성 과정

by 3604 2023. 7. 26.
728x90
 

 

샘플 데이터 자료 및 위치

가장 유명한 데이터는 HR유저의 샘플 데이터이죠.

저도 이 데이터로 데이터베이스 강의 시간에 실습했던 기억이.. 그래서 아마 제 DB강의는 이 스키마를 베이스로 진행될 예정입니다. 

자동으로 설치는 안되지만 오라클 디렉터리에 가면 수동으로 만들 수 있는 스크립트가 존재합니다.

schema 디렉터리 밑에 human_resources가 있네요. 요놈임!

$ORACLE_HOME/demo/schema/human_resources

오라클 홈은 자동설치 했으면 보통 C:app\사용자이름\product\18.0.0\dbhomeXE에 있을 거예요. 저는 하드에다가 깔아주려고 C:가 아닌 D:에다가 설치했었기에 경로가 위와 같습니다. 

 

혹 샘플데이터가 없는 분은 아래 링크 들어가시면 가장 최신의 오라클 예제 샘플 스키마들을 다운받을 수 있습니다. 

https://github.com/oracle/db-sample-schemas/releases/tag/v19.2

 

oracle/db-sample-schemas

Oracle Database Sample Schemas. Contribute to oracle/db-sample-schemas development by creating an account on GitHub.

github.com

HR스키마 설치

우리는 수동으로 이 HR스키마를 설치해볼거예요. 설치 방법은 : https://docs.oracle.com/en/database/oracle/oracle-database/18/comsc/installing-sample-schemas.html#GUID-1E645D09-F91F-4BA6-A286-57C5EC66321D 사이트를 참조했어요 

 

◆ 1. 관리자 계정으로 로그인

먼저, SQL Plus 를 켜줍시다. 

sys as sysdba를 쳐서 관리자로 로그인해주세요. (비밀번호는 저의 경우 root로 설정해뒀었는데, system계정 비밀번호를 입력하면 됩니다) 

 

system으로 들어가줘도 돼요 그게 그거

 

2. 유저 생성 가능하게 변수조작

접속하셨으면 먼저, 

alter session set "_ORACLE_SCRIPT"=true;

위 명령어 쳐주기! (12c 이전이면 필요없는 명령어예요) 

12c 이후부터 계정을 생성할 때 C##키워드를 붙여줘야 계성생성이 되도록 규칙이 변경되었는데요. hr 스크립트에는 C##없이 계정을 생성하기 때문에 오류가 떠서 이를 방지하고자 치는 명령어예요 (밑에 진행하면서 오류예시도 같이 보여드릴게요)

 

사실 언더바( _ )가 붙어있는건 사용하기 권고되지 않는 변수예요. 

human_resources의 hr_main.sql에서 'CREATE USER hr IDENTIFIED BY &pass;'부분을 'CREATE USER C##hr IDENTIFIED BY &pass;' 로 변경해줘도 됩니다. 

 

 3. 스크립트 실행 

SQL> @?/demo/schema/human_resources/hr_main.sql

요렇게 위치에 있는 hr_main.sql을 실행시켜주면 됩니다. 오라클에서 이 물음표는 오라클 홈 환경변수가 있는 위치를 나타내요. @는 실행시키는거! 

$ORACLE_HOME/demo/schema/human_resources

위에서 이 디렉터리 기억나죠?? 우리 스키마가 저장되어 있는 곳! 저 디렉터리 안에 있는 메인 스크립트를 실행시킨다와 같은 의미가 되는거죠.

 

 4. 요구되는 값 입력해주기

4-1. 스크립트를 실행하면 맨 처음 hr 유저 계정 비밀번호를 입력하라고 나옵니다.

저는 동일하게 'hr'로 설정해줬어요.

4-2. 그 다음 HR 기본 테이블스페이스를 지정하라 해요.

테이블스페이스는 데이터를 저장할 파일이예요. 오라클이 튜토리얼이 권고하는대로 users를 써줬어요.

4-3. HR 임시 테이블 스페이스~

temp라고 적어줬습니다.

4-4 로그를 남길 위치를 지정하라고 해요.

저는 human_resources가 위치한 schema아래 log디렉터리에다가 저장하는 걸로 설정했습니다.

끝~!!

 

만약 2번 작업을 안해줬을 경우, 

요렇게 '공통 사용자 또는 롤 이름이 부적합합니다' 에러가 뜨면서 유저가 만들어지지 않아요.

 

아무튼 이렇게 다 입력을 마치면

크리에이트가 여러게 되더니 마지막으로 커밋되고 끝납니다. 이렇게 되면 정상적으로 다 된거예요. 

 

잘 설치되었는지 확인하기

위의 과정을 정상적으로 다 수행하였다면, 확인차 sql 명령어 하나를 날려봅시다.

select *
from employees where rownum =1 

 위 명령어를 수행해주면 

요렇게 결과가 잘 뽑히는 것을 확인할 수 있어요.

SQL DEVELOPER 또는 DBeaver 툴에서 확인~!

[SQL DEVELOPER]

자 이제 sql developer에서도 잘 조회되는지 확인해봅시다. sql developer에 접속해주세요.

요기 플러스 버튼을 눌러서 세션을 만들어줍시다.

사용자 hr 비밀번호 아까 입력했던 비밀번호를 쳐줍시다. (저의 경우 동일하게 hr로 함)

그리고 테스트를 눌러보면 왼쪽 하단에 '상태:성공'이라고 뜨면 성공!

접속해보면 요렇게 HR데이터베이스가 생겼고 그 아래 테이블 목록에 설치한 테이블들이 제대로 뜨는 것을 확인할 수 있어요.

저는 select * from employees; 쿼리로 간단하게 테이블에 저장된 데이터들이 뜨는지 확인해봤답니다.

 

[DBeaver]

DBeaver에서도 또한 오라클로 커넥션을 생성한 뒤, 정보란 username을 hr로 Password를 hr로 써주세요~

DBeaver의 경우에도 잘 실행되는 것을 확인할 수 있어요.

조회도 성공!

 

728x90