본문 바로가기

개발 관련 지식/알티베이스(Altibase)

[알티베이스] 계정 생성 및 기본 권한 * 계정 생성 및 기본 권한 create user song identified by song123; : 일반 사용자의 경우 초기에 다음의 권한을 기본적으로 부여된다.- CREATE SESSION- CREATE TABLE- CREATE SEQUENCE- CREATE PROCEDURE- CREATE VIEW- CREATE TRIGGER- CREATE DATABASE LINK- CREATE SYNONYM 더보기
[알티베이스] 프로시저(PROCEDURE) 사용 방법 * 프로시저(PROCEDURE) 사용 방법 안녕하세요 송군함대입니다~!^-^/간만에 포스팅을 하게 되었네요..ㅎㅎ(요즘 너무 게을러진 듯..)오늘 포스팅할 내용은 알티베이스에서 프로시저를 사용하는 방법에 대해서 알아볼까 합니다. [프로시저 문법]CREATE OR REPLACE PROCEDURE [프로시저명]ISBEGIN declare cursor [커서명] is [select 문] [변수명] [변수타입]; begin open [커서명]; loop fetch [커서명] into [변수명]; exit when [커서명]%notfound; [SQL문] end loop; close [커서명]; end;END;/ [프로시저 예제]: test_song 테이블에서 t_num 을 조회하여 t_num_list 에 담고,.. 더보기
[알티베이스] 동시 접속 가능 세션 수 설정(MAX_CLIENT) * 동시 접속 가능 세션 수 설정(MAX_CLIENT) - MAX_CLIENT(altibase.properties 파일) : 동시 접속 가능 세션 최대 수(default 1000)=> 적용하기 위해서는 해당 설정값을 변경 후 ALTIBASE 를 재기동해줘야 한다. - MAX_CLIENT 설정값의 최대값 : 65535 (JOB_THREAD_COUNT 포함)=> 커널 파라미터의 file descriptor 도 충분히 늘려주어야 한다.=> 해당 값에 따라 시스템 영향도는 없으며 실제 동시 처리가 얼마나 발생하느냐가 부하와 상관이 있다.=> 세션 또는 동시 처리가 많아지면 CPU, 메모리, 네트워크 등의 사용량이 많아지면서 부하도 증가할 것이다.(시스템 사양에 의존적)=> 해당 값의 권장량은 5000~10000.. 더보기
[알티베이스] TRX_UPDATE_MAX_LOGSIZE ERROR(ERR-11118) 해결 방법 * TRX_UPDATE_MAX_LOGSIZE ERROR(ERR-11118) 해결 방법 에러 메세지>: UPDATE 트랜젝션을 진행할 경우, LOGSIZE 가 설정된 TRX_UPDATE_MAX_LOGSIZE 를 넘어갈 때 발생하는 에러[ERR-11118 : The update log size '10486076' is bigger than TRX_UPDATE_MAX_LOGSIZE '10485960'] 해결 방안>: 현재 세션에 대해서 TRX_UPDATE_MAX_LOGSIZE 를 변경해준다. 1. 세션의 설정 값 변경alter session set TRX_UPDATE_MAX_LOGSIZE = 262144000; ALTER SESSION SET TRX_UPDATE_MAX_LOGSIZE = [사이즈 크기]; 2... 더보기
[알티베이스] 이중화 타임아웃 프로퍼티 수정(alter문) * 이중화 타임아웃 프로퍼티 수정(alter문) * 개요 : 이중화 되어 있는 장비 간에 이중화를 잠시 끊고 한쪽에 대량의 업데이트를 시도하였고, 다시 이중화를 기동하자 에러가 발생하였다. 대량의 업데이트로 인해 이중화를 맞추는 시간이 상당히 오래 걸렸으며, 오랜 시간이 지난 후에 타임아웃이 발생하며 이중화가 실패되어 반복적으로 해당 현상이 나타났다. 이를 위해 이중화의 타임아웃을 변경하는 방법을 알아내서 해당 현상을 해결할 수 있었다. * 이중화 타임아웃 수정 alter문 alter system set replication_receive_timeout = 7200; 더보기
[알티베이스] 알티베이스 실행계획 확인(alter문) * 알티베이스 실행계획 확인(alter문) alter session set explain plan = on; 더보기
[알티베이스] 알티베이스 테이블 크기 계산 방법 * 알티베이스 테이블 크기 계산 방법 CREATE TABLE TEST001 ( C1 char(8) primary key, N1 double unique, C2 char(128), N2 integer, IN_DATE date) tablespace user_data02; 1. 레코드사이즈 10(C1:헤더2byte포함)+ 130(C2:헤더2byte포함) + 8(N1) + 4(N2) + 8(IN_DATE) = 160 Bytes [ 32(헤더) + 160(칼럼길이의 합) ] * 100만건 = 183.11M 2. 인덱스사이즈 [ 16(헤더) + 18(key칼럼길이의 합) ] * 100만건 = 32.42M 3. TEST001 테이블 전체 사이즈 183.11(레코드사이즈) + 30.52(인덱스사이즈) = 215.53M 더보기
[알티베이스] 반환되지 않는 메모리 반환하는 방법 * 반환되지 않는 메모리 반환하는 방법 * 개요 : 메모리DB는 메모리를 할당하고 사용하기 때문에 데이터를 삭제해도 이미 할당된 메모리 영역만큼은 점유를 하고 있다. 삭제된 데이터만큼 메모리를 반환 받고 싶은 경우가 있을 것이다. 이를 위해 아래와 같은 방법을 제시하였다. * 4버전 이하 반환 방법 => 데이터를 백업 받고 해당 테이블을 삭제, 재생성하여 데이터를 다시 업로드를 하는 방법을 사용한다. * 4버전 이상 반환 방법 => 4버전 이상은 재기동만 해도 미사용 메모리를 시스템에 반환한다고 한다. [참고] 메모리 DB가 이중화 되어 있을 경우 : 대량의 데이터를 삭제 또는 업로드를 하게 될 경우, 이중화에 따른 시간이 많이 걸릴 수도 있다. 더보기
[알티베이스] Communication link failure 에러 코드 발생 * Communication link failure 에러 코드 발생 * 개요 : 해당 에러 코드는 DB 작업을 프로그램을 짜서 돌리던 중 발생한 에러 코드로, 서버로부터 연결이 단절된 것으로 보여진다. 해당 에러 코드를 분석하여 이와 같은 상황이 발생하지 않도록 보완해야 할 듯 보인다. * 발생 환경 1. 알티베이스 접속 2. for문을 통해 1만번 실행된다. 3. 100만건 이상 되는 데이터를 한번 쿼리하여 Fetch 된 데이터에 대해 Cursor가 하나씩 이동하면서 한 row당 데이터를 업데이트 하는 작업을 진행한다. 4. Fetch 된 한 ROW의 특정 컬럼값을 가지고 다른 테이블에서 또 조회하여 그 값으로 업데이트 한다. 5. 총 3번의 업데이트를 하게 되있는데, 그중의 하나는 다이나믹sql로 구.. 더보기
[알티베이스] 프로시저(Procedure) 확인 방법(Altibase Release Version 3.5.9.90) * 프로시저(Procedure) 확인 방법(Altibase Release Version 3.5.9.90) * 개요 : 메모리 DB 중 Altibase 에 대한 정보가 그리 많지 않아, 이렇게 조금이나마 도움이 되고자 올린다. [참고] 해당 정보는 모든 유저가 조회가 가능하지만 해당 테이블들은 시스템 유저의 소유로 되어 있어 system_.[테이블명] 으로 조회 가능하다. 테이블명 내용 SYS_PROCEDURES_ 저장 프로시저 및 함수 메타 테이블 SYS_PROC_PARAS_ 저장 프로시저 및 함수의 파라미터 메타 테이블 SYS_PROC_PARSE_ 저장 프로시저 및 함수 구문 메타 테이블 [SYS_PROCEDURES_ 테이블] iSQL> desc system_.SYS_PROCEDURES_; [ ATTR.. 더보기