Skip to end of metadata
Go to start of metadata

 


개요 


본 문서는 Altibase 환경에서 데이터베이스 객체와 데이터를 안전하게 이관하기 위한 표준 절차를 설명한다.

이 문서는 버전 업그레이드, 서버 이전, 논리적 백업·복구 등 실무에서 필요한 절차를 다루며, Altibase에서 제공하는 aexport와 iloader 도구의 활용 방법을 중심으로 구성한다.

 

 

 

Icon

이 문서와 관련된 오류 및 개선사항은 기술지원포털 또는 기술지원센터로 문의주시기 바랍니다.

Icon

이 문서는 정보 제공을 목적으로 제공되며, 사전에 예고 없이 변경될 수 있습니다. 이 문서는 오류가 있을 수 있으며, 상업적 또는 특정 목적에 부합하는 명시적, 묵시적인 책임이 일절 없습니다.

이 문서에 포함된 Altibase 제품의 특징이나 기능의 개발, 발표 등의 시기는 Altibase 재량입니다.

Altibase는 이 문서에 대하여 관련된 특허권, 상표권, 저작권 또는 기타 지적 재산권을 보유할 수 있습니다.

 

주요 개념


데이터 마이그레이션은 데이터베이스 객체와 데이터를 다른 환경으로 안전하게 이전하는 작업 전반을 의미한다.

적용 사례

  • Altibase 서버 버전 업그레이드 

  • 운영 환경 재구성 또는 서버·플랫폼 이전

  • 논리적 백업 및 복구

  • 대용량 테이블의 분할 또는 재배치

주요 도구

  • aexport: 데이터베이스 객체 생성 DDL 추출 및 데이터 추출·적재 스크립트 생성
  • iloader: 데이터 추출 및 적재 수행

 

마이그레이션 전체 절차


Altibase 데이터 마이그레이션은 소스 Altibase에서 객체 정의와 데이터를 추출하고, 대상 Altibase에 이를 반영하는 과정으로 진행된다. 일반적인 절차는 다음과 같다.

순서단계내용
1사전 점검서비스 중지, 디스크 용량 확인, 작업 디렉터리 생성, 소스 데이터 건수 확인
2aexport 실행객체 정의(DDL) 및 데이터 추출/적재 스크립트 생성
3데이터 추출`run_il_out.sh`로 텍스트 파일(.fmt, .dat) 생성
4대상 Altibase 구성대상 Altibase 설치 후 `run_is.sh`로 객체 생성
5데이터 적재`run_il_in.sh` 실행(필요 시 성능 옵션 적용)
6검증 및 후속 조치

인덱스, 외래키, 트리거, 이중화 등 후속 객체 생성
데이터 건수·객체 상태 및 서비스 확인

 

단계별 상세 절차


1. 사전 점검


1.1 서비스 중지

마이그레이션은 서비스를 완전히 중단한 상태에서 수행한다. 작업 중에는 어떠한 DML이나 DDL도 허용하지 않는다.

1.2 작업 디렉터리 및 디스크 공간 확보

텍스트 데이터는 내부 저장 크기보다 커질 수 있으므로 데이터 크기의 2배 이상 여유 공간을 확보한다. 

소스 Altibase를 백업한다면 그만큼 추가 용량을 준비한다.

1.3 소스 데이터 건수 기록

마이그레이션 후 검증을 위해 테이블별 데이터 건수를 사전에 기록한다.

아래 SQL을 실행하면 모든 사용자 테이블별 건수 조회 SQL을 자동으로 생성할 수 있다.

1.4 DBMS_METADATA 패키지 설치

이 작업은 Altibase 7.3 이상에서만 실행한다.

 DBMS_METADATA 패키지는 데이터베이스 딕셔너리에서 객체 생성 DDL 구문과 권한 부여(GRANT) 구문을 추출하며, Altibase 7.3부터 지원한다.

 

2. aexport 실행


2.1 ALTIBASE_NLS_USE 환경 변수 설정

Altibase 클라이언트 캐릭터셋(환경변수 ALTIBASE_NLS_USE)을 Altibase 서버 캐릭터셋과 동일하게 맞춘다.

Altibase 서버 캐릭터셋 확인

서버 캐릭터셋이 UTF8 일 때:

Altibase 클라이언트 캐릭터셋 설정

2.2 aexport.properties 수정

구분자 충돌로 인한 오류를 막기 위해 `ILOADER_FIELD_TERM`과 `ILOADER_ROW_TERM`의 주석을 삭제하여 기본값을 변경한다.

2.3 aexport 실행

작업 디렉터리에서 aexport를 실행한다. 실행 과정에서 서버 IP, 사용자 계정, 비밀번호를 입력하면 객체를 스캔하고 관련 스크립트를 생성한다.

실행 예시:

2.4 결과 확인

