실행 환경

  • RDBMS : Oracle 10g 이상, PPAS

제공파일

  • db_script.zip

    1. security/table_<dbms>.sql : 권한관리 용
    2. scheduler/table_<dbms>.sql : Glue JobMeta 용
    3. quartz-2.2.2/table_<dbms>.sql : Quartz JDBCJobStore 용

Oracle

제공파일을 이용해 Table을 생성합니다.
Quartz JobStore 용 Table은 선택사항이며, 권한관리용 Table과 Glue JobMeta용 Table은 필수 생성 대상입니다.

  1. 권한관리 용 Table 생성

    • database 연결

    • script 실행 ( ERD 참고 )

      @security/table_oracle.sql
      
  2. Glue JobMeta 용 Table 생성

    • database 연결

    • script 실행 ( ERD 참고 )

      @scheduler/table_oracle.sql
      
  3. Quartz JobStore 용 Table 생성

    • database 연결

    • script 실행 ( Quartz JDBCJobStore 참고 )

      @quartz-2.2.2/table_oracle.sql
      
  • Tip
    • 계정 생성
      create user GLUESCH identified by pass;
      grant resource, connect to GLUESCH;
      
    • 권한 부여
      grant DELETE,INSERT,UPDATE,SELECT on "GLUESCH"."SCHEDULE_JOB_INFO" to "SCOTT"; 
      
    • synonym 생성
      create public synonym SCHEDULE_JOB_INFO for GLUESCH.SCHEDULE_JOB_INFO;
      

PPAS

tables_postgres.sql 제공파일을 이용해 Table을 생성합니다.

MySQL or Maria (1.4.2 이상부터 제공)

  • tables_mysql.sql 제공파일을 이용해 Table을 생성합니다.
  • InnoDB 엔진을 사용할 경우에 한해, innodb_file_format는 Antelope 일 때는 index column 의 크기에 제한이 있어 제공된 DDL로 table 생성이 되지 않을 수 있습니다.
    ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes.
    
  • 이 경우에는 innodb_file_format 을 Barracuda 로 설정, innodb_default_row_format 을 dynamic 혹은 compressed 로 설정하여 생성해야 합니다.
    set global innodb_file_format = Barracuda;
    set global innodb_file_format_max = Barracuda;
    set global innodb_large_prefix = on;
    set global innodb_default_row_format = dynamic;
    
    CREATE TABLE qrtz_job_details
    (
         SCHED_NAME VARCHAR(120) NOT NULL ,
         JOB_NAME  VARCHAR(200) CHARACTER SET binary NOT NULL ,
         JOB_GROUP VARCHAR(200) CHARACTER SET binary NOT NULL,
    ...
    );     
    
  • 여건 상 변경이 불가한 경우에는 컬럼 길이를 줄여서 사용한다 (비권장 사항)
    파일명 : db_script/quartz-x.x.x/tables_mysql.sql
    대상 컬럼 : JOB_NAME,JOB_GROUP,TRIGGER_NAME,TRIGGER_GROUP,INSTANCE_NAME,CALENDAR_NAME
    길이 : 200자 --> 190자
    
    변경 할 테이블
    qrtz_로 시작하는 모든 테이블(qrtz_locks 제외)
    
    파일명 : db_script/scheduler/tables_mysql.sql
    대상 컬럼 : JOB_NAME,JOB_GROUP,TRIGGER_NAME,TRIGGER_GROUP
    길이 : 150자 --> 140자
    
    변경 할 테이블
    SCHEDULE_JOB_DATA_INFO
    SCHEDULE_JOB_HISTORY
    SCHEDULE_JOB_INFO
    SCHEDULE_JOB_RUN_OPTION
    SCHEDULE_META_HISTORY
    SCHEDULE_SERVER_HISTORY
    SCHEDULE_TRIGGER_INFO
    
  • 또는 아래와 같이 문제가 되는 컬럼의 속성을 CHARACTER SET binary 로 설정할 수 있으나 한글등에 변형이 생길 수 있어 권장하지 않습니다.
    CREATE TABLE qrtz_job_details
     (
         SCHED_NAME VARCHAR(120) NOT NULL ,
         JOB_NAME  VARCHAR(200) CHARACTER SET binary NOT NULL ,
         JOB_GROUP VARCHAR(200) CHARACTER SET binary NOT NULL,
         DESCRIPTION VARCHAR(250) NULL,
    
  • 위와 같은 이유로 타 DB에서 MySQL(Maria) 의 InnoDB로 데이터를 마이그레이션 할 경우에는 해당 컬럼의 길이를 초과하게 되지 않는 지 주의하여야 합니다.