[DB] ORACLE

[ORACLE/TIBERO] engine 설치 후 초기 설정(스키마, 오브젝트 생성 등)

mewoni 2020. 5. 25. 14:08
반응형

-- 초보 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 등

 

 

( 작성자가 직접 한것이 아니라 이전에 오라클 테스트 환경 설정을 위해서 다른 페이지에서 복붙하여 가지고 있던 텍스트 파일이라 출저가 불명확합니다. 출처를 아시는 분이나 작성자 댓글로 남겨주시면 출처도 함께 기재하여 수정합니다.)

반응형