aexport 실행이 완료되면 데이터베이스 객체 생성용 SQL 파일과 해당 SQL을 실행하는 스크립트, 그리고 데이터 추출 및 적재용 스크립트가 생성된다.

 

3. 데이터 추출


3.1 run_il_out.sh 실행

`run_il_out.sh` 스크립트를 실행하여 데이터를 추출한다.

작업 시간이 길 경우에는 세션 유지를 위해 백그라운드로 실행한다. `nohup.out` 파일은 이름을 바꿔 관리한다.

3.2 검증

오류 확인

실행 로그에서 오류 메시지를 검색한다.

테이블 수 확인

.fmt 파일과 .dat 파일 개수가 실제 테이블 수와 일치하는지 확인한다.

레코드 추출 오류 확인

각 로그 파일에서 `Error Row Count` 값이 모두 0인지 확인한다. 0이 아닌 값이 있으면 오류 내용을 확인하고 다시 추출한다.

 

4. 대상 Altibase 구성


대상 Altibase를 설치하고, aexport로 추출한 객체 정의 스크립트를 실행해 데이터베이스를 구성한다.

4.1 소스 Altibase 정보 확인

대상 환경을 소스와 동일하게 만들기 위해 아래 항목을 조회한다.

4.2 소스 Altibase 중지 및 백업

이 절차는 소스 Altibase와 대상 Altibase가 같은 서버에 위치할 때 진행한다.

같은 서버에서 마이그레이션을 수행할 때는 먼저 소스 Altibase를 중지한 후, Altibase 홈 디렉터리와 디스크 데이터 파일, 메모리 체크포인트 이미지 파일, 로그 앵커 파일, 트랜잭션 로그 파일을 모두 백업해야 한다. 아래 예시는 모든 파일이 Altibase 홈 디렉터리에 존재한다고 가정한 경우다.

4.3 대상 Altibase 설치

대상 Altibase를 설치한다. 설치 과정에서 필요한 입력 정보는 앞서 확보한 '4.1 소스 Altibase 정보 확인'을 참조한다.

4.4 데이터 파일 경로 확인

대상 Altibase의 데이터 경로가 소스와 다르다면 `ALL_CRT_TBS.sql`에서 디스크 데이터 파일 및 메모리 체크포인트 이미지 파일의 경로를 수정한다. 

4.5 스크립트에서 Altibase 접속 주소 변경

aexport 실행으로 생성된 스크립트에서 Altibase 접속 주소를 대상 Altibase의 IP로 변경한다. 

변경 예시: 대상 Altibase의 IP가 192.168.1.145 일 때

 

4.6 데이터베이스 객체 생성

`run_is.sh` 파일을 실행하여 테이블스페이스, 데이터베이스 사용자, 시노님, 디렉터리, 시퀀스, 테이블, 라이브러리, 뷰, 저장 프로시저, 데이터베이스 링크를 생성한다.

데이터베이스 객체를 생성하는 과정에서 발생한 오류가 있는 지 확인한다.


5. 데이터 적재


5.1 데이터 적재

`run_il_in.sh` 파일을 실행하여 데이터를 적재한다.

데이터가 많거나 시간이 오래 걸리면 세션이 끊어지지 않도록 백그라운드로 실행한다.

 

(info) 데이터 적재 속도를 높이려면 `run_il_in.sh` 내부 iloader 명령에 성능 옵션 -array -commit을 추가하여 실행한다.

5.2 검증

오류 확인

실행 로그에서 오류 메시지를 검색한다.

테이블 수 확인

.log와 .bad 파일 개수가 테이블 수와 같아야 한다.

레코드 오류 검증

log 파일에서 적재에 실패한 레코드가 있는 지 확인한다. Error Row Count가 모두 0 이어야 한다.

.bad 파일 검증

모든 .bad 파일 크기가 0이어야 한다.

.bad 파일의 크기가 모두 0인지 확인:

파일의 크기가 0이 아닌 .bad 파일 찾기:

Error Row Count나 .bad 파일의 크기가 0이 아닌 테이블이 있다면 username_tablename.log 파일에서 오류가 발생한 레코드와 오류 메시지를 확인하여 조치하고 데이터를 다시 추출한다.

실행 예시: SYS_CUSTOMERS.log에서 오류가 확인되었으므로 SYS_CUSTOMERS.log 파일을 확인한다.

.bad 파일은 적재에 실패한 레코드들이 기록된다.

6. 검증 및 후속 조치


데이터 적재와 객체 생성이 끝나면 데이터베이스 관리자와 업무 담당자는 소스 Altibase와 대상 Altibase의 데이터를 비교하고, 주요 객체가 정상적으로 동작하는지 확인한다. 또한 애플리케이션과 배치 작업을 실행해 서비스가 정상적으로 수행되는지도 점검한다.

 

참고 문서


aexport와 iloader의 세부 기능 및 고급 사용법이 필요할 경우 다음 매뉴얼을 참조한다.

 


 

  • No labels