--- title: "eXperDB Standard Edition 사용 가이드" slug: "experdb-experdb-1-1" updated: 2026-10-22T09:11:11Z published: 2026-10-22T09:11:11Z canonical: "guide-gov.ncloud-docs.com/experdb-experdb-1-1" --- > ## Documentation Index > Fetch the complete documentation index at: https://guide-gov.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # eXperDB Standard Edition 사용 가이드 VPC 환경에서 이용 가능합니다. ## 사용하기 전에 ### eXperDB 소개 - eXperDB는 엔터프라이즈급 오픈소스 DBMS PostgreSQL 기반으로 데이터 운영 및 관리에 요구되는 다양한 기능을 포괄적으로 제공하는 통합 데이터 플랫폼입니다. - eXperDB는 가장 오랜 기간 개발 및 안정화를 통해 검증된 오픈소스 DBMS PostgreSQL 기반의 통합 데이터 플랫폼으로서 인젠트의 10여년간 축적된 기술 경험과 전문성을 바탕으로 데이터를 안정적이고 효율적으로 관리합니다. - 오픈소스 DBMS PostgreSQL을 최적화된 환경에서 이용할 수 있도록 전문가 조직의 수준 높은 기술 서비스 지원을 함께 제공합니다. - eXperDB는 Standard Edition과 Enterprise Edition을 제공하며, 여기서는 eXperDB 설치 및 Standard Editon이 제공하는 다양한 기능에 대해 안내하고 있습니다. ### 주요 특징 및 상세 기능 - **대용량 데이터 처리** 복잡한 쿼리 수행 시 다양한 병렬 처리 및 인덱스 기법, JOIN 기법, 선언적 파티셔닝, 다양한 분석 함수를 통한 대용량 데이터 운영 환경 최적화 - **고가용성** - Active 및 Multiple Hot-Standby 서버를 이용한 고가용성 구성으로 가용성 확보 및 운영 시스템에 영향 없이 무중단 확장 및 삭제, 무제한 확장 지원 및 클러스터 간 독립성 보장 - 무중단 서비스 제공을 위한 Auto Fail-over 기능을 통해 다운타임 최소화 - **데이터 마이그레이션** - 이기종 DBMS의 데이터(정형/비정형)를 eXperDB로 전환 - 소스 오브젝트를 타겟 DDL 구문으로 추출하여 즉시 데이터 이관 지원 - **표준 SQL 준수 및 호환성 보장** ANSI/ISO 표준을 강력하게 준수하여 타 시스템과의 높은 호환성 유지, 어플리케이션 변경 및 개발 공수 최소화 - **자유로운 기능 확장** Extension 확장 기능을 통해 DBMS 코어에서 제공하지 않는 기능들에 대한 자체 검증을 통한 신기술 적용 및 자유로운 확장 ## eXperDB 서버 생성 eXperDB 서버 생성 및 접속 과정은 아래의 절차를 순서대로 따라 해주시면 됩니다. 참고 이 가이드에서는 eXperDB용 서버 생성 방법을 간단하게 소개합니다. 전체 생성 방법에 대한 자세한 내용은 [Server 사용 가이드](/docs/server-start-classic)를 참고해 주십시오. ### Step 1. 콘솔 접속 ① 콘솔에 접속해서 **Compute > Server** 메뉴를 선택합니다. ② 서버를 생성하려면 **[서버 생성]** 버튼을 클릭합니다. ### Step 2. 서버 이미지 선택 eXperDB 서버 이미지를 선택해서 서버를 생성합니다. ① 이미지타입 **DBMS**, DBMS 이미지타입 **eXperDB**를 각각 선택합니다. ② 원하는 OS Version에 해당하는 eXperDB의 오른편 **[다음]** 버튼을 클릭합니다. ### Step 3. 서버 설정 스토리지 종류, 서버 타입, 요금제, Zone을 선택하고, 서버 이름을 입력합니다. ① Zone을 선택합니다. - 네이버 클라우드 플랫폼[공공기관용]은 1개의 Region을 제공합니다. ② 부팅 스토리지로 사용할 스토리지 종류를 선택합니다. ③ 원하는 서버 타입을 선택합니다. - eXperDB 이용 시, 최소 권장 사양은 4vCPU 8GB이며, VM의 메모리 스펙을 변경할 경우 서버에 접속하여 메모리 설정을 추가로 진행해야 합니다. 최소 권장 사양 이하 스펙을 사용할 경우 경고 메시지가 발생될 수 있으나 서비스 이용에 제한은 없습니다. - 일부 서버 스펙은 부팅 디스크 타입에 따라 지원되지 않을 수 있습니다. - 사용 용량에 따라 서버 타입 중 하나를 선택하세요. ④ 요금제는 월 요금제 또는 시간 요금제 중 선택할 수 있습니다. ⑤ 서버 이름을 입력합니다. - 고객이 서버를 구별하기 위한 명칭으로, 중복해서 사용할 수 없습니다. ⑥ **[다음]** 버튼을 클릭합니다. ### Step 4. 인증키 설정 보유하고 있는 인증키가 있는 경우 **보유하고 있는 인증키 이용**을 선택하고, 없는 경우 아래의 절차대로 새로운 인증키를 생성합니다. ① **[새로운 인증키 생성]** 을 선택합니다. ② 인증키 이름을 입력합니다. ③ **[인증키 생성 및 저장]** 버튼을 클릭하여 로컬 PC에 인증키(.pem) 파일을 저장합니다. - 새로운 인증키를 발급받습니다. - 저장 후 인증키는 고객의 PC 안전한 위치에 보관해 주십시오. - 인증키는 최초의 관리자 비밀번호를 가져올 때 이용됩니다. ④ **[다음]** 버튼을 클릭합니다. ### Step 5. ACG 설정 보유하고 있는 ACG를 이용하거나 신규 ACG를 생성하여 방화벽을 설정할 수 있습니다. 참고 여기에서는 ACG 설정 방법을 간단하게 소개합니다. 전체 설성 방법에 대한 자세한 내용은 [ACG 사용 가이드](https://guide-gov.ncloud-docs.com/release-20261022/docs/compute-compute-2-3)를 참고해 주십시오. #### 보유하고 있는 ACG 이용 보유하고 있는 ACG를 이용하여 방화벽을 설정하는 방법은 다음과 같습니다. ① ACG는 필수로 선택해야 하며, 기본으로 제공하는 ‘ncloud-default-acg’를 포함하여 보유하고 있는 ACG 중에서 하나를 선택합니다. - 보유하고 있는 ACG는 최대 5개까지 선택할 수 있습니다. - 필수로 ACG를 선택해야 **[다음]** 버튼이 활성화되어 설정을 진행할 수 있습니다. ② 보유하고 있는 ACG 외에 신규 ACG를 생성하여 설정하고 싶다면, **[신규 ACG 생성]** 을 선택합니다. ③ **[다음]** 버튼을 클릭합니다. #### 신규 ACG 생성 신규 ACG를 생성하여 방화벽을 설정하는 방법은 다음과 같습니다. ① 신규 ACG 생성에서 **[ACG 생성]** 버튼을 클릭합니다. ② ACG 이름을 입력합니다. ③ ACG 설정에서 프로토콜, 접근 소스, 허용 포트를 입력하고 생성합니다. 참고 - 프로토콜: TCP, UDP, ICMP에서 선택 - 접근 소스: IP 주소 또는 ACG명 입력 - 허용 포트: 단일 포트 또는 범위 지정 - 터미널 접속을 위해서는 접속하려는 서버의 ACG에 SSH 'TCP/22'에 대한 규칙이 설정되어 있어야 하고, 규칙을 추가하려면 프로토콜, 접근 소스, 허용 포트를 기재하고 **[추가]** 버튼을 클릭합니다. ④ 서비스 포트가 모두 추가된 경우 **[생성]** 버튼을 클릭합니다. ### Step 6. 최종 확인 설정한 내용을 최종 확인합니다. ① 서버 이미지, 서버, 인증키, ACG가 정상적으로 설정되었는지 확인합니다. ② 최종 확인 후에는 **[서버 생성]** 버튼을 클릭합니다. - 서버가 생성되기까지는 수 분에서 수십 분이 소요됩니다. ### 서버 목록에서 확인 생성한 서버를 목록에서 확인합니다. ① 생성한 서버가 목록에 표시됩니다. ② 서버가 생성되고 eXperDB가 설치 완료되어 서버 상태가 **운영중**이 될 때까지 대기합니다. ## 접속 환경 설정 참고 여기에서는 접속 환경 설정 방법을 간단하게 소개합니다. 접속 환경 설정 방법에 대한 자세한 내용은 [공인 IP 사용 가이드](/docs/compute-compute-2-1-v2)를 참고해 주십시오. ### 공인 IP 주소 사용 신청 eXperDB를 사용하려면 반드시 공인 IP 주소를 이용해서 접속해야 하며, 공인 IP 주소 사용에 대한 요금이 별도로 부과됩니다. ① **Server > Public IP** 메뉴로 이동합니다. ② 공인 IP 주소를 할당받으려면 **[공인 IP 신청]** 버튼을 클릭합니다. ③ **[적용 서버 선택]** 에서 공인 IP 주소를 할당할 eXperDB 서버를 선택합니다. ④ **[확인]** 버튼을 클릭합니다. 적용 서버 이름을 확인하고 다시 **[확인]** 버튼을 클릭합니다. ### ACG 생성 ACG에 터미널 접속 SSH('TCP/22') 및 eXperDB 서비스('TCP/UDP' 설정) 규칙을 추가합니다. 서버 생성 시 규칙을 이미 추가한 경우는 이 단계의 ACG 설정 작업을 수행할 필요가 없습니다. ① **Server > ACG** 메뉴로 이동합니다. ① 상단의 **[ACG 생성]** 버튼을 클릭합니다. ② ACG 이름을 입력합니다. ③ 설정이 완료되면 **[생성]** 버튼을 클릭합니다. ### ACG 설정 ① 생성한 ACG를 선택합니다. ② 상단 **[ACG 설정]** 버튼을 클릭합니다. ③ ACG 규칙 설정에서 프로토콜, 접근 소스, 허용 포트를 입력하고 생성합니다. - Standard Edition을 사용하실 경우 eXperDB 접속을 위해 추가적으로 설정이 필요한 Inbound 규칙은 다음과 같습니다. | 적용 대상 | 프로토콜 | 접근 소스 | 허용 포트 | 메모 | | --- | --- | --- | --- | --- | | eXperDB 서버 | TCP | eXperDB 서버 IP 대역 | 5432 | DBMS 접속 목적 | - 규칙을 추가하려면 프로토콜, 접근 소스, 허용 포트를 기재하고 **[추가]** 버튼을 클릭합니다. ④ 설정이 완료되면 **[적용]** 버튼을 클릭합니다. ### 서버 관리자 비밀번호 확인 터미널 프로그램(PuTTY 등)으로 서버에 접속하려면 관리자 비밀번호를 알아야 합니다. ① **Server** 메뉴를 선택합니다. ② 해당 서버를 선택하고, **[서버 관리 및 설정 변경]** 에서 **[관리자 비밀번호 확인]** 을 선택합니다. ③ 파일을 끌어넣거나 클릭해 내 컴퓨터에 저장된 pem 파일을 업로드합니다. ④ 첨부 후 **[비밀번호 확인]** 버튼을 클릭하면 터미널 프로그램으로 최초 서버 접속 시 사용할 비밀번호를 얻을 수 있습니다. - 서버에 접속 후 관리자가 기억할 수 있는 비밀번호로 변경하여 사용하는 것을 권장합니다. ## 터미널 접속 터미널 프로그램(PuTTY 등)으로 서버에 접속해서 eXperDB프로세스를 관리할 수 있습니다. ### 터미널 프로그램으로 서버 접속 ① 터미널 프로그램(PuTTY 등)을 실행합니다. ② 서버 리스트 또는 내용 보기에서 확인한 '서버 접속용 공인 IP'와 '외부 포트'의 값을 입력하고 **Open** 버튼을 클릭하면 서버에 접속됩니다. - 서버 접속용 공인 IP 확인: 콘솔의 **Server > Server** 메뉴에서 서버 선택 후 **상세정보**에서 **공인 IP** 값 확인 ③ 사용자 정보 및 암호를 입력하고 로그인합니다. - login as: ncloud - password: 위에서 확인한 관리자 비밀번호 ④ 로그인 후에는 ncloud 계정의 비밀번호를 기억할 수 있는 비밀번호로 변경할 것을 권장합니다. - `passwd ncloud` 명령어를 입력한 후 새 비밀번호를 입력합니다. ## eXperDB 설치 완료 eXperDB의 기동과 종료는 데이터베이스 관리자(experdb)만 수행할 수 있습니다. 최초로 서버에 접속하셨다면 반드시 experdb 계정의 비밀번호를 설정하셔야 데이터베이스가 정상기동 됩니다. 아래와 같은 순서대로 진행하시기 바랍니다. ① 서버 접속 후 root 권한 획득 ② experdb 계정의 비밀번호 설정 ③ experdb 계정으로 접속한 후, 아래 명령을 통해 eXperDB를 기동합니다. ``` $ pg_ctl start ``` ④ 아래 명령을 통해 정상적으로 서비스가 실행되었는지 확인합니다. ``` $ ps -ef | grep postgres ``` ![experdb-start_03_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb-start_03_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) - pg_ctl 명령을 통해 eXperDB 서버를 제어할 수 있습니다. 자주 사용하는 명령어는 다음과 같습니다. ``` $ pg_ctl status $ pg_ctl stop $ pg_ctl restart ``` ### eXperDB 접속 방법 - psql 명령어로 데이터베이스에 접속할 수 있으며, eXperDB의 Default 계정은 다음과 같습니다. | No. | User | 비밀번호 | Schema | 설명 | | --- | --- | --- | --- | --- | | 1 | experdba | experdba | experdba | experdb 의 DBA 권한을 가지고 있는 User | | 2 | repmgr | repmgr | repmgr | experdb 의 HA 관리 및 DBA권한을 가지고 있는 User | | 3 | postgres | 없음 | public | example user이며 DBA권한을 가지고 있는 User | ## 고가용성 구성하기 ### 사전 작업 ① eXperDB 서버 2대를 준비합니다. - 여기서는 Active 서버는 node001, Standby 서버는 node002로 작업하였습니다. ② root 계정으로 hosts 파일을 작성합니다. ``` $ vi /etc/hosts ..... 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 [IP 정보] node001 [IP 정보] node002 ..... ``` ③ experdb 계정으로 SSH Key를 생성하고 Key를 교환합니다. ``` $ ssh-keygen -f ~experdb/.ssh/id_rsa -N '' $ ssh-copy-id experdb@[상대서버 hostname] ..... Are you sure you want to continue connecting (yes/no)? yes ..... experdb@node002's password: [experdb 계정 비밀번호] ``` ④ experdb 계정으로 두 서버간 비밀번호 없이 통신되는 것을 확인합니다. ``` [experdb@node001 ~]$ ssh experdb@node002 Last login: Thu Feb 17 20:47:37 2022 [experdb@node002 ~]$ ``` ### eXperDB HA 설치하기 ① Active 서버에서 experdb 계정으로 아래 명령어를 실행합니다. ``` $ cd $PGHOME/etc $ ./experdb_ha_setup.sh ``` ② 화면에 Active 및 Standby 서버 정보를 입력합니다. ``` ========================================== eXperDB S2HA 1.0 ver (2021/11) ========================================== You must run this job on the master node. Is it OK? [y/n] : y Now, process starts Primary Server's Hostname : node001 Primary Server's IP addr : [IP 정보 입력] Standby Server's Hostname : node002 Standby Server's IP addr : [IP 정보 입력] Gateway IP addr : [IP 정보 입력] SSH Port [22] : eXperDB Service Port [5432] : ``` ③ 고가용성 구성이 완료된 것을 확인합니다. ![experdb-ha_01_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb-ha_01_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) ④ 환경변수를 적용합니다. ``` $ source ~/.experdbrc ``` #### eXperDB 서버 재시작 시 주의사항 참고 고가용성으로 구성된 eXperDB 서버에 대한 작업은 experdb 계정을 이용해 Standby → Acitve 순서로 진행해야 합니다. ① 서버 재기동 완료 후 Active 서버에 접속합니다. ② Active 서버에서 pg_ctl 명령어를 통해 eXperDB를 재시작합니다. ``` $ pg_ctl start ``` ③ Active 서버에서 아래 명령어를 실행합니다. ``` $ source $PGHOME/etc/repmgr_alias.sh $ repmgrd_start ``` ④ Standby 서버에서 ②, ③ 단계를 동일하게 진행합니다. ``` $ source $PGHOME/etc/repmgr_alias.sh $ repmgrd_start ``` ⑤ Active 서버에서 이중화 상태를 확인합니다. ``` $ repmgr service status ``` ![experdb-ha_03_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb-ha_03_vpc_ko.PNG?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) ## Dump 백업 ### PostgreSQL의 논리적 백업 - 논리적 백업은 일반 텍스트로 저장된 데이터가 포함되어 있거나 그러한 형식으로 쉽게 변환하는 백업 방식입니다. 압축된 tar 파일 또는 사용자 정의 binary 형식으로도 생성할 수 있습니다. - 필요한 경우 단일 행을 추출하여 복원 가능하며, 여러 출력 형식을 지원한다는 점에서 편리합니다. - 기본적으로 일반 텍스트 파일에 데이터를 저장하지면 압축된 tar 파일 또는 사용자 정의 binary 형식으로도 생성할 수 있습니다. - PostgreSQL 기반의 데이터베이스에서는 논리적 백업을 수행하도록 설계된 pg_dump라는 유틸리티를 사용합니다. | 백업 유형 | 백업 단위 | 복구 방법 | | --- | --- | --- | | pg_dumpall | 데이터베이스 클러스터(인스턴스) | psql | | pg_dump | 데이터베이스, 스키마, 테이블 | psql, pg_restore | | copy | 테이블 | copy | - 논리적 백업에 사용하는 명령어는 아래와 같습니다. ``` $ pg_dump -d [DB명] -U [User명] -n [Schema명] > [Dump File명] ``` - 논리적 백업 복구시 사용하는 명령어는 아래와 같습니다. ``` $ psql -d [DB명] -U [User명] -f [Dump File명] $ pg_restore -F [포맷 형식] [Dump File명] -d [DB명] -U [User명] ``` - 포맷 형식은 plain은 p, custom은 c, directory는 d, tar는 t로 표기합니다. - plain 포맷이 아닌 다른 포맷으로 백업한 경우 pg_restore 명령어를 사용해야 합니다. ## Rman 백업 ### PostgreSQL의 물리적 백업 - 물리적 백업이란 파일 시스템상에 데이터베이스가 사용하는 데이터 파일 및 아카이브 로그 등을 백업 하는 방식으로, 시점 복구가 가능합니다. - 데이터베이스 클러스터 단위로 백업 카탈로그를 관리하고, 하나의 명령으로 아카이브 로그를 포함한 과거 백업들을 관리합니다. - pg_rman은 PostgreSQL의 온라인 백업과 복구 및 시점 복구를 수행하는 PostgreSQL의 유틸리티입니다. - pg_rman은 백업 카탈로그 영역을 생성해 백업 파일 및 정보를 관리합니다. - init 명령어를 사용해 백업 카탈로그 영역 생성 및 초기화가 필요합니다. - 최초 백업 카탈로그 초기화 시 psotgresql.conf 파일에서 필요한 설정값을 읽어옵니다(archive_mode, archive_command, wal_level, log_directory). #### Rman 백업 종류 - 전체 백업(full backup): 데이터베이스 클러스터 전체 백업 - 증분 백업(incremental backup): 유효한 최종 백업 이후에 변경된 파일에 대해서만 백업 - 아카이브 백업(archive log backup): Archive WAL 전용 백업 주의 백업 실행 후 validate 명령을 수행하지 않으면 카탈로그에 포함되지 않아 복구 시 사용할 수 없습니다. ### pg_rman 활용한 eXperDB 백업 및 복구 - eXperDB에서는 pg_rman 기반의 백업 스크립트를 제공합니다. - 백업 명령어는 $PGBIN(/experdb/app/postgres/bin)에 있으며 experdb 계정으로 접속해 필요한 스크립트를 선택해 실행할 수 있습니다. - 백업 데이터는 $PGRBAK(/experdata/backup) 하위 날짜별 디렉토리에 저장됩니다. | 스크립트 | 기능 | 상세 설명 | | --- | --- | --- | | pg_init_backup.sh | 백업 카탈로그 초기화 | eXperDB 설치 시 백업구성 부분에서 ‘y‘으로 구성되며, 추후 백업 카탈로그 재 생성시 사용 | | pg_full_backup.sh | 클러스터 전체 백업 | 백업 완료 후 Validate 확인 및 보관기간 지정에 따른 파일 정보 삭제 | | pg_inc_backup.sh | 클러스터 전체 백업 후 증분 백업 | 백업 완료 후 Validate 확인 및 보관기간 지정에 따른 파일 정보 삭제 | | pg_arc_backup.sh | 아카이브 로그 백업 | | ① 백업을 수행합니다. ``` $ pg_full_backup.sh ``` ![experdb-backup_02_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb_backup_02_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) ② 백업 수행 결과를 확인합니다. - 백업 정보 확인 및 백업 데이터가 저장되는 디렉토리를 확인하는 명령어는 아래와 같습니다. ``` $ pg_rman show $ cd $PGRBAK ``` ![experdb-backup_01_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb_backup_01_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) ③ DB 서버 기동을 중지합니다. ``` $ pg_ctl stop ``` ④ 백업 카탈로그 정보를 확인해 시점 복구를 진행합니다. ``` $ pg_rman restore --recovery-target-time '2022-06-29 10:51:17' --recovery-target-action promote ``` - recovery-target-time은 복구 시점으로, 백업 카탈로그의 Endtime이 기준입니다. - recovery-target-action은 복구 이후 수행할 작업을 지정합니다. ![experdb-backup_03_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb_backup_03_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) - postgresql.log에서 백업 수행 로그를 확인할 수 있습니다. ``` $ cat $PGLOG/postgresql_202206.log ``` ⑤ DB 서버를 시작합니다. ``` $ pg_ctl start ``` ⑥ DB 복구 작업시 생성된 pg_rman_recovery.conf 파일을 삭제합니다. ``` $ rm -rf pg_rman_recovery.conf ``` ⑦ DB 복구 작업시 생성된 postgresql.conf의 환경 변수를 주석 처리합니다. ``` $ vi postgresql.conf #include = 'pg_rman_recovery.conf' # added by pg_rman 1.3.14' ``` ⑧ DB 서버에 환경 설정을 재적용합니다. ``` $ pg_ctl reload ``` ⑨ DB 데이터가 정상적으로 복구되었는지 확인합니다. ![experdb-backup_04_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb_backup_04_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) #### 고가용성으로 구성된 eXperDB 백업 및 복구 참고 - 고가용성 구성 시 rman 백업은 Active 서버에서 실행해야 합니다. Standby 서버는 Read-Only로 동작하기 때문에 아카이브 파일이 생성되지 않습니다. - 복구 작업 시작 전 Standby, Active 서버 순으로 DB 서버를 중지해야 합니다. 작업 순서가 올바르지 않을 경우 장애 상황으로 판단해 자동으로 failover가 수행됩니다. ① Active 서버에서 아래 두 가지 명령어 중 하나를 선택해 Replication 상태를 확인합니다. ``` $ repmgr service status $ repmgr cluster show ``` ② 백업을 수행합니다. ``` $ pg_full_backup.sh ``` ③ 백업 수행결과를 확인합니다. ``` $ pg_rman show $ cd $PGRBAK ``` ④ Standby 서버에서 복제 상태 확인후 DB서버를 중지합니다. ``` $ pg_ctl stop ``` ⑤ Active 서버의 시점 복구를 진행합니다. 자세한 내용은 'pg_rman 활용한 eXperDB 백업 및 복구'를 참고하시기 바랍니다. ⑥ Active-Standby 서버 간의 정상적인 Replication을 위해 Standby 서버에서 clone을 수행합니다. ``` $ repmgr standby clone -h node001 -d experdb -U repmgr -F ``` ![experdb-backup_05vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb_backup_05_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) ⑦ Standby DB 서버를 시작합니다. ``` $ pg_ctl start ``` ⑧ Standby 서버 정보를 repmgr 메타 데이터에 추가하는 명령어를 수행합니다. ``` $ repmgr standby register -F ``` ⑨ Standby DB의 Replication 상태를 확인합니다. ``` $ repmgr cluster show ``` ## DB2PG 활용 하기 ### DB2PG란? - Source DB의 데이터를 eXperDB로 손쉽게 옮길 수 있도록 마이그레이션을 지원하는 Tool입니다. - 지원하는 DBMS는 Oracle, MySQL, MSSQL입니다. DB2는 DDL을 제외한 데이터 이관만 가능합니다. - 설치 경로: /home/experdb/db2pg-v13.0.2-linux64 - 설정 파일: db2pg.config - 마이그레이션 실행 파일: db2pg.sh ### DB2PG 사용 방법 ① 터미널 프로그램(PuTTY 등)을 실행합니다. ② Source DB의 DDL 추출을 위해 db2pg.config 내용을 작성합니다. - Source DB 및 데이터를 이관할 eXperDB의 접속 정보 및 추가 옵션을 작성합니다. ![experdb-db2pg_01_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb-db2pg_01_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) ![experdb-db2pg_02_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb-db2pg_02_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) ③ 작성한 설정 파일을 이용해 마이그레이션 실행 파일을 수행합니다. ``` $ cd /home/experdb/db2pg-v13.0.2-linux64 $ ./db2pg.sh -c db2pg.config ``` ④ DDL 추출 결과를 확인합니다. ``` $ cd /home/experdb/db2pg-v13.0.2-linux64/ddl ``` ![experdb-db2pg_03_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb-db2pg_03_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) ⑤ Target DB에 추출한 DDL을 반영합니다. - 각 DDL 파일을 순차적으로 수행합니다. ``` $ psql –d experdb –U experdba –c “\i orcl_xxx_sequence.sql” $ psql –d experdb –U experdba –c “\i orcl_xxx_table.sql” $ psql –d experdb –U experdba –c “\i orcl_xxx_index.sql” $ psql –d experdb –U experdba –c “\i orcl_xxx_constraint.sql” ``` ⑥ Target DB로 이관을 위해 db2pg.config 내용을 수정합니다. - 데이터를 이관할 eXperDB의 접속 정보 및 추가 옵션을 작성합니다. ![experdb-db2pg_04_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb-db2pg_04_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) ![experdb-db2pg_05_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb-db2pg_05_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) ![experdb-db2pg_06_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb-db2pg_06_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) ⑦ 작성한 설정 파일을 이용해 마이그레이션 실행 파일을 수행합니다. ``` $ cd /home/experdb/db2pg-v13.0.2-linux64 $ ./db2pg.sh -c db2pg.config ``` ⑧ 마이그레이션 완료 시 Summary Info 내용을 확인합니다. ![experdb-db2pg_07_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb-db2pg_07_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) ## PostGIS 설치하기 - PostGIS란 데이터베이스에 GIS(지리정보 시스템) 정보를 저장할 수 있는 PostgreSQL의 확장 프로그램입니다. ① 터미널 프로그램(PuTTY 등)을 실행합니다. ② 데이터베이스에 접속한 뒤, PostGIS 설치를 위한 명령어를 실행합니다. ``` $ psql experdb=# create extension postgis; experdb=# \dx ``` ![experdb-postgis_01_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb-postgis_01_vpc_ko.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) ③ PostGIS가 정상적으로 설치되었는지 확인합니다. ``` experdb=# select name from pg_available_extensions where name like 'postgis%'; ``` ## eXperMON 이용하기 ### eXperMON이란? - CLI 환경에서 데이터베이스 점검 및 운영에 필요한 정보를 확인할 수 있습니다. ### eXperMON 사용 방법 ① 터미널 프로그램(PuTTY 등)을 실행합니다. ② eXperMON을 이용하기 위해 eXperMON 스크립트를 실행합니다. ``` $ cd /experdb/app/postgres/etc $ ./eXpermon.sh ``` ③ 표시된 eXperDB 목록 중 조회하고 싶은 데이터베이스와 User를 입력합니다. 입력하지 않을 경우 experdb/experdba를 보여줍니다. - eXperMON에는 26가지 모듈이 있으며, Session, Object, Monitoring 총 세 가지 파트로 구성되어 있습니다. - 확인하고 싶은 모듈의 번호를 입력하면 선택한 데이터베이스의 정보를 가져옵니다. ![experdb-expermon_01_vpc_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/experdb-expermon_01_vpc_ko.PNG?sv=2026-02-06&spr=https&st=2026-11-07T17%3A39%3A58Z&se=2026-11-07T18%3A39%3A58Z&sr=c&sp=r&sig=xLdt3%2FwvPXcxcw9OtmJWx6NRks01MyYC3WSFPsn79UU%3D) | 분류 | 모듈 | 설명 | | --- | --- | --- | | Session | 1. BASE INFO | 설치된 eXperDB의 PostgreSQL 버전과 포트, Startup Time 안내 | | Session | 2. ACT SESSION | 실행 중인 세션 정보 | | Session | 3. TOTAL SESSION | 데이터베이스와 연결되어 있는 Connection 전체 정보 | | Session | 4. LOCK INFO | Lock 상태인 테이블 정보와 쿼리 표시 | | Session | 5. EXCLUSIVE LOCK | Shared Lock을 제외한 Critical한 Exclusive Lock 정보 조회 | | Session | 6. LOCK RELATION | Exclusive Lock의 연관 정보 표시 | | Session | 7. KILL SESSION | Session 정보 조회 후 PID를 입력해 해당 Session Kill 수행 | | Session | 8. DEAD LOCK KILL | Exclusive Lock 정보 출력 후 최상단에 있는 Lock PID에 대해 Kill 수행 | | Session | 9. FIND SQL | 데이터베이스와 연결되어 있는 Connection 전체 정보 조회 및 PID 입력시 해당 PID를 가진 트랜잭션이 사용 중인 쿼리 출력 | | Session | 10. FIND SQL PLAN | PostgreSQL의 explain 기능을 이용한 쿼리 플랜 조회 및 PID 입력시 해당 PID를 가진 SQL 플랜 및 메모리, Cost, Planning Time, Execution Time 정보 출력 | | Object | 11. TABLESPACE | Cloud DB for PostgreSQL 출시에 따른 사용 가이드 제공 | | Object | 12. DATABASE SCHEMA | 데이터베이스의 Schema, User 정보 | | Object | 13. SCHEMA ALL OBJECT | Schema 내부의 모든 Object 정보 | | Object | 14. SELECT OBJECT | Schema 내부의 Object 정보를 Table, Index, Sequence, View 네 가지로 분류해 조회 | | Object | 15. FIND OBJECT | Schema 내부의 Object 정보를 키워드로 검색 | | Object | 16. TABLE INFO | 입력한 테이블명과 일치하는 테이블 정보 | | Object | 17. INDEX INFO | 입력한 인덱스명과 일치하는 인덱스 정보 | | Object | 18. FIND TRIGGER | 트리거 목록 및 트리거 생성 구문 출력 | | Object | 19. TABLE CONSTRAINT | Schema 내부의 Constraint 정보 | | Object | 20. COMMIT RATIO | 데이터베이스별 cash_hit_ratio 및 dcommitratio 비율 조회 | | Mornitoring | 21. TOP QUERY 20 | 수행 시간이 오래 걸리는 상위 20개 쿼리 조회 | | Mornitoring | 22. REPMGR SHOW | 고가용성 구성시 REPMGR 데몬의 상태 정보 | | Mornitoring | 23. VACCUM INFO | 서버 내 vaccum 정보 및 수행 이력 조회 | | Mornitoring | 24. ARCHIVE COUNT | 아카이브 성공한 wal 파일 수, 최근 아카이브 성공한 작업 시간, 아카이브 실패한 wal 파일 수, 최근 아카이브 실패한 wal 파일 이름, 최근 아카이브 실패한 작업 시간, 테이블이 마지막으로 업데이트된 시간 | | Mornitoring | 25. BLOAT LIST | Bloat된 Object 정보 | | Mornitoring | 26. LIVE_MONITORING | Active Session, Lock Session, Lock Relation 모듈을 한꺼번에 실시간으로 조회 | | 기타 | 97. DB 변경 | eXperMON 시작할 때 입력했던 데이터베이스 변경 | | 기타 | 98. User 변경 | eXperMON 시작할 때 입력했던 User 변경 | | 기타 | 99. eXperMON 종료 | eXperMON 종료 |