내용 목차
본 장에서는 Tibero 6에 추가된 신규 기능 및 추가된 기능에 대해서 간략히 설명한다.
새롭게 추가된 주요 기능은 다음과 같다.
Backgound Process 통합
기존의 LOGW, LOGA, CKPT, BLKW가 I/O 프로세스로 통합되었다.
Tibero Manager Process(TBMP)
기존의 WT001 프로세스가 Manager Process로 변경되었다.
Listener Process 가용성 개선
Listener Process가 Tibero Monitoring Process의 child 프로세스로 변경되었다.
Foreground Worker Process와 Backgound Worker Process 분리
Worker Process를 용도에 따라 다음과 같은 두 개의 그룹으로 나누어 진다.
Foreground Worker Process : Listener를 통해 들어온 Online 요청을 처리한다.
Backgound Worker Process : Internal Task나 Scheduler에 등록된 Batch 작업을 수행한다.
Mult-threaded Agent Process
기존의 SEQW 프로세스가 AGNT로 이름이 바뀌었으며 Single-thread 구조에서 Multi-threaded Process로 변경되었다.
I/O Multiplexing
각 Worker Process의 Control thread가 클라이언트에 대한 Network I/O Multiplexing을 수행한다.
Recovery Process
기존의 Worker Process가 담당하던 Recovery를 분리하여 별도의 Recovery Process가 수행한다.
TAC Background process
기존에 여러 프로세스로 분리 수행하던 TAC 관련 Background 작업을 통합된 하나의 프로세스에서 Multi Thread로 수행한다.
자세한 내용은 "Tibero 관리자 안내서"의 "1.5. 프로세스 구조"를 참고한다.
Hierarchical Shared Pool Allocator
공유 메모리를 효율적으로 사용할 수 있게 되었다.
Shared Cache Allocator
PP Cache와 DD Cache에서 사용하는 Cache Out이 발생하는 공유 메모리 할당방식을 Shared Cache라는 공통 모듈로 관리하고 이를 PP Cache와 DD Cache에 적용했다.
Shared Memory 동적 확장
실제 사용하는 Shared Memory보다 크게 설정 후, 동적으로 Shared Memory를 늘릴 수 있는 기능이 제공된다.
Tibero 운용에 필요한 데이터 파일, 로그 파일 등을 저장하기 위한 논리 볼륨 관리자와 파일 시스템 기능을 제공한다.
자세한 내용은 "Tibero Active Storage 관리자 안내서"를 참고한다.
쿼리를 수행하는 경우 DD(Data Dictionary)에 대한 Object Lock을 잡지 않아도 정합성 문제가 발생하지 않도록 기능이 추가되었다. 또한 이로 인하여 Query를 수행할 때의 성능이 개선되었다.
ASH(Active Session History)는 비교적 짧은 주기로 RUNNING 상태의 세션 정보를 공유 메모리 상에 circular queue 형태로 저장한다. 관리자는 최근에 있었던 세션 정보를 SQL 형태로 조회할 수 있고 이를 통해 성능 문제를 진단할 수 있다.
다음의 기능이 추가되었다.
VIP 감시 및 FailOver 기능 추가
CM에서 VIP의 상태를 감시하여 Instance만 다운되는 경우에도 VIP FailOver를 수행하는 기능을 제공한다.
CM GUARD에서도 LOG를 남길 수 있는 기능 추가
Node down 감지 속도 향상을 위한 파라미터 추가
자세한 내용은 "Tibero 관리자 안내서"의 "제9장. Tibero Cluster Manager"를 참고한다.
NOARCHIVE 모드일 경우 Index Fast Build 로그 및 DPI/DPL 로그를 남기는 기능을 제공한다.
Standby Redo Log Apply를 설정한 시간만큼 지연시켜 반영하는 기능을 제공한다.
장애가 발생한 데이터 파일이 속한 테이블스페이스를 제거하기 위한 "alter database datafile ~ offline for drop" 구문을 지원한다.
온라인 중에 특정 DB 블록의 Corruption을 감지하고 RMGR과 연동하여 해당 블록들만 Media Recovery를 수행하여 복구하는 기능을 제공한다.
평균 파손 복구 시간을 설정할 수 있는 기능(Mean Crash Recovery Time)을 제공한다.
자세한 내용은 "Tibero 관리자 안내서"의 "제6장. 백업과 복구"를 참고한다.
Tibero 6부터 APM(Automatic Performance Monitoring)에서 TPR(Tibero Performance Repository)로 명칭이 변경되었다.
Baseline
해당 DB 부하에 대한 성능 기준치를 잡아서 보존해두는 기능이다.
Aggregation Retention Over
Retention이 지난 TPR Snapshot들을 요약본으로 합쳐서 저장하는 기능이다.
TPR Snapshot 간 비교 기능
사용자가 지정한 특정 Snapshot 간에 성능 차이를 비교하는 기능이다.
TPR Report
Segment별로 Physical Reads, Logical Reads, ITL Waits, Buffer Busy Waits, Row Lock Waits 정보 추가
SQL Ordered by Extra I/O, Elapsed Time per Execution 정보 추가
Parameter 변경 내역 및 Range 출력 기능 추가
APM Session 정보 수집, 저장, 리포트 출력 기능 추가
I/O overview 섹션 출력 기능 추가
자세한 내용은 "Tibero 관리자 안내서"의 "제14장. Tibero Performance Repository"를 참고한다.
기존에 백그라운드 프로세스들이 비정상 종료됨으로 인하여 Tibero가 다운되는 현상이 있었다. 이를 개선하기 위하여 일부 백그라운드 프로세스의 경우 비정상 종료 시에 자동으로 재기동함으로써 안정성이 향상되었다.
Tibero 데이터베이스에 접근 가능한 리스너 포트를 동적으로 여러 개 지정할 수 있는 기능이 추가되었다.
자세한 내용은 "Tibero 관리자 안내서"의 "5.5.3. 동적 리스너 포트 추가 및 삭제"를 참고한다.
DBMS 내 암호 체계로 인증하지 않고, OS 인증을 통하여 DBMS에 로그인할 수 있는 기능을 제공한다.
자세한 내용은 "Tibero 관리자 안내서"의 "5.1.4. 운영체제(OS) 인증을 사용한 사용자 생성"를 참고한다.
초기화 파라미터 값을 바이너리 파일 형태로 저장하는 기능을 제공한다.
자세한 내용은 "Tibero 관리자 안내서"의 "2.6. Binary TIP 사용"을 참고한다.
TDE 기능으로 컬럼 암호화를 한 경우에도 index unique 검색뿐만 아니라 range 검색도 가능하도록 기능이 보강되었다.
DML 문을 수행할 때 런타임 에러가 발생하면 문제가 된 Row에 대한 정보를 로그 테이블에 남기고 나머지 Row에 대해 처리하는 기능을 지원한다.
ALTER TABLE 구문
Range/List Composite Partition Merge 기능이 제공된다.
Partitioned Table의 특정 파티션의 세그먼트와 다른 테이블의 세그먼트와 교환하는 Partition Exchange 구문이 제공된다.
MOVE PARTITION 구문에 PARALLEL 기능이 추가되었다.
ALTER INDEX 구문
특정 파티션의 인덱스를 재생성할 수 있는 기능이 추가되었다.
ALTER VIEW 구문이 추가되었다.
자세한 내용은 "Tibero SQL 참조 안내서"를 참고한다.
런타임 중 에러가 발생할 경우 수행을 중단하지 않고 에러의 내용과 해당 데이터를 에러 로깅 테이블에 저장한 후 다음 ROW에 대해 진행하는 기능을 지원한다.
Tibero 데이터베이스와 통합되어 있는 메시지 Queuing 기능인 Advanced Queuing 기능을 제공한다. 데이터베이스를 사용하기 때문에 큐에 저장되는 메시지의 영속성이 보장된다.
SQL에 바인드 변수가 있을 때 플랜을 여러 개 생성하여 바인드 변수값이 다양하게 입력되어도 최적의 플랜을 찾을 수 있는 기능을 제공한다.
V$RESULT_CACHE_STATISTICS, V$RESULT_CACHE_OBJECT_STATISTICS 뷰를 통하여 Result Cache별 Hit율 등을 조회할 수 있다.
같은 테이블에 대하여 Aggregation Subquery를 사용한 경우, 조건이 맞을 때 Analytic Function으로 변형하여 효율적인 SQL 수행이 가능하다.
이기종 데이터베이스에서 실체화 뷰를 이용하여 Tibero에 있는 베이스 테이블의 데이터를 동기화할 수 있는 기능이 추가되었다.
자세한 내용은 "Tibero SQL 참조 안내서"를 참고한다.
Wrapper 기능 추가
PSM Function / Procedure /Package Body 소스를 암호화를 할 수 있는 기능을 제공한다.
Object 타입
데이터 타입의 데이터 구성 요소와 서브 프로그램을 캡슐화한 추상 데이터 타입을 제공한다. 단, tbPSM 내에서 사용되는 기능만 구현되었다.
컬렉션 타입을 전역변수로 사용이 가능하다.
반복문 내에서의 Continue 문법 사용이 가능하다.
XMLType/Geometry 연산 기능을 제공한다.
자세한 내용은 "Tibero tbPSM 안내서"를 참고한다.
PSM에서 사용가능한 문장을 JOB으로 등록하고, 실행할 수 있는 기능을 제공한다.
Time based Job Scheduling
정해진 시간에 특정 작업을 주기적으로 시작시키는 기능을 한다.
Dependency based Job Scheduling
이전 작업의 성공 여부에 따라 다음 작업을 순서대로 실행시킬 수 있는 기능을 한다.
다음과 같은 문자집합이 추가되었다.
언어 | 문자 집합(character set) | 설명 |
---|---|---|
중국어, 홍콩어 | ZHT16HKSCS | HKSCS2001 홍콩어 MS Windows 코드 페이지 950 중국어 |
베트남어 | VN8VN3 | VN3 8-bit 베트남어 |
동유럽어 | EE8ISO8859P2 | ISO8859-2 동유럽어 |
서유럽어 | WE8MSWIN1252 | MS Windows 코드 페이지 1252 서유럽어 |
WE8ISO8859P1 | ISO8859-1 서유럽어 | |
WE8ISO8859P9 | ISO8859-9 서유럽어(터키어) | |
WE8ISO8859P15 | ISO8859-15 서유럽어 | |
러시아어, 불가리아어 | CL8MSWIN1251 | MS Windows 코드 페이지 1251 키릴문자 |
CL8KOI8R | KOI8-R 키릴문자 | |
CL8ISO8859P5 | ISO8859-5 키릴문자 |
다음과 같은 뷰 테이블이 추가되었다.
뷰 테이블 | 설명 |
---|---|
V$INTERCONNECT_LATENCY | 인터커넥트 지연 시간을 확인할 수 있다. |
V$SHP_ADVICE | 권장하는 적절한 Shared Pool의 사이즈를 확인할 수 있다. |
V$BG_SESSION | 각각의 백그라운드 세션의 정보를 확인할 수 있다. |
V$LOG_HISTORY | 로그의 변경 이력을 확인할 수 있다. |
V$ENCRYPTION_WALLET | WALLET의 상태 정보를 확인할 수 있다. |
V$RUNNING_JOBS | 수행 중인 잡의 정보를 확인할 수 있다. |
V$RUNNING_JOBS_WITH_NAME | 수행 중인 잡의 이름이 포함된 정보를 확인 할 수 있다. |
V$SQL | 각 SQL의 Child Cursor에 대한 통계 정보를 확인할 수 있다. |
V$SQLAREA | SQL 문장의 통계 정보를 확인할 수 있다. |
V$SYS_TIME_MODEL | 통계 정보 분석을 위한 시스템 레벨의 시간 정보를 확인할 수 있다. |
V$SESS_TIME_MODEL | 통계 정보 분석을 위한 세션 레벨의 시간 정보를 확인할 수 있다. |
다음과 같이 Tibero에서 지원하는 함수가 추가되었다.
함수 | 설명 |
---|---|
XMLCDATA() | expr의 결과로 CDATA 섹션을 만든다. |
XMLROOT() | XML 문서의 선언부를 생성한다. |
XMLCOLATTVAL() | 파라미터 각각을 "column" 이름과 "name" 속성을 가지는 XML 노드로 변환하고, 변환된 파라미터를 결합하여 반환한다. |
자세한 내용은 "Tibero SQL 참조 안내서"를 참고한다.
신규로 추가되거나 기능이 추가된 패키지는 다음과 같다.
패키지 | 설명 |
---|---|
DBMS_AQ | Advanced Queuing 기능과 관련한 프러시저와 함수를 제공한다. |
DBMS_AQADM | Advanced Queuing 기능을 구성하고 관리하는데 사용할 수 있는 프러시저와 함수를 제공한다. |
DBMS_DEBUG | 두 개의 세션을 이용하여 PSM 프로그램의 디버깅을 할 수 있는 프러시저와 함수를 제공한다. |
DBMS_PIPE | 동일한 인스턴스 내에 속해있는 세션들 간에 통신할 수 있는 프러시저와 함수를 제공한다. |
DBMS_RESULT_CACHE | DBA가 데이터베이스의 공유 메모리에 존재하는 Result Cache를 제어할 수 있는 프러시저와 함수를 제공한다. |
DBMS_RLS | DBMS의 가상 개인 데이터베이스 기능을 구성하고 관리하는데 사용할 수 있는 프러시저와 함수를 제공한다. |
DBMS_SCHEDULER | PSM에서 사용 가능한 문장을 JOB으로 등록하고, 등록된 JOB을 실행할 수 있는 프러시저와 함수를 제공한다. |
DBMS_XMLGEN | 입력받은 쿼리의 결과집합을 xmltype으로 생성할 수 있는 프러시저와 함수를 제공한다. |
DBMS_XPLAN | 플랜 정보와 플랜의 수행 정보들에 대해 사용자가 원하는 항목을 선택해서 다양한 포맷으로 출력할 수 있는 프러시저를 제공한다. |
UTL_HTTP | 웹 표준(RFC2616)인 HTTP 프로토콜에 따라 클라이언트 역할을 제공하는 패키지를 제공한다. |
기존에 제공하던 패키지에 추가된 기능은 다음과 같다.
패키지 | 추가된 기능 |
---|---|
DBMS_CRYPTO | BLOB 데이터에 대한 암복호화 및 ARIA 알고리즘을 제공한다. |
DBMS_UTILITY | 다음과 같은 프러시저가 추가되었다.
|
DBMS_LOB | 다음과 같은 프러시저가 추가되었다.
|
DBMS_LOCK | 다음과 같은 프러시저가 추가되었다.
|
UTL_TCP | 캐리지 리턴 문자, 라인 피드 문자를 가지는 CRLF 상수가 추가되었다. |
자세한 내용은 "Tibero tbPSM 참조 안내서"를 참고한다.
C Gateway
tbdsn.tbr에 게이트웨이 설정 파일의 위치를 지정할 수 있는 CONFIG 항목이 추가되었다.
게이트웨이 설정 파일(tbgw.cfg)에 사용할 문자집합을 설정할 수 있는 CHARACTER_SET 옵션이 추가되었다.
Java Gateway
Tibero to MS-SQL에서의 National Character Set을 지원한다.
자세한 내용은 "Tibero 관리자 안내서"의 "7.4. 데이터베이스 링크"를 참고한다.
JDBC Driver에 추가된 기능은 다음과 같다.
Connection Properties 추가
속성명 | 설명 |
---|---|
defaultNChar | PreparedStatement.setSting() API로 설정한 문자열을 national charset 설정을 이용하여 서버로 강제로 전송한다. |
OLE DB Driver에 추가된 기능은 다음과 같다.
Connection String에 사용 가능한 옵션 추가
옵션 | 설명 |
---|---|
OLE DB Services | Connection Pool 사용 여부를 설정한다.
|
Connect Timeout | 데이터베이스에 대한 연결을 대기하는 시간을 설정한다. (단위 : 초) |
Connect Lifetime | 데이터베이스에 연결된 Connection Pool에서 연결된 상태로 접속 상태를 지속할 시간을 설정한다. (단위 : 초) |
Max Pool Size | Connection Pool에서 허용된 최대 연결 수를 설정한다. |
Min Pool Size | Connection Pool에서 허용된 최소 연결 수를 설정한다. |
Enlist | DTC(Distributed Transaction Coordinator)에 대한 사용 여부를 설정한다.
|
Stored Procedure를 호출할 때 여러 개의 CURSOR를 리턴 받을 수 있는 MultipleResultSet 기능을 제공한다.
tbRMGR에 추가된 기능은 다음과 같다.
새로운 데이터베이스를 생성해 복구 작업을 수행할 수 있는 Auxiliary 데이터베이스 사용 복구 기능을 지원한다.
옵션 | 설명 |
---|---|
--auxiliary | RMGR이 Auxiliary 데이터베이스를 생성할 디렉터리를 지정한다. |
--auxiliary-ip | Auxiliary 데이터베이스의 접속 IP를 지정한다. |
--auxiliary-port | Auxiliary 데이터베이스의 접속 Port를 지정한다. |
다음과 같은 기능을 제공하는 옵션들이 추가되었다.
옵션 | 설명 |
---|---|
info | BACKUP LIST를 확인할 수 있다. |
--beforetime | 지정 시점 이전의 백업 파일을 삭제한다. |
--archive-log | ARCHIVE LOG 백업한다. |
-c, --compress | FULL BACKUP시 압축 백업한다. |
--datafile | 데이타 파일 단위의 백업 및 복구한다. |
--tablespace | 테이블스페이스 단위의 백업 및 복구한다. |
--untilcancel | 사용자가 취소할 때까지 불완전 복구를 수행한다. |
-t, --thread | 백업 및 복구 작업을 병렬적으로 수행한다. (단, UNIX 계열만 지원) |
자세한 내용은 "Tibero 관리자 안내서"의 "제6장. 백업과 복구"를 참고한다.
tbSQL에 추가된 기능은 다음과 같다.
tbdsn.tbr 파일을 사용하지 않고 직접 접속정보를 명시하여 데이터베이스에 접속할 수 있는 연결 명세서라는 기능이 추가되었다.
다음과 같은 기능을 제공하는 시스템 변수가 추가되었다.
시스템 변수 | 설명 |
---|---|
EXITCOMMIT | 유틸리티를 종료할 때에 커밋할지 여부를 설정한다. |
HEADSEP | 머릿글의 줄바꿈 문자를 설정한다. |
NEWPAGE | 각 페이지의 시작 부분에 추가할 빈 줄 개수를 설정한다. |
RECSEP | 로우 구분자를 출력하는 단위를 설정한다. |
RECSEPCHAR | 로우 구분자를 사용할 문자를 설정한다. |
UNDERLINE | 머릿글의 밑줄로 사용할 문자를 설정한다. |
다음과 같은 기능을 제공하는 명령어가 추가되었다.
명령어 | 설명 |
---|---|
ARCHIVE LOG | Redo 로그 파일 정보를 출력한다. |
다음과 같이 tbSQL에서 제공하는 명령어의 구문들이 추가되었다.
COLUMN 명령어에 컬럼 값을 저장할 변수를 설정하는 NEW_V[ALUE] 구문이 추가되었다.
ACCEPT 명령어에 사용자로부터 입력 값이 없을 경우에 대신 사용할 치환 변수를 설정하는 DEF[AULT] 구문이 추가되었다.
WHENEVER 명령어에 다음과 같은 [exit_option]에 사용가능한 구문이 추가되었다.
항목 | 설명 |
---|---|
SQL.SQLCODE | 오류가 발생하는 경우 에러코드를 반환한다. |
tbMigrator에 추가된 기능은 다음과 같다.
다음과 같은 기능을 제공하는 옵션이 추가되었다.
옵션 | 항목 | 설명 |
---|---|---|
DDL | Execute DDLs | 추출한 DDL 문장을 타깃 데이터베이스에 실행할 지를 설정한다. |
Conversion | Remove Double Quotation | 이관할 때 Object 이름의 대소문자를 무시하기 위해 제공한다. |
다음과 같이 이관 가능한 데이터베이스가 추가되었다.
SQL Server
PostgreSQL
tbExport에 추가된 기능은 다음과 같다.
옵션 | 설명 |
---|---|
CONSISTENT | Export를 수행하는 시점을 기준으로 데이터를 Export한다. |
EXCLUDE | Export를 수행할 때 제외하고자하는 특정 사용자, 테이블을 설정한다. |
GEOM_ASBYTES | Geometry 컬럼에 대해 WKB 또는 bytes로 얻어올지 여부를 설정한다. |
TEMP_DIR | Export를 수행할 때 임시 dump file들이 생성될 디렉터리를 지정한다. |
SAVE_CREDENTIAL | 암호화한 USERNAME과 PASSWORD를 사용하여 Export를 수행한다. |
TRIGGER | Export를 수행할 때 Trigger의 Import 여부를 지정한다. |
LOG | Export의 로그가 기록될 파일의 이름을 입력한다. |
LOGDIR | Export의 로그가 기록될 파일을 저장할 디렉터리 이름을 입력한다. |
tbImport에 추가된 기능은 다음과 같다.
옵션 | 설명 |
---|---|
DBLINK | Import를 수행할 때 DBLink의 Import 여부를 지정한다. |
ROLE | Import를 수행할 때 Role의 Import 여부를 지정한다. |
PSM | Import를 수행할 때 PSM 오브젝트의 Import 여부를 지정한다. |
SEQUENCE | Import를 수행할 때 Sequence의 Import 여부를 지정한다. |
SYNONYM | Import를 수행할 때 Synonym의 Import 여부를 지정한다. |
TRIGGER | Import를 수행할 때 Trigger의 Import 여부를 지정한다. |
TEMP_DIR | Import를 수행할 때 임시 dump file들이 생성될 디렉터리를 지정한다. |
SAVE_CREDENTIAL | 암호화한 USERNAME과 PASSWORD를 사용하여 Import를 수행한다. |
GEOM_ASBYTES | Geometry 컬럼에 대해 WKB 또는 bytes로 밀어넣을지 여부를 결정한다. |
LOG | Import의 로그가 기록될 파일의 이름을 입력한다. |
LOGDIR | Import의 로그가 기록될 파일을 저장할 디렉터리 이름을 입력한다. |
tbESQL/C에 추가된 기능은 다음과 같다.
unsigned, signed 로만 선언된 변수에 대하여 ESQL_TYPE_UINT, ESQL_TYPE_INT로 지원한다.
기존 데이터 타입의 동격화 방법으로 EXEC SQL TYPE 외에 EXEC SQL VAR 추가 지원한다.
EXEC SQL INCLUDE 구문 복수 라인을 지원한다.
EXEC SQL WITH identifier AS (subquery) SELECT ~ 구문을 지원한다.
tbESQL/COBOL에 추가된 기능은 다음과 같다.
PIC COMP-3 타입에 대해 부호 여부 옵션 PIC9_WITH_SIGN 추가한다.
COMP 타입을 COMP-5 타입으로 변환하지 않는 COMP5 옵션을 추가한다.