[CUBRID] HA
·
DBMS/CUBRID
HAHA(High Availability)는 두 대 이상의 서버 시스템을 구성하여, 시스템 구성 요소 중의 한 요소에 장애가 발생해도 서비스를 중단 없이 제공하는 것을 가능하도록 함서비스를 수행 중인 시스템에 예상치 못한 장애가 발생하면, 자동으로 다른 시스템이 서비스를 수행CUBRID HACUBRID의 HA 기능은 shared-nothing 구조shared-nothing: 자원을 공유하지 않고, 각 서버가 독립적으로 동작CUBRID HA는 여러 서버 시스템에서 데이터베이스를 항상 동기화된 상태로 유지액티브 서버(active server)에서 스탠바이 서버(standby server)로 데이터를 동기화하기 위해 다음 단계를 수행트랜잭션 로그 다중화: 액티브 서버에서 생성되는 트랜잭션 로그를 실시간으로 다..
[CUBRID] 증분 백업
·
DBMS/CUBRID
1. 전체 백업새로운 db 생성$ cd $CUBRID_DATABASES$ mkdir bktestdb$ cubrid createdb -F "$CUBRID_DATABASES/bktestdb" --db-volume-size=20M --log-volume-size=20M bktestdb ko_KR.utf8 cubrid service 시작하고, bktestdb 시작하기$ cubrid service start$ cubrid server start bktestdb csql로 접속해서 테이블 생성하고 레코드 추가$ csql -u dba bktestdbcsql> CREATE TABLE s1h (a INT PRIMARY KEY);csql> INSERT INTO s1h SELECT ROWNUM FROM db_class c1..
[CUBRID] 시점 복구
·
DBMS/CUBRID
1. Full Backupbktestdb의 테이블 목록 bktestdb Full Backup 진행cubrid backupdb -D $CUBRID_DATABASES/bktestdb -r -o bkmsg.txt bktestdb 생성된 bkmsg.txt를 통해 백업 진행 정보를 확인Full Backup이 된 것을 확인할 수 있음backup이 완료된 시간은 08:54:09 2. 데이터 insertsh 파일로 새로운 테이블 생성하고, 5초마다 현재시간 insert하기vi test.sh# sh 파일에 입력csql -u dba bktestdb -c "CREATE TABLE tbl (ttime DATETIME);"for ((i=0; i 3. 1차 증분 백업추가된 데이터에 대해 1차 증분 백업 수행$ cubrid bac..
[CUBRID] 다른 서버로 DB 복구
·
DBMS/CUBRID
1번 서버새로운 db 생성$ cd $CUBRID_DATABASES$ mkdir bktestdb$ cubrid createdb -F "$CUBRID_DATABASES/bktestdb" --db-volume-size=20M --log-volume-size=20M bktestdb ko_KR.utf8 cubrid service 시작하고, bktestdb 시작하기$ cubrid service start$ cubrid server start bktestdb csql로 접속해서 테이블 생성하고 레코드 추가$ csql -u dba bktestdbcsql> CREATE TABLE s1h (a INT PRIMARY KEY);csql> CREATE TABLE s1w (a INT PRIMARY KEY);csql> INSERT..
[CUBRID] 백업과 복구의 이해
·
DBMS/CUBRID
백업과 복구의 이해백업: 데이터베이스 및 구성 파일의 복사본을 만들어 두는 것복구: 장애가 발생했을 때 백업한 파일을 활용하여 데이터베이스를 복구하는 것DB 장애 발생에 대비하여 데이터베이스를 정상적으로 복구할 수 있도록 주기적으로 데이터베이스를 백업해야 함 데이터베이스 볼륨이 호환되는 경우cubrid backupdb 명령어와 cubrid restoredb 명령어를 사용해 볼륨 파일을 백업하고 복구데이터베이스 볼륨이 호환되는 경우에만 백업과 복구를 할 수 있음백업cubrid backupdb 명령을 이용한 백업은 데이터의 볼륨 파일을 그대로 읽어 저장데이터베이스 페이지들, 제어 파일들, 데이터베이스를 백업 시 상태로 복구하기 위해 필요한 로그 레코드들을 복사backupdb 유틸리티로 데이터베이스 백업HA ..
[CUBRID] VACUUM 테스트
·
DBMS/CUBRID
테스트 방법cubrid.conf 파라미터 추가vacuum_log_block_pages=4, er_log_vacuum=64 해당 파라미터를 먼저 추가하고, 아래 명령어를 통해 테스트log header아래 명령어를 실행했을 때 나오는 Current_append (현재 추가된 LOG PAGE의 위치) 확인csql> show log header;server.err$CUBRID/log/server/server.err → Update keep_from_log_pageid를 통해 현재 VACUUM이 수행 되어야 할 LOG PAGE 위치 확인statdump 명령어statdump 명령어(-c 옵션 추가해서 누적값으로 확인)로 VACCUM을 진행해야 할 log data page의 수와 진행한 log data page의 수..
[CUBRID] 2PL, MVCC, VACUUM
·
DBMS/CUBRID
2PL다수의 트랜잭션이 동시에 실행될 때, lock이 가능한 단계와 unlock만 가능한 단계를 구분하여 동시성을 제어하는 방법확장단계(Growing Phase): 트랜잭션은 lock 연산만 실행 가능, unlock 연산 불가축소단계(Shrinking Phase): 트랜잭션은 unlock 연산만 실행 가능, lock 연산 불가트랜잭션 실행 단계1단계: 트랜잭션이 필요로 하는 lock 권한들을 얻음2단계: 트랜잭션이 소유한 lock을 해제, 이때 새로운 lock을 요청할 수 없음 2PL 특징트랜잭션이 같은 데이터에 동시에 접근하는 것을 차단하여 직렬화(serializability)를 보장획득하려는 lock을 다른 트랜잭션이 먼저 lock을 획득하고 있는 경우 lock이 해체될 때까지 대기DB 일관성이 높은..
[CUBRID] Lock 관련 파라미터
·
DBMS/CUBRID
deadlock_detection_interval_in_secs교착 상태 여부를 탐지하는 주기를 설정하는 파라미터초 단위이고, 기본 값은 1초0.1초 단위로 값을 지정할 수 있음 (ex. 0.2)cubrid lockdb demodb를 통해 설정값 확인 가능 isolation_level트랜잭션의 격리 수준을 설정하기 위한 파라미터기본 값은 READ COMMITTED파라미터에 들어가는 값은 숫자 값으로 격리 수준 별로 정해진 번호가 있음READ COMMITTED: 4REPEATABLE READ: 5SERIALIZABLE: 6cubrid lockdb demodb를 통해 각 프로세스 별 격리 수준을 확인할 수 있음 lock_escalation행에 대한 잠금이 테이블 잠금으로 변경되기 전에 개별 행에 허용되는 최..