- 인쇄
- PDF
eXperDB Standard Edition 사용 가이드
- 인쇄
- PDF
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 사용 가이드를 참고해 주십시오.
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 사용 가이드를 참고해 주십시오.
보유하고 있는 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 규칙 설정에서 프로토콜, 접근 소스, 허용 포트를 입력하고 생성합니다.
- 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 설치 정보는 생성한 OS 계정에 접속하여 확인할 수 있습니다.
$ ps -ef | grep postgres
- 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] : <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 서버에서 ②, ③ 단계를 동일하게 진행합니다.
$ source $PGHOME/etc/repmgr_alias.sh
$ repmgrd_start
⑤ Active 서버에서 이중화 상태를 확인합니다.
$ repmgr service status
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로 손쉽게 옮길 수 있도록 마이그레이션을 지원하는 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의 접속 정보 및 추가 옵션을 작성합니다.
③ 작성한 설정 파일을 이용해 마이그레이션 실행 파일을 수행합니다.
$ 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%';
eXperMON 이용하기
eXperMON이란?
- CLI 환경에서 데이터베이스 점검 및 운영에 필요한 정보를 확인할 수 있습니다.
eXperMON 사용 방법
① 터미널 프로그램(PuTTY 등)을 실행합니다.
② eXperMON을 이용하기 위해 eXperMON 스크립트를 실행합니다.
$ cd /experdb/app/postgres/etc
$ ./eXpermon.sh
③ 표시된 eXperDB 목록 중 조회하고 싶은 데이터베이스와 User를 입력합니다. 입력하지 않을 경우 experdb/experdba를 보여줍니다.
- eXperMON에는 26가지 모듈이 있으며, Session, Object, Monitoring 총 세 가지 파트로 구성되어 있습니다.
- 확인하고 싶은 모듈의 번호를 입력하면 선택한 데이터베이스의 정보를 가져옵니다.
분류 | 모듈 | 설명 |
---|---|---|
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 종료 |