오라클 21c HR 계정 - olakeul 21c HR gyejeong

HR 계정은 Oracle Database Express 에서 기본으로 제공하는 계정입니다. 실습으로 사용하기에 적절한 인사(employees) 샘플 데이터를 제공하는데 처음에는 잠겨 있습니다. 잠금을 해제하려면 SYSTEM 계정으로 접속한 상태에서 추가 작업을 해야 합니다.

1. HR 계정 잠금 해제 명령어 입력

( 명령어 : ALTER USER HR ACCOUNT UNLOCK IDENTIFIED BY 1234; )

오라클 21c HR 계정 - olakeul 21c HR gyejeong

2. HR 계정 접속 정보 설정

왼쪽 상단에 + 아이콘을 클릭하여 새 접속 정보를 설정

  • 접속 이름 : 실습용HR
  • 사용자 이름 : HR
  • 비밀번호 : 1234 ( 1번 항목에서 설정한 비밀번호 입력 )
오라클 21c HR 계정 - olakeul 21c HR gyejeong

설정 정보를 모두 입력 후 테스트(T) 클릭. 왼쪽 하단에 '상태: 성공' 이 나오면 완료된 것으로 완료되었다면, 접속(O)을 클릭하여 워크시트를 실행

오라클 21c HR 계정 - olakeul 21c HR gyejeong

3. 질의 작성기에 SELECT * FROM TAB; 을 입력하고 아이콘을 눌러 실행

오라클 21c HR 계정 - olakeul 21c HR gyejeong

Oracle Sample Schema

오라클 21c HR 계정 - olakeul 21c HR gyejeong

오라클 데이터베이스를 수동생성하거나 Sample Schema를 추가하지 않는 경우 테스트할 수 있는 데이터가 없습니다. 오라클에서 제공해주는 샘플 스키마로 6가지가 있습니다.

HR : Human Resource
OE : Order Entry
PM : Product Media
IX : Information Exchange
SH : Sales History
BI : Business Intelligence

해당 글에서는 위 6개의 샘플 스키마를 수동으로 생성하는 방법을 알려드리겠습니다.

Sample Schema 생성

실습환경

OS : Red Hat Enterprise Linux Server release 6.10
DB : Oracle 12.1.0.2
SID : testdb

아래 링크는 Oracle이 운영하는 github입니다. 샘플 스키마를 만들어주는 파일을 제공하니 버전에 맞게 설치 후 작업 진행합니다.

Releases · oracle/db-sample-schemas

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

github.com

오라클 21c HR 계정 - olakeul 21c HR gyejeong
오라클 21c HR 계정 - olakeul 21c HR gyejeong

Oracle 12.1.0.2 버전을 사용하여 실습 진행하니 tar.gz 파일로 받아줍니다. 해당 파일은 서버에 적당한 위치에 넣어주는 것으로 실습 준비를 끝냅니다.

생성 스크립트 설정

