오라클 데이터베이스 19c 샘플 스키마 생성
오라클 데이터베이스 19c 를 Silent 설치를 할 경우에 대부분 데이터베이스를 생성하고 끝나게 된다. 하지만 오라클은 샘플 스키마를 제공하고 있는데, HR 관련 된 내용의 샘플 스키마를 제공 한다. 이것을 설치해보자.
SQLcl 활용
SQL Plus 에 기능을 더한 SQLcl 를 활용할 것이다. SQLcl 은 $ORACLE_HOME/sqldeveloper/sqldeveloper/bin 디렉토리가 있다. 여기에 sql 스크립트가 존재하는데 이것이 SQLcl 이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
]$ cd $ORACLE_HOME ]$ cd sqldeveloper/sqldeveloper/bin ]$ chmod +x sql ]$ ./sql SQLcl: Release 19.1 Production on Fri Apr 30 23:23:46 2021 Copyright (c) 1982, 2021, Oracle. All rights reserved. Username? (''?) sys as sysdba Password? (**********?) ************ Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> set sqlformat ansiconsole; SQL> |
“set sqlformat ansiconsole” 를 할 경우에 결과를 보다 보기 좋게 해준다.
PDB 로 세션 변경
오라클 데이터베이스 19c 의 경우에 CDB, PDB 개념이 존재한다. 실제 사용자 데이터베이스는 PDB 에 생성된다. 세션을 PDB 로 변경해준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
SQL> select name, open_mode, restricted from v$pdbs; NAME OPEN_MODE RESTRICTED PDB$SEED READ ONLY NO PDB1 READ WRITE NO SQL> alter session set container = pdb1; Session altered. SQL> select dbid, con_id, name from v$pdbs; DBID CON_ID NAME 2824454508 3 PDB1 SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED 3 PDB1 READ WRITE NO |
HR 스키마 설치
HR 스키마는 오라클 데이터베이스에 있다. 경로는 다음과 같다.
1 2 |
]$ ls $ORACLE_HOME/demo/schema/human_resources hr_analz.sql hr_code.sql hr_comnt.sql hr_cre.sql hr_drop_new.sql hr_drop.sql hr_idx.sql hr_main_new.sql hr_main.sql hr_popul.sql |
hr_main.sql 를 실행하면 설치가 진행되는데, 사용자들로부터 다음과 같은 값을 입력 받는다.
- HR 스키마 사용자의 패스워드
- HR 스키마에 기본 테이블스페이스
- HR 를 위한 임시 테이블스페이스
- 로그 경로
기본 테이블스페이스, 임시 테이블스페이스를 만들어도 되지만 pdb1 에 있는 것을 가져다 써도 된다. 테이블스페이스 이름을 알아야 한다.
1 2 3 4 5 6 7 |
SQL> select tablespace_name from user_tablespaces; TABLESPACE_NAME SYSTEM SYSAUX UNDOTBS1 TEMP USERS |
USERS 는 기본 테이블스페이스, TEMP 를 임시 테이블스페이스로 사용하면 될 듯 하다. 이제 설치를 해보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SQL> @/u01/app/oracle/product/19.3.0/dbhome_1/demo/schema/human_resources/hr_main.sql specify password for HR as parameter 1: Enter value for 1: HrPassword1 specify default tablespeace for HR as parameter 2: Enter value for 2: USERS specify temporary tablespace for HR as parameter 3: Enter value for 3: TEMP specify log path as parameter 4: Enter value for 4: /u01/app/oracle/product/19.3.0/dbhome_1/demo/schema/log |
log 경로는 demo/schema 디렉토리에 log 디렉토리를 활용했다.
hr 계정 패스워드 설정 및 UNLOCK
계정을 생성하면 기본적으로 계정은 LOCKED 상태가 되어서 사용할 수 없다. UNLOCK 을 해줘야 한다.
1 2 |
SQL> ALTER USER hr ACCOUNT UNLOCK; SQL> ALTER USER hr IDENTIFIED BY HrPassword1; |