SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
BDR ?
백수, gt1000@gmail.com
자바 개발자
OTP 서버 개발, SI
보안 솔루션 < 보험사 < 일본 근무 < 리눅스 벤처
천정대
취미 여친 독거노인
2
00 순서
01. PostgreSQL 첫사랑
02. 이중화, DR 사고는 영화에서나?
03. PostgreSQL 10년만의 재회
04. Streaming Replication
05. 고객사 요구사항, BMT, POC
06. Streaming Replication Customizing
07. 실패
08. Bucard
09. BDR 이란?
10. BDR 특징
11. BDR 설치
12. 주의 해야 할점
13. 뭣이 중헌디?
14. 좋은 놈, 공부할 놈, 아쉬운 놈
15. 최근 소식
3
01 PostgreSQL 첫사랑
Oracle
대학교
컴퓨터
공학
알짜 레드햇
PostgreSQL
2000년
아이오
리눅스
Mandrake
4
02 이중화, DR 사고는 영화에서나?
이중화. 접근제어 솔루션
 아침, 저녁, 주말 예고없이 발생
 IT 업무 마비
 로그 삭제 후 업무 가능. 수개월 지속
오라클 장애(Archive Log 용량 부족)
 고객사의 무지, 비용
 솔루션 제공 업체의 전문성 부족
 임시 방편
서버 하드 디스크 증설
펑
5
02 이중화, DR 사고는 영화에서나?
DR. IDC 센터 화재(2014.4.20)
DR 훈련은 기본 기능만 체크
테스트 환경이 구축되지 않았음
DR 용 IDC 센터가 무용 지물
1달 넘게 업무 마비후
전
6
03 PostgreSQL 10년만의 재회
2014년 8월 보안회사 이직
 PostgreSQL 사용중
 공짜라는 이유만으로
 DBA 없음
 매뉴얼 부족
7
04 Streaming Replication
자
체
개
발
D
A
E
M
O
N
OS : Centos
C
Java
Postgres
Master
OS : Centos
Postgres
Slave
FailOver
사용자
사용자
사용자
사용자 C
Java
자체 개발한 이중화 Daemon 사용
 서버 1대에서 C엔진, WAS, DB, 배치등을 관리
 DB = Streaming Replication + Repmgr
8
05 고객사 요구사항, BMT, POC
• Multi Master
L4, 도메인 없이 IP로 구성
추가 비용 없이 공짜로....
• DR
애플리케이션 계층 복사는 없이 DB만 복제
Master, Slave1, Slave2 요구
• 이중화 장애
FailOver 시 원활한 전환이 잘 되지 않음
Master, Slave 전환시 Daemon 및 설정 파일 오류 발생
• 개선과 신규 개발을 동시에 진행
DR은 Master, Slave1, Slave2 구성에서 Slave2가 Slave1을 Master 설정
이중화 장애는 개선, Multi Master 는 근본적인 문제라 해결 불가능
9
05 고객사 요구사항, BMT, POC
10
Master
100.1.1.1
 Master 서버 pg_hba.conf
host replication postgres 100.1.1.1/32 trust
host replication postgres 100.1.1.2/32 trust
 Slave 서버 pg_hba.conf
host replication postgres 100.1.1.3/32 trust 추가
 Slave2 > pg_basebackup -h 100.1.1.2 -p 5432 -U postgres -D
/var/lib/pgsql/9.4.4/data --xlog --checkpoint=fast –progress
 Slave2 > recovery.conf
primary_conninfo = 'host=100.1.1.2 port=5432'
Slave
(DR Master)
100.1.1.2
Slave2
(DR)
100.1.1.3
Target Target
06 Streaming Replication Customizing
 Master, Slave 서버에 Postgresql Master용, Slave용 2가지 설정 파일을 보관
postgresql.conf_master, pg_hba.conf_master
postgresql.conf_slave, pg_hba.conf_slave
 FailOver 시 Daemon은 Master, Slave 용 파일을 복사해서 재가동
Master 일 경우 Slave 용 설정 파일을 복사
Slave 일 경우 Master 용 설정 파일을 복사
Postgres
Master
Master용 설정파일
Slave용 설정파일
Postgres
Slave
Master용 설정파일
Slave용 설정파일
FailOver
이
중
화
D
A
E
M
O
N
설정 파일 복사
설정 파일 복사
11
07 실패
왜?
PostgreSQL 를 반드시 중지 후 재가동 해야 함
접근제어, 패스워드 관리, VPN, OTP 솔루션
의 경우 1초 이상 중단시 업무 마비
2대 이상 Multi Master를 구성해야 하는 고객사
02
01
03
12
08 Bucardo
문제1
• 홈페이지 관리가 잘 되고 있지 않음
• Version Upgrade가 늦음
문제2
• 기능적인 제약 사항이 많음
• 설치 및 관리가 불편함
문제3
• 복제 관련 오류가 빈번히 발생
• 이중화 서비스가 불안정
Asynchronous PostgreSQL Replication System
• https://bucardo.org/wiki/Bucardo 최종 버전 5.4.1(현재)
13
09 BDR 이란?
Bi-Directional Replication
 2ndQuadrant와 열성적인 커뮤니티에 의해 만들어진 수준높은
첫번째 오픈 소스 Mutli-Master 복제 시스템
 지리적으로 분산된 클러스터용으로 디자인된 고성능 비동기
logical replication 이며 2~48 node를 지원함
 Triggers, Queue를 사용하지 않고 2ndQuadrant에서 개발된
WAL using the changeset extraction 메카니즘을 사용하므로서
Trigger-based 솔루션의 쓰기 확대 관련 오류를 피함
14
09 BDR 이란?
Concepts
bdr은 그룹에 속하는 다른 노드들로부터 변경을 수신하거나 사용자들에게 의해
직접 쓰여질 수 있음.
충돌 이슈를 방지하기 위해 Weakly coupled multi-master replication 기능 지원
Multi-master
로컬에 커밋되기 전에 다른 노드에 커밋되지 않음.
어떤 주어진 시간에 모든 노드에 대해 데이터가 동일하지 않을수 있으나 잠시 후 동
기화 됨. 동기에 대한 기능은 향후 제공 예정
asynchronous
logical replication은 각각의 row 값을 복제함.
데이터 블록에 대한 변경이 전송되는 물리(블록기반)복제와 다른 레벨
이전의 streaming, hot standby 는 physical(block-based)
logical
한 위치에서 다른 위치로 데이터를 복사하는 프로세스.
bdr은 shared-storage architecture 가 아님.
데이터 베이스에 충분한 공간을 가지고 다른 노드와 통신할 필요없이 query를 만족
시키는 모든 관련 인덱스등을 포함한 복사본을 보유하고 있음.
replication
15
09 BDR 이란?
16
 PostgreSQL 9.0(2010)
