GOLDILOCKS 는 ANALYZE TABLE, ANALYZE SYSTEM 구문으로 OPTIMIZER 가 최적화된 플랜을 만드는데 도움을 줄 수 있습니다. ANALYZE SYSTEM시스템의 통계 정보를 분석합니다.1. CPU 가 초당 처리할 수 있는 오퍼레이션 수2. NETWORK 가 초당 처리할 수 있는 오퍼레이션 수 ( 클러스터 인 경우 )를 측정합니다. ANALYZE SYSTEM 은 장비나, 네트워크가 변경되는 경우 한번만 수행하면 됩니다.분석된 데이터는 DBA_STAT_SYSTEM 테이블에 저장됩니다.gSQL> ANALYZE SYSTEM COMPUTE STATISTICS; analyzed. gSQL> SELECT * FROM DBA_STAT_SYSTEM; CPU_OPS NETWORK_IOPS N..
골디락스
GOLDILOCKS 는 XA 트랜잭션간 데이터 소실을 방지하기 위해 2단계 커밋을 지원합니다. 사진은 G1, G2 그룹에 대해 글로벌 트랜잭션이 발생한 뒤 커밋을 수행했을 때의 로직입니다. Prepare Commit 단계1. APP 는 G1N2 노드에 Prepare Commit Protocol 을 전송합니다.2. G1N2 노드는 자기자신 노드에 Prepare Commit 을 수행함과 동시에 Global Coordinator 인 G1N1 장비로 Prepare Commit Protocol 을 전송합니다.3. G1N1 장비는 트랜잭션에 참여하는 모든 노드의 cserver 에 Prepare Commit Protocol 을 전송합니다.4. 응답받은 각 장비는 Prepare Commit 을 수행 후 G1N2 장비로..
GOLDILOCKS CLUSTER 는 트랜잭션의 종류에 따라 명칭 및 동작 방식이 다릅니다. 명칭 트랜잭션의 범위 동작 방식 Global Transaction 전체 노드의 전체 멤버 트랜잭션의 상태를 Prepare 로 변경 트랜잭션이 기록한 모드 로그가 디스크로 반영 후 응답을 Global Coordinator 에 전송 :: 복구 시 리두로그로부터 Commit 혹은 Rollback 을 판단 Global Coordinator 는 클라이언트에 응답 Global Commit 클러스터 전체 노드의 전체 멤버에 커밋프로토콜 전송 전송한 멤버로부터 응답을 받을 때 까지 대기 비동기로 수행 가능 Domain Transaction 특정 노드의 전체 멤버 트랜잭션의 상태를 Prepare 로 변경 트랜잭션이 기록한 모든 ..
GOLDILOCKS 는 유저와 스키마가 1 : N 관계를 가질 수 있습니다.http://mozi.tistory.com/101?category=999095 스키마 소유권 부여MOZI 유저에 SCHEMA1, SCHEMA2, SCHEMA3 스키마 소유권을 부여하는 방법입니다.gSQL> CREATE SCHEMA SCHEMA1 AUTHORIZATION MOZI; Schema created. gSQL> CREATE SCHEMA SCHEMA2 AUTHORIZATION MOZI; Schema created. gSQL> CREATE SCHEMA SCHEMA3 AUTHORIZATION MOZI; Schema created. 유저가 소유하고 있는 스키마는 USER_SCHEMAS 테이블로 조회할 수 있습니다.gSQL> SEL..
GOLDILOCKS 는 유저와 스키마가 1:N 의 관계를 가집니다.유저는 스키마를 0개 부터 1개 이상을 소유할 수 있습니다. 유저별로 스키마를 소유할 수 있는 방법에 대한 그림입니다. 타 DBMS 의 경우의 유저와 스키마의 관계는 다음과 같습니다. DBMS USER : SCHEMA 관계 Oracle 1 : 1 MySQL 1 : 1 Postgres 1 : N
GOLDILOCKS 는 클러스터 환경에서 Row Identifier 를 위해 Global Secondary Index 를 지원합니다. Global Secondary Index 란?http://mozi.tistory.com/99?category=999095 테이블에 Global Secondary Index 가 없는 경우,LIMIT FETCH 와 같은 쿼리가 수행되지 않습니다. Global Secondary Index 유무 확인하기gSQL> SELECT TABLE_OWNER, TABLE_SCHEMA, TABLE_NAME FROM ALL_GSI_PLACE; TABLE_OWNER TABLE_SCHEMA TABLE_NAME ----------- ----------------- --------------------..
GOLDILOCKS Cluster 에서는 모든 멤버의 데이터의 통일성을 위해 Global Secondary Index 를 지원합니다. Global Secondary Index 란Cluster 환경의 각 멤버들의 레코드의 GRID ( Global Row Identifier ) 값을 Key 로 구성한 B-Tree 인덱스 입니다.Global Secondary Index 가 없는 테이블에 대해서는 LIMIT, FETCH 같은 Non-Deterministic DML 을 지원하지 않습니다. GRID각 멤버들의 동일한 레코드에 대해서 구분할 수 있는 Unique 한 값으로, 데이터가 최초 저장될 때 할당되어 모든 멤버들에게 전파되어 함께 저장됩니다.레코드의 값이 갱신되거나 Shard Key 가 변경되어도 GRID 값..
GOLDILOCKS 는 godlilocks_home 과 goldilocks_data 경로에 운영에 필요한 파일들을 보관합니다. goldilocks_home 폴더 설명 admin 메타 스키마 정보를 담은 파일이 있는 폴더 bin 바이너리 파일이 있는 폴더 include 헤더 파일이 있는 폴더 lib 라이브러리 파일이 있는 폴더 license 라이센스 파일이 있는 폴더 msg 에러메세지 파일이 있는 폴더 sample SQL, ODBC, JDBC, Embedded-SQL 등의 샘플 파일이 있는 폴더 script 스크립트 폴더 goldilocks_data 폴더 설명 archive_log 아카이브 로그파일이 있는 폴더 backup 백업 파일이 있는 폴더 conf 데이터베이스 프로퍼티를 설정하는 파일이 있는 폴더 ..
GOLDILOCKS 는 SQL/PSM 을 지원합니다. SQL/PSM 이란1. 프로그래밍 언어 기능이 포함된 SQL 입니다.2. 트랜잭션을 단위별로 수행할 수 있는 SQL 입니다.3. 제어흐름, 예외처리, 지역변수, 커서의 절차적 이용을 위한 문법등을 표준화한 SQL 입니다.4. SQL/PSM 은 PL/SQL 혹은 PL/pgSQL 과 비슷한 언어입니다. SQL/PSM 기본구조DECLARE 변수 선언; BEGIN 코드; [EXCEPTION 예외처리;] END; /변수 선언 : GOLDILOCKS 에서 지원하는 데이터 타입을 작성할 수 있습니다.코드 : SQL/PSM 을 작성합니다.예외처리 : 코드 수행시 발생하는 예외처리를 작성합니다. 예시]gSQL> set serveroutput on; gSQL> DECL..
GOLDILOCKS 는 구동까지 아래 단계를 거쳐가며, 각 단계별로 할 수 있는 작업이 나뉘어져 있습니다. STANDALONE 에서는 INIT - NOMOUNT - MOUNT - OPENCLUSTER 에서는 INIT - NOMOUNT - MOUNT - LOCAL OPEN - GLOBAL OPEN 단계를 지원합니다. 각 단계별로 가기 위한 쿼리는 아래 사진과 같습니다. GOLDILOCKS 는 각 단계별로 다음과 같은 작업을 수행합니다. STANDALONE CLUSTER INIT NOMOUNT 데몬 gmaster 를 구동 데몬 gmaster 를 구동 MOUNT 복구를 위한 control file 을 읽음 복구를 위한 control file 을 읽음 OPEN LOCAL OPEN data file 로부터 테이블..