-- 초보 DBA 분들이나 학습을 위해 로컬 오라클 서버 설치 후 어떤 것 부터 해야할지 막막한 사람들을 위해 참고용으로 작성되었습니다. 회사 내 네이밍 규칙이나 학습을 위한 부분에서 조금 더 세부적인 설정이 있어야 하지만 글 작성을 위해 필요한으로 단순화한 순서로 기재 되었습니다.
테스트 진행 환경)
ORACLE version : 10g (single)
datafile : UNIX file system
(window version도 동일하게 진행)
1. 오라클 엔진 설치(Install)
1) 오라클 엔진 설치
2) 오라클 데이터베이스 생성
3) listener.ora 및 tnsname.ora 설정
4) initTESTDB.ora(spfileTESTDB.ora) 설정 변경
2. 스키마 생성 및 오브젝트 생성
(엔진 설치 후, DB 생성이 되어있다면 다음과 같은 순서로 스키마/오브젝트를 생성)
1) 데이터 파일을 저장할 디렉토리 생성
% su - oracle
% mkdir -p /data01/TESTDB
% mkdir -p /data02/TESTDB
2) 테이블스페이스(TABLESPACE) 생성
SQL> CONNECT / as sysdba
-- 데이터용 테이블스페이스 생성
SQL> CREATE TABLESPACE TS_GDXX01
datafile '/data01/TESTDB/TS_GDXX01_01.dbf' size 50M REUSE
extent management local autoallocate
segment space management auto;
-- 인덱스용 테이블스페이스 생성
SQL> CREATE TABLESPACE TS_GIXX01
datafile '/data02/TESTDB/TS_GIXX01_01.dbf' size 50M REUSE
extent management local autoallocate
segment space management auto;
3) 사용자(USER) 생성
SQL> CONNECT / as sysdba
-- 응용프로그램 접속 계정(최소권한) : US_APPL
SQL> CREATE USER US_APPL
IDENTIFIED BY password
DEFAULT TABLESPACE TS_GDXX01
TEMPORARY TABLESPACE TEMP;
SQL> GRANT ALTER SESSION, CREATE SESSION TO US_APPL;
SQL> GRANT CREATE SYNONYM, UNLIMITED TABLESPACE TO US_APPL;
-- 오브젝트 소유 계정 : US_OWNER
SQL> CREATE USER US_OWNER
IDENTIFIED BY password
DEFAULT TABLESPACE TS_GDXX01
TEMPORARY TABLESPACE TEMP;
SQL> GRANT CONNECT, RESOURCE TO US_OWNER;
SQL> GRANT CREATE PUBLIC SYNONYM, UNLIMITED TABLESPACE TO US_OWNER;
4) 테이블(TABLE) 생성
SQL> CONNECT US_OWNER/password
SQL> CREATE TABLE TB_GXX001 (
PgmID VARCHAR2(30) NOT NULL,
PgmNm VARCHAR2(50) NULL,
BatchType CHAR(1) NULL
ChngDtime VARCHAR2(14) NOT NULL,
CONSTRAINT IX_GXX001_PK PRIMARY KEY (PgmID)
USING INDEX TABLESPACE TS_GIXX01
) TABLESPACE TS_GDXX01;
5) 인덱스(INDEX) 생성
SQL> CONNECT US_OWNER/password
SQL> CREATE INDEX IX_GXX001 ON TB_GXX001
( BatchType ASC, PrgNm ASC )
TABLESPACE TS_GIXX01;
6) 테이블(TABLE) 권한부여(GRANT)
SQL> CONNECT US_OWNER/password
SQL> GRANT INSERT, SELECT, UPDATE, DELETE ON TB_GXX001 TO US_APPL;
7) 테이블(TABLE) 시노님(SYNONYM) 생성
SQL> CONNECT US_OWNER/password
SQL> CREATE PUBLIC SYNONYM TB_GXX001 FOR US_OWNER.TB_GXX001;
8) 시퀀스(SEQUENCE) 생성
SQL> CONNECT US_OWNER/password
SQL> CREATE SEQUENCE SQ_GXX001 START WITH 1 INCREMENT BY 1 MAXVALUE 999999 CYCLE ORDER CACHE 10;
SQL> GRANT SELECT ON SQ_GXX001 TO US_OWNER;
SQL> CREATE PUBLIC SYNONYM SQ_GXX001 FOR US_OWNER.SQ_GXX001 ;
9) 뷰(VIEW) 생성
SQL> CONNECT US_OWNER/password
SQL> CREATE VIEW VW_GXX001_LIST .... ;
SQL> GRANT SELECT ON VW_GXX001_LIST TO US_APPL;
SQL> CREATE PUBLIC SYNONYM VW_GXX001_LIST FOR US_OWNER.VW_GXX001_LIST;
10) 저장 프로시저 / 함수 (STORED PROCEDURE / FUNCTION) 생성
SQL> CONNECT US_OWNER/password
SQL> CREATE OR REPLACE PROCEDURE SP_GXX001_LIST ....;
SQL> CREATE OR REPLACE FUNCTION SF_GXX001_LIST ....;
SQL> GRANT EXCUTE ON SP_GXX001_LIST TO US_APPL;
SQL> GRANT EXCUTE ON SF_GXX001_LIST TO US_APPL;
SQL> CREATE PUBLIC SYNONYM SP_GXX001_LIST FOR US_OWNER.SP_GXX001_LIST;
SQL> CREATE PUBLIC SYNONYM SF_GXX001_LIST FOR US_OWNER.SF_GXX001_LIST;
11) 외래키(FK CONSTRAINT) 생성
SQL> CONNECT US_OWNER/password
SQL> ALTER TABLE TB_GXX001 ADD ( CONSTRAINT FK__GXX001
FOREIGN KEY ( SubPgmID ) REFERENCES TB_GXX999 ( PgmID ) );
12) 트리거(TRIGGER) 생성
SQL> CONNECT US_OWNER/password
SQL> CREATE OR REPLACE TRIGGER TR_GXX001_LIST .... ;
13) 기타 필요한 것들 생성 및 등록
- DB LINK, M-VIEW, DBMS JOB 등
( 작성자가 직접 한것이 아니라 이전에 오라클 테스트 환경 설정을 위해서 다른 페이지에서 복붙하여 가지고 있던 텍스트 파일이라 출저가 불명확합니다. 출처를 아시는 분이나 작성자 댓글로 남겨주시면 출처도 함께 기재하여 수정합니다.)
'[DB] ORACLE' 카테고리의 다른 글
[ORACLE] DBMS_CRYPTO package 단방향 암호화 (0) | 2021.01.19 |
---|---|
[ORACLE/TIBERO] 테이블/인덱스/제약조건 등 오브젝트 조회 쿼리 (0) | 2020.06.08 |
[ORACLE] DB, SCHEMA, TABLE, COLUMN 등 오브젝트 목록 조회 (0) | 2020.05.25 |
[ORACLE] expdp / impdp (0) | 2020.04.28 |
[ORACLE] DUMP (0) | 2020.04.27 |