Streaming Repliction(physical)
 PostgreSQL 9.4(2014)
Logical Decoding(changeset extraction)
 physical
한 row를 테이블에 저장 한다면 insert 외에 모든 index entries를 기록
WAL의 insert 관련 byte/block 레벨의 모든 변화를 전송
 logical
WAL를 logical decoding(데이터 베이스 테이블의 영구 변화를 데이터
데이터 베이스 내부 상태에 대한 상세 지식없이 해석 가능하게,
알기 쉬운 포맷으로 추출하는 과정) 을 이용해서 storage level의 변화를
stream of tuples or SQL statements 로 전송
PostgreSQL Replication History
09 BDR 이란?
Logical Streaming Replication
17
User
WAL
Sender
WAL Database
Apply
User
WAL
Sender
WALDatabase
Apply
Master Master
10 BDR 특징
이중화 솔루션 기능 비교
18
10 BDR 특징
이중화 솔루션 성능 비교
19
11 설치
20
공통
http://bdr-project.org/docs/stable/installation-source.html 참조
 postgresql-bdr, bdr-plugin을 다운로드
 postgresql.conf 파일
shared_preload_libraries = ‘bdr’
 pg_ctl 시작후 아래 구문 실행
CREATE EXTENSION btree_gist
CREATE EXTENSION bdr
bdr 환경설정
Master1
복제 그룹 생성
SELECT bdr.bdr_group_create(
local_node_name := ‘test1',
node_external_dsn := 'host=192.100.1.1 port=5432 dbname=gt1000‘ );
Master2
복제 그룹에 참여
SELECT bdr.bdr_group_join(
local_node_name := ‘test2',
node_external_dsn := 'host=192.100.1.2 port=5432 dbname=gt1000',
join_using_dsn := 'host=192.100.1.1 port=5432 dbname=gt1000‘ );
12 주의 해야 할 점
21
Node Management
group_join 에 참여한 노드는 이름이나 ip가 같으면 삭제 후 등록 불가
3 nodes 구성시 3번째 node의 status 가 i 로 표시됨, 복제는 잘됨
DDL Replication
복제되지 않거나, 금지, 제약이 있는 DDL이 있음
예) Alter Table 구문 이용시 default 값 사용 불가
Multi-master conflicts
분산 트랜잭션 매니저, 락 매니저를 지원하지 않음
예) Primary Key or Unique 충돌시 last-update-wins 적용
Global Sequences
오직 INCREMENT 1 만 지원, minvalue, maxvalue, cache 등 미지원
타입이 전부 bigserial(bigint)로 됨, 테이블 타입도 동일
예) create sequence test_seq USING bdr
Repliction Sets
bdr에 의해 만들어 지고 모든 테이블은 기본적으로 여기에 속함
table 단위, insert, update, delete 에 대한 복사 여부 설정가능
12 주의 해야 할 점
22
DataBase
시퀀스
1, 2, 3, 4....
Master1
DataBase
시퀀스
100001, 100002, 100003..
Master2
1 홍길동 OTP 인증 2016.10.15 15:33:30.111111111
100001 허준 OTP 검증 2016.10.15 15:33:31.111111111
100002 gt1000 OTP 생성 2016.10.15 15:33:32.111111111
2 장금이 OTP 생성 2016.10.15 15:33:33.111111111
ALTER SEQUENCE seq_user_group START WITH 30;
ALTER TABLE user ADD COLUMN otp_code varchar(8)
DEFAULT ‘00000000' NOT NULL;
사용불가
13 뭣이 중헌디????
Oracle과 같은 기능은 불가능
ALTER SEQUENCE xxx START WITH
 Sequence 대신 max + 1 사용
 관리자 UI 화면 또는 Script를 통한 sequence 값 증가
애플리케이션 보정을 통한 보완
Transaction Conflict에 따른 데이터 정합성
 중요 테이블의 경우 관리자 UI 화면에서 테이블