[testdb@host01 ~]$ tar xvfz db-sample-schemas-12.1.0.2.tar.gz
[testdb@host01 ~]$ cd db-sample-schemas-12.1.0.2
[testdb@host01 db-sample-schemas-12.1.0.2]$ cp -R ./* $ORACLE_HOME/demo/schema
[testdb@host01 db-sample-schemas-12.1.0.2]$ cd $ORACLE_HOME/demo/schema/

압축파일을 풀어주고 $ORACLE_HOME/demo/schema 경로 아래 파일들을 이동시켜 줍니다.

[testdb@host01 schema]$ vi mksample.sql
오라클 21c HR 계정 - olakeul 21c HR gyejeong

샘플 스키마를 생성하기 위해 mksample.sql이라는 파일을 실행할겁니다. 파일을 열어보면 경로로 표시되어야하는 부분이 '__SUB__CWD__'로 되어있습니다. 해당 부분을 변경해주기 위해 명령어를 사용하겠습니다.

[testdb@host01 schema]$ cd $ORACLE_HOME/demo/schema
[testdb@host01 schema]$ perl -p -i.bak -e 's#__SUB__CWD__#'$(pwd)'#g' *.sql */*.sql */*.dat

perl 명령어를 사용해서 작업에 필요한 파일들 안에 '__SUB__CWD__'를 현재 위치해 있는 경로로 변경합니다. 해당 명령어를 사용할때는 꼭 $ORACLE_HOME/demo/schema아래서 실행합니다.

생성 스크립트 실행

생성 스크립트를 실행할때 몇가지 데이터베이스의 정보를 알고 있어야합니다. 실행시 system과 sys의 비밀번호를 물을것이고 생성할 스키마의 비밀번호들을 지정합니다. 이후 사용할 Tablespace 명, Temporary Tablespace 명, 로그 위치 그리고 connection URL을 입력해줘야합니다. multinenant 환경에서는 PDB로 연결이 필요합니다.

테이블스페이스 생성
SYS@testdb> create tablespace examples
datafile '/u01/app/oracle/oradata/testdb/examples01.dbf' size 200m;

사용할 테이블스페이스를 생성해줍니다.

SYS@testdb> select tablespace_name, contents from dba_tablespaces;
오라클 21c HR 계정 - olakeul 21c HR gyejeong
리스너 실행
[testdb@host01 ~]$ lsnrctl start
[testdb@host01 testdb]$ lsnrctl ser  

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 15-JUL-2020 16:16:55

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host01)(PORT=1521)))
Services Summary...
Service "testdb" has 1 instance(s).
  Instance "testdb", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:48 refused:0 state:ready
         LOCAL SERVER
The command completed successfully

이지 커넥션을 통해서하는 작업들이 있어 리스너를 실행시켜줍니다.

필요한 정보들을 확인했으니 이제 생성 스크립트를 실행해보겠습니다.

SYS@testdb> @?/demo/schema/mksample.sql

specify password for SYSTEM as parameter 1:
Enter value for 1: oracle

specify password for SYS as parameter 2:
Enter value for 2: oracle

specify password for HR as parameter 3:
Enter value for 3: hr      

specify password for OE as parameter 4:
Enter value for 4: oe

specify password for PM as parameter 5:
Enter value for 5: pm

specify password for IX as parameter 6:
Enter value for 6: ix

specify password for  SH as parameter 7:
Enter value for 7: sh

specify password for  BI as parameter 8:
Enter value for 8: bi

specify default tablespace as parameter 9:
Enter value for 9: examples

specify temporary tablespace as parameter 10:
Enter value for 10: temp

specify log file directory (including trailing delimiter) as parameter 11:
Enter value for 11: $ORACLE_HOME/demo/schema/log/

specify connect string as parameter 12:
Enter value for 12: localhost:1521/testdb                       

Sample Schemas are being created ...

스키마 생성이 완료되었습니다. 생성과정에서 각각 데이터베이스 환경에따라 생성이 안되거나 누락되는 데이터가 생길 수 있습니다. 테스트상 가장 많이 사용하는 HR 스키마를 제외하고는 조금씩 문제가 생기는 스키마가 있습니다. 간단한 실습을 위해서 HR 스키마만 있어도 문제가 안된다면 그대로 사용하거나 아래 명령을 통해서 HR스키마만 생성하여 사용해도됩니다.

SYS@testdb> @?/demo/schema/human_resources/hr_main.sql
specify password for HR as parameter 1:
Enter value for 1: hr

specify default tablespeace for HR as parameter 2:
Enter value for 2: examples

specify temporary tablespace for HR as parameter 3:
Enter value for 3: temp

specify password for SYS as parameter 4:
Enter value for 4: oracle

specify log path as parameter 5:
Enter value for 5: $ORACLE_HOME/demo/schema/log/

specify connect string as parameter 6:
Enter value for 6: localhost:1521/testdb

에러발생에대한 부분은 설정한 로그파일에서 확인할 수 있습니다.