- 인쇄
- PDF
eXperDB Enterprise Edition 사용 가이드
- 인쇄
- PDF
VPC 환경에서 이용 가능합니다.
사용하기 전에
Q. Rocky Linux 기반 eXperDB 출시 계획이 있나요?
- 25년 상반기 출시 예정입니다. 상품 출시가 되면, 서비스 소식, 릴리스 노트 등을 통해서 안내해 드리겠습니다.
eXperDB 소개
- eXperDB는 엔터프라이즈급 오픈소스 DBMS PostgreSQL 기반으로 데이터 운영 및 관리에 요구되는 다양한 기능을 포괄적으로 제공하는 통합 데이터 플랫폼입니다.
- eXperDB는 가장 오랜 기간 개발 및 안정화를 통해 검증된 오픈소스 DBMS PostgreSQL 기반의 통합 데이터 플랫폼으로서 인젠트의 10여 년간 축적된 기술 경험과 전문성을 바탕으로 데이터를 안정적이고 효율적으로 관리합니다.
- 오픈소스 DBMS PostgreSQL을 최적화된 환경에서 이용할 수 있도록 전문가 조직의 수준 높은 기술 서비스 지원을 함께 제공합니다.
- eXperDB는 Standard Edition과 Enterprise Edition을 제공하며, 여기서는 eXperDB 설치 및 Enterprise Editon이 제공하는 다양한 기능에 대해 안내하고 있습니다.
주요 특징 및 상세 기능
- 대용량 데이터 처리
- 복잡한 쿼리 수행 시 다양한 병렬 처리 및 인덱스 기법, JOIN 기법, 선언적 파티셔닝, 다양한 분석 함수를 통한 대용량 데이터 운영 환경 최적화
- 고가용성
- Active 및 Multiple Hot-Standby 서버를 이용한 고가용성 구성으로 가용성 확보 및 운영 시스템에 영향 없이 무중단 확장 및 삭제, 무제한 확장 지원 및 클러스터 간 독립성 보장
- 무중단 서비스 제공을 위한 Auto Fail-over 기능을 통해 다운타임 최소화
- 데이터 마이그레이션
- 이기종 DBMS의 데이터(정형/비정형)를 eXperDB로 전환
- 소스 오브젝트를 타겟 DDL 구문으로 추출하여 즉시 데이터 이관 지원
- 표준 SQL 준수 및 호환성 보장
- ANSI/ISO 표준을 강력하게 준수하여 타 시스템과의 높은 호환성 유지, 어플리케이션 변경 및 개발 공수 최소화
- 자유로운 기능 확장
- Extension 확장 기능을 통해 DBMS 코어에서 제공하지 않는 기능들에 대해 자체 검증을 통한 신기술 적용 및 자유로운 확장
- 데이터 암호화
- Key Server 완전 분리 기능 및 국가정보원 인증 암호 모듈을 적용한 데이터 암호화 기능 제공
- ARIA, SEED, AES 등 주요 암호 알고리즘 지원
- 애플리케이션 API, DB API, 하이브리드 등 다양한 암호화 방식 지원
- 접근 제어 및 감사 리포트를 제공
- Management 콘솔 제공
- eXperDB 운영과 관리 편의성 보장을 위해 제공하는 웹 기반 통합 관리 툴
eXperDB 서버 생성
eXperDB 서버 생성 및 접속 과정은 아래의 절차를 순서대로 따라해 주십시오.
이 가이드에서는 eXperDB용 서버 생성 방법을 간단하게 소개합니다. 전체 생성 방법에 대한 자세한 내용은 Server 사용 가이드를 참조해 주십시오.
Step 1. 콘솔 접속
콘솔에 접속해서 Compute > Server 메뉴를 선택합니다.
서버를 생성하려면 [서버 생성] 버튼을 클릭합니다.
Step 2. 서버 이미지 선택
eXperDB 서버 이미지를 선택해서 서버를 생성합니다.
이미지 타입 DBMS, DBMS 이미지 타입 eXperDB를 각각 선택합니다.
원하는 OS Version에 해당하는 eXperDB의 오른편 [다음] 버튼을 클릭합니다.
Step 3. 서버 설정
스토리지 종류, 서버 타입, 요금제, Zone을 선택하고, 서버 이름을 입력합니다.
- Zone을 선택합니다.
- 네이버 클라우드 플랫폼[공공기관용]은 1개의 Region을 제공합니다.
부팅 스토리지로 사용할 스토리지 종류를 선택합니다.
원하는 서버 타입을 선택합니다.
- eXperDB 이용 시 최소 권장 사양은 4 vCPU, 8 GB, VM 서버는 3대입니다. VM의 메모리 스펙을 변경할 경우 서버에 접속하여 메모리 설정을 추가로 진행해야 합니다. 최소 권장 사양 이하 스펙을 사용할 경우 경고 메시지가 발생될 수 있으나 서비스 이용에 제한은 없습니다.
- 일부 서버 스펙은 부팅 디스크 타입에 따라 지원되지 않을 수 있습니다.
- 사용 용량에 따라 서버 타입 중 하나를 선택하세요.
요금제는 월 요금제 또는 시간 요금제 중 선택할 수 있습니다.
서버 이름을 입력합니다.
- 고객이 서버를 구별하기 위한 명칭으로, 중복해서 사용할 수 없습니다.
- [다음] 버튼을 클릭합니다.
Step 4. 인증키 설정
보유하고 있는 인증키가 있는 경우 보유하고 있는 인증키 이용을 선택하고, 없는 경우 아래의 절차대로 새로운 인증키를 생성합니다.
[새로운 인증키 생성] 을 선택합니다.
인증키 이름을 입력합니다.
[인증키 생성 및 저장] 버튼을 클릭하여 로컬 PC에 인증키(.pem) 파일을 저장합니다.
- 새로운 인증키를 발급받습니다.
- 저장 후 인증키는 고객의 PC 안전한 위치에 보관해 주십시오.
- 인증키는 최초의 관리자 비밀번호를 가져올 때 이용됩니다.
- [다음] 버튼을 클릭합니다.
Step 5. ACG 설정
보유하고 있는 ACG를 이용하거나 신규 ACG를 생성하여 방화벽을 설정할 수 있습니다.
여기에서는 ACG 설정 방법을 간단하게 소개합니다. 전체 설성 방법에 대한 자세한 내용은 ACG 사용 가이드를 참조해 주십시오.
보유하고 있는 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 사용 가이드를 참조해 주십시오.
공인 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 규칙 설정에서 프로토콜, 접근 소스, 허용 포트를 입력하고 생성합니다.
- Enterprise Edition을 사용하실 경우, eXperDB 및 Management 콘솔 접속을 위해 추가적으로 설정이 필요한 Inbound 규칙은 다음과 같습니다.
적용 대상 | 프로토콜 | 접근 소스 | 허용 포트 | 메모 |
---|---|---|---|---|
eXperDB 서버 | TCP | eXperDB 서버 IP 대역 | 5432 | DBMS 접속 목적 |
eXperDB 서버 | TCP | eXperDB 서버 IP 대역 | 9001 | Management Agent 접속 목적 |
eXperDB 서버 | ICMP | eXperDB 서버 IP 대역 | 네트워크 확인 목적 | |
Management 서버 | TCP | 0.0.0.0/0 | 25432 | Repository DB 접속 목적 |
Management 서버 | TCP | 0.0.0.0/0 | 8880 | Management 콘솔 접속 목적 |
Management 서버 | TCP | 0.0.0.0/0 | 5960 | 모니터링 서버 접속 목적 |
Management 서버 | TCP | 0.0.0.0/0 | 9443 | Encrypt Server 접속 목적 |
- 규칙을 추가하려면 프로토콜, 접근 소스, 허용 포트를 기재하고 [추가] 버튼을 클릭합니다.
- 설정이 완료되면 [적용] 버튼을 클릭합니다.
서버 관리자 비밀번호 확인
터미널 프로그램(PuTTY 등)으로 서버에 접속하려면 관리자 비밀번호를 알아야 합니다.
Server 메뉴를 선택합니다.
해당 서버를 선택하고, [서버 관리 및 설정 변경] 에서 [관리자 비밀번호 확인] 을 선택합니다.
파일을 끌어 넣거나 클릭해 내 컴퓨터에 저장된 pem 파일을 업로드합니다.
첨부 후 [비밀번호 확인] 버튼을 클릭하면 터미널 프로그램으로 최초 서버 접속 시 사용할 비밀번호를 얻을 수 있습니다.
- 서버에 접속 후 관리자가 기억할 수 있는 비밀번호로 변경하여 사용하는 것을 권장합니다.
터미널 접속
터미널 프로그램(PuTTY 등)으로 서버에 접속해서 eXperDB 프로세스를 관리할 수 있습니다.
터미널 프로그램으로 서버 접속
터미널 프로그램(PuTTY 등)을 실행합니다.
서버 리스트 또는 내용 보기에서 확인한 '서버 접속용 공인 IP'와 '외부 포트'의 값을 입력하고 [Open] 버튼을 클릭하면 서버에 접속됩니다.
- 서버 접속용 공인 IP 확인: 콘솔의 Server > Server 메뉴에서 서버 선택 후 상세정보에서 공인 IP 값 확인
- 사용자 정보 및 암호를 입력하고 로그인합니다.
- login as: ncloud
- password: 위에서 확인한 관리자 비밀번호
- 로그인 후에는 ncloud 계정의 비밀번호를 기억할 수 있는 비밀번호로 변경할 것을 권장합니다.
passwd ncloud
명령어를 입력한 후 새 비밀번호를 입력합니다.
eXperDB 설치
Enteprise Edition은 고가용성 구성을 권장합니다.
eXperDB의 기동과 종료는 데이터베이스 관리자(experdb)만 수행할 수 있습니다.
최초로 서버에 접속하셨다면 반드시 root 및 experdb 계정의 비밀번호를 설정하셔야 데이터베이스가 정상적으로 기동 됩니다. 아래와 같은 순서대로 진행하시기 바랍니다.
서버 접속 후 root 권한 획득
root 및 experdb 계정의 비밀번호 설정
eXperDB 서버에 접속해 experdb 계정으로 Installer 파일을 실행합니다.
$ ./eXperDB-Enterprise-Installer-cloud.sh
$ ...
$ Install Product choice(1~2): [1]
- 계정 비밀번호 입력 및 경로 설정을 입력합니다. Enter 입력 시 기본 설정값으로 생성됩니다.
$ Please enter the root password to install system packages.
$ Root Password : [root 비밀번호 입력]
===================== Installing eXperDB Platform =======================
$ eXperDB Home path [ /experdb ] : (Enter 입력 시, 기본 설정값으로 생성)
$ eXperDB Data path [ /experdata/data ] : (Enter 입력 시, 기본 설정값으로 생성)
$ eXperDB Service Port [5432] : (Enter 입력 시, 기본 설정값으로 생성)
- 설치 진행 상황을 확인합니다.
- 설치 완료 후 설치 경로와 옵션을 확인합니다.
- 환경변수를 적용합니다.
$ source ~/.experdbrc
- pg_ctl 명령을 통해 eXperDB 서버를 제어할 수 있습니다. 자주 사용하는 명령어는 다음과 같습니다.
$ pg_ctl status
$ pg_ctl stop
$ pg_ctl restart
- eXperDB 설치 정보는 생성한 OS 계정에 접속하여 확인할 수 있습니다.
$ ps -ef | grep postgres
고가용성 구성하기
사전 작업
- 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] : <Enter>
eXperDB Service Port [5432] : <Enter>
- 고가용성 구성이 완료된 것을 확인합니다.
- 환경변수를 적용합니다.
$ 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 서버에서 2번, 3번 단계를 동일하게 진행합니다.
$ source $PGHOME/etc/repmgr_alias.sh
$ repmgrd_start
- Active 서버에서 이중화 상태를 확인합니다.
$ repmgr service status
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 |
Enterprise Edition의 경우 Management 콘솔로 접속 가능합니다.
Management 서버 설치
Enterprise Edition의 경우 Management 서버에 별도로 접속해 추가 설치 작업이 필요합니다.
- Management 서버에 접속해 experdb 계정으로 Installer 파일을 실행합니다.
$ ./eXperDB-Enterprise-Installer-cloud.sh
$ ...
$ Install Product choice(1~2): [2]
- 계정 비밀번호 입력 및 경로 설정, 수집 서버 사용자 비밀번호 설정, 암호화 설치 여부를 입력합니다. Enter 입력 시 기본 설정값으로 생성됩니다.
$ Please enter the root password to install system packages.
$ Root Password : [root 비밀번호 입력]
===================== Installing eXperDB Platform =======================
$ eXperDB Platform Home path [ /experdb ] : (Enter 입력 시, 기본 설정값으로 생성)
$ eXperDB Repository Data path [ /experdata/data ] : (Enter 입력 시, 기본 설정값으로 생성)
$ eXperDB Encrypt Use (Y/N) : [ Y ] (암호화 설치 여부 선택)
암호화 사용 시 암호화 마스터키 설정을 참고하여 암호화 마스키 설정을 해주시기 바랍니다.
- 환경변수를 적용합니다.
$ source ~/.experdbrc
- Management 콘솔에 접속합니다.
- 접속 주소: http://Management 서버 IP:8880
- 접속 ID: admin
- 최초 비밀번호: experdb12#
- ACG에 접속이 필요한 IP만 등록할 것을 권장합니다.
- 최초 로그인 시에는 초기 패스워드 설정 팝업 창이 나타나며, 해당 팝업 창에서 비밀번호를 반드시 변경해 주시기 바랍니다.
Agent 설치
Enterprise Edition의 경우 Management 콘솔에서 eXperDB 서버를 제어하기 위해 Agent 설치가 필요합니다.
- eXperDB 서버에 접속해 experdb 계정으로 agent set-up 파일을 실행합니다.
sh /experdb/app/eXperDB-Management/setup-agent.sh
- Management 콘솔 서버 IP와 현재 서버 IP 정보 및 암호화 설치 여부를 입력합니다.
===================== Installing eXperDB Platform Agent =======================
$ Repository DB server IP(External access ip) : (플랫폼 서버 IP)
$ Agent IP : (현재 DB서버 IP)
$ eXperDB-Encrypt Use (Y/N) : [ Y ] (암호화 설치 여부 선택)
Management 콘솔 사용하기
Management 콘솔에서는 eXperDB가 제공하는 데이터 암호화, 백업 및 복구, 마이그레이션, 보안 관제 등의 기능을 손쉽게 이용할 수 있습니다.
암호화 마스터키 설정
콘솔 상단의 ENCRPYPT > 설정 > 서버 마스터키 암호 설정을 클릭합니다.
원하는 설정을 입력합니다.
- 새로운 마스터키 파일: 파일을 생성하고 비밀번호도 입력하여 마스터키 생성
- 마스터키 파일 사용 안 함: 파일 없이 비밀번호만 입력하여 마스터키 생성
암호화 설정한 서버를 재기동할 때 여기서 생성한 마스터키를 입력해야 암호화 기능을 사용할 수 있습니다.
DB 서버 등록하기
콘솔 상단의 ADMIN > DBMS정보 > DBMS등록을 클릭합니다.
[등록] 버튼을 클릭하여 팝업창을 불러옵니다.
오른쪽 상단의 [+] 버튼을 클릭해 DB 서버 IP와 포트를 입력합니다.
- 고가용성 구성인 경우 Active, Standby 서버 모두 등록해야 합니다.
DBMS명을 자동으로 불러오면 Database 스키마명, 계정, 패스워드를 입력합니다.
연결 테스트를 클릭해 정상적으로 통신 되는지 확인 후 [저장] 버튼을 클릭합니다.
DBMS 목록 팝업에서 등록한 DBMS를 클릭합니다.
Database 목록을 확인 후 실제 사용하는 Database 스키마 선택해 저장합니다.
DB 서버 권한 관리
콘솔 상단의 ADMIN > 권한관리 > 서버권한관리를 클릭합니다.
왼쪽 사용자 선택 화면에서 권한을 제어할 사용자 아이디를 선택합니다.
오른쪽 DB 서버 메뉴 권한 관리 화면에서 원하는 권한을 선택해 저장합니다.
Management 설정 확인
콘솔 왼쪽 메뉴에서 등록한 DB서버 이름을 클릭합니다.
메인 화면의 대시보드에서 서버 정보를 확인합니다.
- 초록색으로 표시되면 정상적으로 동작하고 있다는 의미입니다.
암호화 에이전트 설정
콘솔 상단의 ENCRYPT > 설정 > 암호화 에이전트 설정을 클릭합니다.
등록한 암호화 에이전트를 체크하고 [수정] 버튼을 클릭합니다.
전송 설정 수정 팝업에서 Agent 활성화 항목을 INACTIVE에서 ACTIVE로 변경합니다.
모니터링 클라이언트 설정
콘솔 오른쪽 상단의 HELP > eXperDB-Mornitoring Client를 클릭해 파일을 다운로드합니다.
다운로드 완료된 클라이언트 파일을 설치합니다.
설치가 완료되면 모니터링 클라이언트 프로그램이 활성화됩니다. [Server] 버튼을 클릭해 eXperDB 수집 서버 정보를 등록합니다.
- 수집 저장소 IP: [Management 서버 IP]
- 수집 저장소 Port: 25432
- 데이터베이스: [defaut는 experdb]
- 사용자: [defaut는 pgmon]
- 비밀번호: [수집 서버 사용자의 비밀번호]
- 수집 서버 사용자의 비밀번호는 Management 서버 설치 과정에서 설정한 값입니다.
[테스트] 버튼을 클릭해 연결이 정상적으로 되는지 확인합니다.
eXperDB 수집 서버 접속 정보를 입력한 뒤 [수정] 버튼을 클릭합니다.
- 수집서버 IP: [Management 서버 IP]
- 수집서버 Port: 5960
- 로그인합니다.
- 사용자 ID: admin
- 초기 비밀번호: experdb12#
- 비밀번호 변경 전까지는 ACG에 접속이 필요한 IP만 등록할 것을 권장합니다.
- 최초 로그인 시 비밀번호 변경 팝업 창이 나타나며, 해당 팝업 창에서 새로운 비밀번호로 반드시 변경해 주시기 바랍니다.
모니터링 대상 서버를 등록하기 위해 오른쪽 상단의 아이콘을 클릭한 뒤 다시 한번 비밀번호를 입력합니다.
[등록] 버튼을 클릭해 모니터링 대상 서버를 신규로 등록합니다.
대상 서버 등록이 완료되면 오른쪽 상단의 [적용] 버튼을 클릭합니다.
오른쪽 상단의 [+] 버튼을 클릭하면 수집 서버 리스트를 조회할 수 있습니다.
팝업에서 모니터링이 필요한 서버를 선택한 뒤 [등록] 버튼을 클릭합니다.
하단의 [저장], [시작] 버튼을 차례대로 클릭합니다.
- 지정한 DB 서버의 모니터링 대시보드에서 상태를 확인할 수 있습니다.
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
- 백업 수행 결과를 확인합니다.
- 백업 정보 확인 및 백업 데이터가 저장되는 디렉토리를 확인하는 명령어는 아래와 같습니다.
$ pg_rman show
$ cd $PGRBAK
- 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은 복구 이후 수행할 작업을 지정합니다.
- 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 백업 및 복구
- 고가용성 구성 시 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
- Standby DB 서버를 시작합니다.
$ pg_ctl start
- Standby 서버 정보를 repmgr 메타 데이터에 추가하는 명령어를 수행합니다.
$ repmgr standby register -F
- Standby DB의 Replication 상태를 확인합니다.
$ repmgr cluster show
DB2PG 활용 하기
DB2PG란?
- Source DB의 데이터를 eXperDB로 손쉽게 옮길 수 있도록 마이그레이션을 지원하는 툴입니다.
- 지원하는 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의 접속 정보 및 추가 옵션을 작성합니다.
- 작성한 설정 파일을 이용해 마이그레이션 실행 파일을 수행합니다.
$ cd /home/experdb/db2pg-v13.0.2-linux64
$ ./db2pg.sh -c db2pg.config
- DDL 추출 결과를 확인합니다.
$ cd /home/experdb/db2pg-v13.0.2-linux64/ddl
- 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의 접속 정보 및 추가 옵션을 작성합니다.
- 작성한 설정 파일을 이용해 마이그레이션 실행 파일을 수행합니다.
$ cd /home/experdb/db2pg-v13.0.2-linux64
$ ./db2pg.sh -c db2pg.config
- 마이그레이션 완료 시 Summary Info 내용을 확인합니다.
PostGIS 설치하기
- PostGIS란 데이터베이스에 GIS(지리정보 시스템) 정보를 저장할 수 있는 PostgreSQL의 확장 프로그램입니다.
터미널 프로그램(PuTTY 등)을 실행합니다.
데이터베이스에 접속한 뒤, PostGIS 설치를 위한 명령어를 실행합니다.
$ psql
experdb=# create extension postgis;
experdb=# \dx
- PostGIS가 정상적으로 설치되었는지 확인합니다.
experdb=# select name from pg_available_extensions where name like 'postgis%';