데이터 수를 Master, Slave 상호 비교하여 보정
23
13 뭣이 중헌디????
24
>> 시퀀스 보정
xx_seq시퀀스명
적용
솔루션 관리자 UI 화면
>> 테이블 동기화 확인 및 보정
서버 IP 테이블명 서버 IP 테이블명
100.1.1.1 user_info(10) 100.1.1.2 user_info(12)
100.1.1.1 user_group(27) 100.1.1.2 user_group(27)
100.1.1.1 policy(3) 100.1.1.2 policy(3)
보정
보정
보정
클릭시 for 문으로
SELECT nextval(‘xx_seq')
100번 실행하여
Sequence를 증가 시킴
100시퀀스 증가값
14 좋은 놈, 공부할 놈, 아쉬운 놈
 Active, Standby 이중화 전환이 용이
서버 구성은 Active, Standby. Database 구성은 Master, Master 로 구성시
네트웍 불안정으로 인한 불규칙적인 장애 발생시 지연시간 없는
Active, Standby 서버간 전환이 가능 (비권장)
 Active, Active, Active… N 구성시
Load Balancing, 세션 클러스트링 없는 IP 개별 접속 N개 Active 서버 구성이 용이
 Selective Repliction
선택적 복제가 가능(이중화 테이블 복제하지 않음)
25
좋은 놈
Server1 Server2
VIP
Active Standby
heartbeat network
14 좋은 놈, 공부할 놈, 아쉬운 놈
 서버 IP 변경시
가능 여부를 테스트 해 보지 않았음
 장애로 인한 서버 교체시
master 서버 하드 장애 등의 이유로 교체가 필요한 경우,
중단 후 복구 기능이 필요.
장기간 방치시 동기화 시도 관련 오류 문제가 발생할 수도
있음
* There is no complex election of a new master if a node goes down or network
problems arise. There is no wait for failover.
Each node is always a master and always directly writeable.
26
공부할 놈(운영 업무)
14 좋은 놈, 공부할 놈, 아쉬운 놈
 퇴사
 국내외 구축 사례 비공개
 매뉴얼 빈약
 2ndQuadrant 계약 요구
27
 DBA가 아닌 개발자로서의 전문성 부족
 타 솔루션 지식 부족, MySQL 과의 장,단점
 Oracle 수준을 요구함. 중, 소 기업 타켓
 같이 번역하고 테스트 할 사람이 필요
아쉬운 놈
15 최근소식
PostgreSQL 9.6 에는 Global Sequences
문제를 다른 방식으로 접근할 예정
http://blog.2ndquadrant.com/bdr-is-
coming-to-postgresql-9-6/
The years of effort we at 2ndQuadrant have put into getting the series of patches from BDR into
PostgreSQL core have paid off. As of PostgreSQL 9.6, the only major patch that Postgres-BDR on 9.4
has that PostgreSQL core doesn’t, is the sequence access method patch that powers global
sequences.
This means that Postgres-BDR on 9.6 will not support global sequences, at least not the same
way they exist in 9.4. The 9.6 version will incorporate a different approach to handling
sequences on distributed systems, and in the process address some issues that arose when
using global sequences in production.
28

Mais conteúdo relacionado

Mais procurados

PostgreSQL 공간관리 살펴보기 이근오
PostgreSQL 공간관리 살펴보기 이근오PostgreSQL 공간관리 살펴보기 이근오
PostgreSQL 공간관리 살펴보기 이근오PgDay.Seoul
 
Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0Mydbops
 
Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우PgDay.Seoul
 
PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep InternalEXEM
 
MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術yoku0825
 
[Pgday.Seoul 2021] 1. 예제로 살펴보는 포스트그레스큐엘의 독특한 SQL
[Pgday.Seoul 2021] 1. 예제로 살펴보는 포스트그레스큐엘의 독특한 SQL[Pgday.Seoul 2021] 1. 예제로 살펴보는 포스트그레스큐엘의 독특한 SQL
[Pgday.Seoul 2021] 1. 예제로 살펴보는 포스트그레스큐엘의 독특한 SQLPgDay.Seoul
 
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재PgDay.Seoul
 
[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오
[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오
[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오PgDay.Seoul
 
[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자
[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자
[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자PgDay.Seoul
 
PostgreSQL- An Introduction
PostgreSQL- An IntroductionPostgreSQL- An Introduction
PostgreSQL- An IntroductionSmita Prasad
 
Replication Troubleshooting in Classic VS GTID
Replication Troubleshooting in Classic VS GTIDReplication Troubleshooting in Classic VS GTID
Replication Troubleshooting in Classic VS GTIDMydbops
 
PostgreSQL and JDBC: striving for high performance
PostgreSQL and JDBC: striving for high performancePostgreSQL and JDBC: striving for high performance
PostgreSQL and JDBC: striving for high performanceVladimir Sitnikov
 
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015PostgreSQL-Consulting
 
What is new in PostgreSQL 14?
What is new in PostgreSQL 14?What is new in PostgreSQL 14?
What is new in PostgreSQL 14?Mydbops
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 
ProxySQL for MySQL
ProxySQL for MySQLProxySQL for MySQL
ProxySQL for MySQLMydbops
 
MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바NeoClova
 
Intro ProxySQL
Intro ProxySQLIntro ProxySQL
Intro ProxySQLI Goo Lee
 

Mais procurados (20)

PostgreSQL 공간관리 살펴보기 이근오
PostgreSQL 공간관리 살펴보기 이근오PostgreSQL 공간관리 살펴보기 이근오
PostgreSQL 공간관리 살펴보기 이근오
 
Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0
 
Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우
 
PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep Internal
 
MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術
 
[Pgday.Seoul 2021] 1. 예제로 살펴보는 포스트그레스큐엘의 독특한 SQL
[Pgday.Seoul 2021] 1. 예제로 살펴보는 포스트그레스큐엘의 독특한 SQL[Pgday.Seoul 2021] 1. 예제로 살펴보는 포스트그레스큐엘의 독특한 SQL
[Pgday.Seoul 2021] 1. 예제로 살펴보는 포스트그레스큐엘의 독특한 SQL
 
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
 
[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오
[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오
[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오
 
[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자
[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자
[Pgday.Seoul 2017] 7. PostgreSQL DB Tuning 기업사례 - 송춘자
 
PostgreSQL- An Introduction
PostgreSQL- An IntroductionPostgreSQL- An Introduction
PostgreSQL- An Introduction
 
Replication Troubleshooting in Classic VS GTID
Replication Troubleshooting in Classic VS GTIDReplication Troubleshooting in Classic VS GTID
Replication Troubleshooting in Classic VS GTID
 
PostgreSQL and JDBC: striving for high performance
PostgreSQL and JDBC: striving for high performancePostgreSQL and JDBC: striving for high performance
PostgreSQL and JDBC: striving for high performance
 
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
 
What is new in PostgreSQL 14?
What is new in PostgreSQL 14?What is new in PostgreSQL 14?
What is new in PostgreSQL 14?
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
Get to know PostgreSQL!
Get to know PostgreSQL!Get to know PostgreSQL!
Get to know PostgreSQL!
 
How to Design Indexes, Really
How to Design Indexes, ReallyHow to Design Indexes, Really
How to Design Indexes, Really
 
ProxySQL for MySQL
ProxySQL for MySQLProxySQL for MySQL
ProxySQL for MySQL
 
MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바
 
Intro ProxySQL
Intro ProxySQLIntro ProxySQL
Intro ProxySQL
 

Destaque

Postgres-BDR with Google Cloud Platform
Postgres-BDR with Google Cloud PlatformPostgres-BDR with Google Cloud Platform
Postgres-BDR with Google Cloud PlatformSungJae Yun
 
Lg Cns System Management Improvement(Summary)
Lg Cns System Management Improvement(Summary)Lg Cns System Management Improvement(Summary)
Lg Cns System Management Improvement(Summary)xpert13
 
[2015 Oracle Cloud Summit] 8. Finance Cloud -업무역할별 Dashboard를 통한 재무 통찰력 강화
[2015 Oracle Cloud Summit] 8. Finance Cloud -업무역할별 Dashboard를 통한 재무 통찰력 강화[2015 Oracle Cloud Summit] 8. Finance Cloud -업무역할별 Dashboard를 통한 재무 통찰력 강화
[2015 Oracle Cloud Summit] 8. Finance Cloud -업무역할별 Dashboard를 통한 재무 통찰력 강화Oracle Korea
 
net helper 자산관리제안서
net helper 자산관리제안서 net helper 자산관리제안서
net helper 자산관리제안서 시온시큐리티
 
Managing multi-version applications in cics
Managing multi-version applications in cicsManaging multi-version applications in cics
Managing multi-version applications in cicsMatthew Webster
 
Vancouver ProductTank May 2015
Vancouver ProductTank May 2015Vancouver ProductTank May 2015
Vancouver ProductTank May 2015Stewart Rogers
 
PGDay.Seoul 2016 lightingtalk
PGDay.Seoul 2016 lightingtalkPGDay.Seoul 2016 lightingtalk
PGDay.Seoul 2016 lightingtalkhyeongchae lee
 
PostgreSQL 9.6 새 기능 소개
PostgreSQL 9.6 새 기능 소개PostgreSQL 9.6 새 기능 소개
PostgreSQL 9.6 새 기능 소개PgDay.Seoul
 
PostgreSql vaccum
PostgreSql vaccumPostgreSql vaccum
PostgreSql vaccum승범 현
 
기업혁신을 위한 클라우드 여정 20141104 이영훈
기업혁신을 위한 클라우드 여정 20141104 이영훈기업혁신을 위한 클라우드 여정 20141104 이영훈
기업혁신을 위한 클라우드 여정 20141104 이영훈Software in Life
 
ADVANCED WAY OF DR MARKETING
ADVANCED WAY OF DR MARKETING ADVANCED WAY OF DR MARKETING
ADVANCED WAY OF DR MARKETING Wisebirds
 
PostgreSQL performance improvements in 9.5 and 9.6
PostgreSQL performance improvements in 9.5 and 9.6PostgreSQL performance improvements in 9.5 and 9.6
PostgreSQL performance improvements in 9.5 and 9.6Tomas Vondra
 
An Overview of Scenario Planning - Introduction, Overview and Examples
An Overview of Scenario Planning - Introduction, Overview and ExamplesAn Overview of Scenario Planning - Introduction, Overview and Examples
An Overview of Scenario Planning - Introduction, Overview and ExamplesAxiom EPM
 
Scenario Planning (an Introduction)
Scenario Planning (an Introduction)Scenario Planning (an Introduction)
Scenario Planning (an Introduction)Steve Puma
 
A Guide to Scenario Planning
A Guide to Scenario PlanningA Guide to Scenario Planning
A Guide to Scenario PlanningOlivier Serrat
 
Scenario Analysis: Planning for Uncertain Futures
Scenario Analysis:  Planning for Uncertain FuturesScenario Analysis:  Planning for Uncertain Futures
Scenario Analysis: Planning for Uncertain FuturesAugust Jackson
 
The Successful Product Manager
The Successful Product ManagerThe Successful Product Manager
The Successful Product ManagerChris Cummings
 
A Product Manager's Job
A Product Manager's JobA Product Manager's Job
A Product Manager's Jobjoshelman
 

Destaque (19)

Postgres-BDR with Google Cloud Platform
Postgres-BDR with Google Cloud PlatformPostgres-BDR with Google Cloud Platform
Postgres-BDR with Google Cloud Platform
 
Lg Cns System Management Improvement(Summary)
Lg Cns System Management Improvement(Summary)Lg Cns System Management Improvement(Summary)
Lg Cns System Management Improvement(Summary)
 
[2015 Oracle Cloud Summit] 8. Finance Cloud -업무역할별 Dashboard를 통한 재무 통찰력 강화
[2015 Oracle Cloud Summit] 8. Finance Cloud -업무역할별 Dashboard를 통한 재무 통찰력 강화[2015 Oracle Cloud Summit] 8. Finance Cloud -업무역할별 Dashboard를 통한 재무 통찰력 강화
[2015 Oracle Cloud Summit] 8. Finance Cloud -업무역할별 Dashboard를 통한 재무 통찰력 강화
 
net helper 자산관리제안서
net helper 자산관리제안서 net helper 자산관리제안서
net helper 자산관리제안서
 
Managing multi-version applications in cics
Managing multi-version applications in cicsManaging multi-version applications in cics
Managing multi-version applications in cics
 
Vancouver ProductTank May 2015
Vancouver ProductTank May 2015Vancouver ProductTank May 2015
Vancouver ProductTank May 2015
 
PGDay.Seoul 2016 lightingtalk
PGDay.Seoul 2016 lightingtalkPGDay.Seoul 2016 lightingtalk
PGDay.Seoul 2016 lightingtalk
 
PostgreSQL 9.6 새 기능 소개
PostgreSQL 9.6 새 기능 소개PostgreSQL 9.6 새 기능 소개
PostgreSQL 9.6 새 기능 소개
 
PostgreSql vaccum
PostgreSql vaccumPostgreSql vaccum
PostgreSql vaccum
 
기업혁신을 위한 클라우드 여정 20141104 이영훈
기업혁신을 위한 클라우드 여정 20141104 이영훈기업혁신을 위한 클라우드 여정 20141104 이영훈
기업혁신을 위한 클라우드 여정 20141104 이영훈
 
클라우드 도입 전략과 프로세스(강연자료)
클라우드 도입 전략과 프로세스(강연자료)클라우드 도입 전략과 프로세스(강연자료)
클라우드 도입 전략과 프로세스(강연자료)
 
ADVANCED WAY OF DR MARKETING
ADVANCED WAY OF DR MARKETING ADVANCED WAY OF DR MARKETING
ADVANCED WAY OF DR MARKETING
 
PostgreSQL performance improvements in 9.5 and 9.6
PostgreSQL performance improvements in 9.5 and 9.6PostgreSQL performance improvements in 9.5 and 9.6
PostgreSQL performance improvements in 9.5 and 9.6
 
An Overview of Scenario Planning - Introduction, Overview and Examples
An Overview of Scenario Planning - Introduction, Overview and ExamplesAn Overview of Scenario Planning - Introduction, Overview and Examples
An Overview of Scenario Planning - Introduction, Overview and Examples
 
Scenario Planning (an Introduction)
Scenario Planning (an Introduction)Scenario Planning (an Introduction)
Scenario Planning (an Introduction)
 
A Guide to Scenario Planning
A Guide to Scenario PlanningA Guide to Scenario Planning
A Guide to Scenario Planning
 
Scenario Analysis: Planning for Uncertain Futures
Scenario Analysis:  Planning for Uncertain FuturesScenario Analysis:  Planning for Uncertain Futures
Scenario Analysis: Planning for Uncertain Futures
 
The Successful Product Manager
The Successful Product ManagerThe Successful Product Manager
The Successful Product Manager
 
A Product Manager's Job
A Product Manager's JobA Product Manager's Job
A Product Manager's Job
 

Semelhante a Pgday bdr 천정대

Redis Overview
Redis OverviewRedis Overview
Redis Overviewkalzas
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드cranbe95
 
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)Amazon Web Services Korea
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestI Goo Lee
 
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트OpenStack Korea Community
 
[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기NHN FORWARD
 
안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계Leonardo YongUk Kim
 
Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Samsung Electronics
 
Redis trouble shooting
Redis trouble shootingRedis trouble shooting
Redis trouble shootingDaeMyung Kang
 
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016Sang Don Kim
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxNeoClova
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드KwangSeob Jeong
 
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arcNAVER D2
 
MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용I Goo Lee
 
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...Amazon Web Services Korea
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기Jongwon Kim
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기YoungSu Son
 
Let's Play with Data Safely
Let's Play with Data SafelyLet's Play with Data Safely
Let's Play with Data SafelyDataya Nolja
 

Semelhante a Pgday bdr 천정대 (20)

Redis Overview
Redis OverviewRedis Overview
Redis Overview
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
 
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software Test
 
Redis
RedisRedis
Redis
 
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
 
[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기
 
안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계
 
Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900
 
Redis trouble shooting
Redis trouble shootingRedis trouble shooting
Redis trouble shooting
 
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptx
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드
 
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
 
MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용
 
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
 
Let's Play with Data Safely
Let's Play with Data SafelyLet's Play with Data Safely
Let's Play with Data Safely
 

Mais de PgDay.Seoul

[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google CloudPgDay.Seoul
 
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기PgDay.Seoul
 
[Pgday.Seoul 2019] AppOS 고성능 I/O 확장 모듈로 성능 10배 향상시키기
[Pgday.Seoul 2019] AppOS 고성능 I/O 확장 모듈로 성능 10배 향상시키기[Pgday.Seoul 2019] AppOS 고성능 I/O 확장 모듈로 성능 10배 향상시키기
[Pgday.Seoul 2019] AppOS 고성능 I/O 확장 모듈로 성능 10배 향상시키기PgDay.Seoul
 
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스PgDay.Seoul
 
[Pgday.Seoul 2019] Advanced FDW
[Pgday.Seoul 2019] Advanced FDW[Pgday.Seoul 2019] Advanced FDW
[Pgday.Seoul 2019] Advanced FDWPgDay.Seoul
 
[Pgday.Seoul 2018] PostgreSQL 11 새 기능 소개
[Pgday.Seoul 2018]  PostgreSQL 11 새 기능 소개[Pgday.Seoul 2018]  PostgreSQL 11 새 기능 소개
[Pgday.Seoul 2018] PostgreSQL 11 새 기능 소개PgDay.Seoul
 
[Pgday.Seoul 2018] PostgreSQL 성능을 위해 개발된 라이브러리 OS 소개 apposha
[Pgday.Seoul 2018]  PostgreSQL 성능을 위해 개발된 라이브러리 OS 소개 apposha[Pgday.Seoul 2018]  PostgreSQL 성능을 위해 개발된 라이브러리 OS 소개 apposha
[Pgday.Seoul 2018] PostgreSQL 성능을 위해 개발된 라이브러리 OS 소개 apposhaPgDay.Seoul
 
[Pgday.Seoul 2018] PostgreSQL Authentication with FreeIPA
[Pgday.Seoul 2018]  PostgreSQL Authentication with FreeIPA[Pgday.Seoul 2018]  PostgreSQL Authentication with FreeIPA
[Pgday.Seoul 2018] PostgreSQL Authentication with FreeIPAPgDay.Seoul
 
[Pgday.Seoul 2018] AWS Cloud 환경에서 PostgreSQL 구축하기
[Pgday.Seoul 2018]  AWS Cloud 환경에서 PostgreSQL 구축하기[Pgday.Seoul 2018]  AWS Cloud 환경에서 PostgreSQL 구축하기
[Pgday.Seoul 2018] AWS Cloud 환경에서 PostgreSQL 구축하기PgDay.Seoul
 
[Pgday.Seoul 2018] Greenplum의 노드 분산 설계
[Pgday.Seoul 2018]  Greenplum의 노드 분산 설계[Pgday.Seoul 2018]  Greenplum의 노드 분산 설계
[Pgday.Seoul 2018] Greenplum의 노드 분산 설계PgDay.Seoul
 
[Pgday.Seoul 2018] replacing oracle with edb postgres
[Pgday.Seoul 2018] replacing oracle with edb postgres[Pgday.Seoul 2018] replacing oracle with edb postgres
[Pgday.Seoul 2018] replacing oracle with edb postgresPgDay.Seoul
 
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우PgDay.Seoul
 
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종PgDay.Seoul
 
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진PgDay.Seoul
 
[Pgday.Seoul 2017] 4. Composite Type/JSON 파라미터를 활용한 TVP구현(with C#, JAVA) - 지현명
[Pgday.Seoul 2017] 4. Composite Type/JSON 파라미터를 활용한 TVP구현(with C#, JAVA) - 지현명[Pgday.Seoul 2017] 4. Composite Type/JSON 파라미터를 활용한 TVP구현(with C#, JAVA) - 지현명
[Pgday.Seoul 2017] 4. Composite Type/JSON 파라미터를 활용한 TVP구현(with C#, JAVA) - 지현명PgDay.Seoul
 
pg_hba.conf 이야기
pg_hba.conf 이야기pg_hba.conf 이야기
pg_hba.conf 이야기PgDay.Seoul
 
Pg report 20161010_02
Pg report 20161010_02Pg report 20161010_02
Pg report 20161010_02PgDay.Seoul
 

Mais de PgDay.Seoul (17)

[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud
 
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기
 
[Pgday.Seoul 2019] AppOS 고성능 I/O 확장 모듈로 성능 10배 향상시키기
[Pgday.Seoul 2019] AppOS 고성능 I/O 확장 모듈로 성능 10배 향상시키기[Pgday.Seoul 2019] AppOS 고성능 I/O 확장 모듈로 성능 10배 향상시키기
[Pgday.Seoul 2019] AppOS 고성능 I/O 확장 모듈로 성능 10배 향상시키기
 
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
 
[Pgday.Seoul 2019] Advanced FDW
[Pgday.Seoul 2019] Advanced FDW[Pgday.Seoul 2019] Advanced FDW
[Pgday.Seoul 2019] Advanced FDW
 
[Pgday.Seoul 2018] PostgreSQL 11 새 기능 소개
[Pgday.Seoul 2018]  PostgreSQL 11 새 기능 소개[Pgday.Seoul 2018]  PostgreSQL 11 새 기능 소개
[Pgday.Seoul 2018] PostgreSQL 11 새 기능 소개
 
[Pgday.Seoul 2018] PostgreSQL 성능을 위해 개발된 라이브러리 OS 소개 apposha
[Pgday.Seoul 2018]  PostgreSQL 성능을 위해 개발된 라이브러리 OS 소개 apposha[Pgday.Seoul 2018]  PostgreSQL 성능을 위해 개발된 라이브러리 OS 소개 apposha
[Pgday.Seoul 2018] PostgreSQL 성능을 위해 개발된 라이브러리 OS 소개 apposha
 
[Pgday.Seoul 2018] PostgreSQL Authentication with FreeIPA
[Pgday.Seoul 2018]  PostgreSQL Authentication with FreeIPA[Pgday.Seoul 2018]  PostgreSQL Authentication with FreeIPA
[Pgday.Seoul 2018] PostgreSQL Authentication with FreeIPA
 
[Pgday.Seoul 2018] AWS Cloud 환경에서 PostgreSQL 구축하기
[Pgday.Seoul 2018]  AWS Cloud 환경에서 PostgreSQL 구축하기[Pgday.Seoul 2018]  AWS Cloud 환경에서 PostgreSQL 구축하기
[Pgday.Seoul 2018] AWS Cloud 환경에서 PostgreSQL 구축하기
 
[Pgday.Seoul 2018] Greenplum의 노드 분산 설계
[Pgday.Seoul 2018]  Greenplum의 노드 분산 설계[Pgday.Seoul 2018]  Greenplum의 노드 분산 설계
[Pgday.Seoul 2018] Greenplum의 노드 분산 설계
 
[Pgday.Seoul 2018] replacing oracle with edb postgres
[Pgday.Seoul 2018] replacing oracle with edb postgres[Pgday.Seoul 2018] replacing oracle with edb postgres
[Pgday.Seoul 2018] replacing oracle with edb postgres
 
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우
 
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
 
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
 
[Pgday.Seoul 2017] 4. Composite Type/JSON 파라미터를 활용한 TVP구현(with C#, JAVA) - 지현명
[Pgday.Seoul 2017] 4. Composite Type/JSON 파라미터를 활용한 TVP구현(with C#, JAVA) - 지현명[Pgday.Seoul 2017] 4. Composite Type/JSON 파라미터를 활용한 TVP구현(with C#, JAVA) - 지현명
[Pgday.Seoul 2017] 4. Composite Type/JSON 파라미터를 활용한 TVP구현(with C#, JAVA) - 지현명
 
pg_hba.conf 이야기
pg_hba.conf 이야기pg_hba.conf 이야기
pg_hba.conf 이야기
 
Pg report 20161010_02
Pg report 20161010_02Pg report 20161010_02
Pg report 20161010_02
 

Pgday bdr 천정대

  • 2. 백수, gt1000@gmail.com 자바 개발자 OTP 서버 개발, SI 보안 솔루션 < 보험사 < 일본 근무 < 리눅스 벤처 천정대 취미 여친 독거노인 2
  • 3. 00 순서 01. PostgreSQL 첫사랑 02. 이중화, DR 사고는 영화에서나? 03. PostgreSQL 10년만의 재회 04. Streaming Replication 05. 고객사 요구사항, BMT, POC 06. Streaming Replication Customizing 07. 실패 08. Bucard 09. BDR 이란? 10. BDR 특징 11. BDR 설치 12. 주의 해야 할점 13. 뭣이 중헌디? 14. 좋은 놈, 공부할 놈, 아쉬운 놈 15. 최근 소식 3
  • 4. 01 PostgreSQL 첫사랑 Oracle 대학교 컴퓨터 공학 알짜 레드햇 PostgreSQL 2000년 아이오 리눅스 Mandrake 4
  • 5. 02 이중화, DR 사고는 영화에서나? 이중화. 접근제어 솔루션  아침, 저녁, 주말 예고없이 발생  IT 업무 마비  로그 삭제 후 업무 가능. 수개월 지속 오라클 장애(Archive Log 용량 부족)  고객사의 무지, 비용  솔루션 제공 업체의 전문성 부족  임시 방편 서버 하드 디스크 증설 펑 5
  • 6. 02 이중화, DR 사고는 영화에서나? DR. IDC 센터 화재(2014.4.20) DR 훈련은 기본 기능만 체크 테스트 환경이 구축되지 않았음 DR 용 IDC 센터가 무용 지물 1달 넘게 업무 마비후 전 6
  • 7. 03 PostgreSQL 10년만의 재회 2014년 8월 보안회사 이직  PostgreSQL 사용중  공짜라는 이유만으로  DBA 없음  매뉴얼 부족 7
  • 8. 04 Streaming Replication 자 체 개 발 D A E M O N OS : Centos C Java Postgres Master OS : Centos Postgres Slave FailOver 사용자 사용자 사용자 사용자 C Java 자체 개발한 이중화 Daemon 사용  서버 1대에서 C엔진, WAS, DB, 배치등을 관리  DB = Streaming Replication + Repmgr 8
  • 9. 05 고객사 요구사항, BMT, POC • Multi Master L4, 도메인 없이 IP로 구성 추가 비용 없이 공짜로.... • DR 애플리케이션 계층 복사는 없이 DB만 복제 Master, Slave1, Slave2 요구 • 이중화 장애 FailOver 시 원활한 전환이 잘 되지 않음 Master, Slave 전환시 Daemon 및 설정 파일 오류 발생 • 개선과 신규 개발을 동시에 진행 DR은 Master, Slave1, Slave2 구성에서 Slave2가 Slave1을 Master 설정 이중화 장애는 개선, Multi Master 는 근본적인 문제라 해결 불가능 9
  • 10. 05 고객사 요구사항, BMT, POC 10 Master 100.1.1.1  Master 서버 pg_hba.conf host replication postgres 100.1.1.1/32 trust host replication postgres 100.1.1.2/32 trust  Slave 서버 pg_hba.conf host replication postgres 100.1.1.3/32 trust 추가  Slave2 > pg_basebackup -h 100.1.1.2 -p 5432 -U postgres -D /var/lib/pgsql/9.4.4/data --xlog --checkpoint=fast –progress  Slave2 > recovery.conf primary_conninfo = 'host=100.1.1.2 port=5432' Slave (DR Master) 100.1.1.2 Slave2 (DR) 100.1.1.3 Target Target
  • 11. 06 Streaming Replication Customizing  Master, Slave 서버에 Postgresql Master용, Slave용 2가지 설정 파일을 보관 postgresql.conf_master, pg_hba.conf_master postgresql.conf_slave, pg_hba.conf_slave  FailOver 시 Daemon은 Master, Slave 용 파일을 복사해서 재가동 Master 일 경우 Slave 용 설정 파일을 복사 Slave 일 경우 Master 용 설정 파일을 복사 Postgres Master Master용 설정파일 Slave용 설정파일 Postgres Slave Master용 설정파일 Slave용 설정파일 FailOver 이 중 화 D A E M O N 설정 파일 복사 설정 파일 복사 11
  • 12. 07 실패 왜? PostgreSQL 를 반드시 중지 후 재가동 해야 함 접근제어, 패스워드 관리, VPN, OTP 솔루션 의 경우 1초 이상 중단시 업무 마비 2대 이상 Multi Master를 구성해야 하는 고객사 02 01 03 12
  • 13. 08 Bucardo 문제1 • 홈페이지 관리가 잘 되고 있지 않음 • Version Upgrade가 늦음 문제2 • 기능적인 제약 사항이 많음 • 설치 및 관리가 불편함 문제3 • 복제 관련 오류가 빈번히 발생 • 이중화 서비스가 불안정 Asynchronous PostgreSQL Replication System • https://bucardo.org/wiki/Bucardo 최종 버전 5.4.1(현재) 13
  • 14. 09 BDR 이란? Bi-Directional Replication  2ndQuadrant와 열성적인 커뮤니티에 의해 만들어진 수준높은 첫번째 오픈 소스 Mutli-Master 복제 시스템  지리적으로 분산된 클러스터용으로 디자인된 고성능 비동기 logical replication 이며 2~48 node를 지원함  Triggers, Queue를 사용하지 않고 2ndQuadrant에서 개발된 WAL using the changeset extraction 메카니즘을 사용하므로서 Trigger-based 솔루션의 쓰기 확대 관련 오류를 피함 14
  • 15. 09 BDR 이란? Concepts bdr은 그룹에 속하는 다른 노드들로부터 변경을 수신하거나 사용자들에게 의해 직접 쓰여질 수 있음. 충돌 이슈를 방지하기 위해 Weakly coupled multi-master replication 기능 지원 Multi-master 로컬에 커밋되기 전에 다른 노드에 커밋되지 않음. 어떤 주어진 시간에 모든 노드에 대해 데이터가 동일하지 않을수 있으나 잠시 후 동 기화 됨. 동기에 대한 기능은 향후 제공 예정 asynchronous logical replication은 각각의 row 값을 복제함. 데이터 블록에 대한 변경이 전송되는 물리(블록기반)복제와 다른 레벨 이전의 streaming, hot standby 는 physical(block-based) logical 한 위치에서 다른 위치로 데이터를 복사하는 프로세스. bdr은 shared-storage architecture 가 아님. 데이터 베이스에 충분한 공간을 가지고 다른 노드와 통신할 필요없이 query를 만족 시키는 모든 관련 인덱스등을 포함한 복사본을 보유하고 있음. replication 15
  • 16. 09 BDR 이란? 16  PostgreSQL 9.0(2010) Streaming Repliction(physical)  PostgreSQL 9.4(2014) Logical Decoding(changeset extraction)  physical 한 row를 테이블에 저장 한다면 insert 외에 모든 index entries를 기록 WAL의 insert 관련 byte/block 레벨의 모든 변화를 전송  logical WAL를 logical decoding(데이터 베이스 테이블의 영구 변화를 데이터 데이터 베이스 내부 상태에 대한 상세 지식없이 해석 가능하게, 알기 쉬운 포맷으로 추출하는 과정) 을 이용해서 storage level의 변화를 stream of tuples or SQL statements 로 전송 PostgreSQL Replication History
  • 17. 09 BDR 이란? Logical Streaming Replication 17 User WAL Sender WAL Database Apply User WAL Sender WALDatabase Apply Master Master
  • 18. 10 BDR 특징 이중화 솔루션 기능 비교 18
  • 19. 10 BDR 특징 이중화 솔루션 성능 비교 19
  • 20. 11 설치 20 공통 http://bdr-project.org/docs/stable/installation-source.html 참조  postgresql-bdr, bdr-plugin을 다운로드  postgresql.conf 파일 shared_preload_libraries = ‘bdr’  pg_ctl 시작후 아래 구문 실행 CREATE EXTENSION btree_gist CREATE EXTENSION bdr bdr 환경설정 Master1 복제 그룹 생성 SELECT bdr.bdr_group_create( local_node_name := ‘test1', node_external_dsn := 'host=192.100.1.1 port=5432 dbname=gt1000‘ ); Master2 복제 그룹에 참여 SELECT bdr.bdr_group_join( local_node_name := ‘test2', node_external_dsn := 'host=192.100.1.2 port=5432 dbname=gt1000', join_using_dsn := 'host=192.100.1.1 port=5432 dbname=gt1000‘ );
  • 21. 12 주의 해야 할 점 21 Node Management group_join 에 참여한 노드는 이름이나 ip가 같으면 삭제 후 등록 불가 3 nodes 구성시 3번째 node의 status 가 i 로 표시됨, 복제는 잘됨 DDL Replication 복제되지 않거나, 금지, 제약이 있는 DDL이 있음 예) Alter Table 구문 이용시 default 값 사용 불가 Multi-master conflicts 분산 트랜잭션 매니저, 락 매니저를 지원하지 않음 예) Primary Key or Unique 충돌시 last-update-wins 적용 Global Sequences 오직 INCREMENT 1 만 지원, minvalue, maxvalue, cache 등 미지원 타입이 전부 bigserial(bigint)로 됨, 테이블 타입도 동일 예) create sequence test_seq USING bdr Repliction Sets bdr에 의해 만들어 지고 모든 테이블은 기본적으로 여기에 속함 table 단위, insert, update, delete 에 대한 복사 여부 설정가능
  • 22. 12 주의 해야 할 점 22 DataBase 시퀀스 1, 2, 3, 4.... Master1 DataBase 시퀀스 100001, 100002, 100003.. Master2 1 홍길동 OTP 인증 2016.10.15 15:33:30.111111111 100001 허준 OTP 검증 2016.10.15 15:33:31.111111111 100002 gt1000 OTP 생성 2016.10.15 15:33:32.111111111 2 장금이 OTP 생성 2016.10.15 15:33:33.111111111 ALTER SEQUENCE seq_user_group START WITH 30; ALTER TABLE user ADD COLUMN otp_code varchar(8) DEFAULT ‘00000000' NOT NULL; 사용불가
  • 23. 13 뭣이 중헌디???? Oracle과 같은 기능은 불가능 ALTER SEQUENCE xxx START WITH  Sequence 대신 max + 1 사용  관리자 UI 화면 또는 Script를 통한 sequence 값 증가 애플리케이션 보정을 통한 보완 Transaction Conflict에 따른 데이터 정합성  중요 테이블의 경우 관리자 UI 화면에서 테이블 데이터 수를 Master, Slave 상호 비교하여 보정 23
  • 24. 13 뭣이 중헌디???? 24 >> 시퀀스 보정 xx_seq시퀀스명 적용 솔루션 관리자 UI 화면 >> 테이블 동기화 확인 및 보정 서버 IP 테이블명 서버 IP 테이블명 100.1.1.1 user_info(10) 100.1.1.2 user_info(12) 100.1.1.1 user_group(27) 100.1.1.2 user_group(27) 100.1.1.1 policy(3) 100.1.1.2 policy(3) 보정 보정 보정 클릭시 for 문으로 SELECT nextval(‘xx_seq') 100번 실행하여 Sequence를 증가 시킴 100시퀀스 증가값
  • 25. 14 좋은 놈, 공부할 놈, 아쉬운 놈  Active, Standby 이중화 전환이 용이 서버 구성은 Active, Standby. Database 구성은 Master, Master 로 구성시 네트웍 불안정으로 인한 불규칙적인 장애 발생시 지연시간 없는 Active, Standby 서버간 전환이 가능 (비권장)  Active, Active, Active… N 구성시 Load Balancing, 세션 클러스트링 없는 IP 개별 접속 N개 Active 서버 구성이 용이  Selective Repliction 선택적 복제가 가능(이중화 테이블 복제하지 않음) 25 좋은 놈 Server1 Server2 VIP Active Standby heartbeat network
  • 26. 14 좋은 놈, 공부할 놈, 아쉬운 놈  서버 IP 변경시 가능 여부를 테스트 해 보지 않았음  장애로 인한 서버 교체시 master 서버 하드 장애 등의 이유로 교체가 필요한 경우, 중단 후 복구 기능이 필요. 장기간 방치시 동기화 시도 관련 오류 문제가 발생할 수도 있음 * There is no complex election of a new master if a node goes down or network problems arise. There is no wait for failover. Each node is always a master and always directly writeable. 26 공부할 놈(운영 업무)
  • 27. 14 좋은 놈, 공부할 놈, 아쉬운 놈  퇴사  국내외 구축 사례 비공개  매뉴얼 빈약  2ndQuadrant 계약 요구 27  DBA가 아닌 개발자로서의 전문성 부족  타 솔루션 지식 부족, MySQL 과의 장,단점  Oracle 수준을 요구함. 중, 소 기업 타켓  같이 번역하고 테스트 할 사람이 필요 아쉬운 놈
  • 28. 15 최근소식 PostgreSQL 9.6 에는 Global Sequences 문제를 다른 방식으로 접근할 예정 http://blog.2ndquadrant.com/bdr-is- coming-to-postgresql-9-6/ The years of effort we at 2ndQuadrant have put into getting the series of patches from BDR into PostgreSQL core have paid off. As of PostgreSQL 9.6, the only major patch that Postgres-BDR on 9.4 has that PostgreSQL core doesn’t, is the sequence access method patch that powers global sequences. This means that Postgres-BDR on 9.6 will not support global sequences, at least not the same way they exist in 9.4. The 9.6 version will incorporate a different approach to handling sequences on distributed systems, and in the process address some issues that arose when using global sequences in production. 28