Database 7

# PostgreSQL - MySQL 차이점

PostgreSQL과 MySQL 간의 기능별 특징 차이를 아래 표로 정리했다. 결론 어떤 DB가 더 좋은지 얘기하는건 무의미한 논쟁이지만 개인적으로 PostgreSQL을 더 선호한다. 이유로는 MySQL에 비해 더 많은 기능을 지원하고 대용량 시스템에 더욱 적합하다기 때문이다. 그렇지만 만약 대용량 시스템이 아니며, 단순한 쿼리를 이용한 읽기 중심의 작업이 많은 경우 MySQL이 성능상 더 효율적일 수 있기 때문에 각자의 시스템에 따른 적합한 DB를 선택해야 할 것이다. 참고 DB 용어 * OLTP (Online Transaction Processing) - 온라인 트랜잭션 처리 DB에서의 빈번한 입력, 수정, 삭제 과정에서의 효율성, 즉 효과적인 DB 갱신이 목표 RDB 에서 정규화란 데이터가 함수적 ..

Database 2020.10.12

# Elasticsearch(docker) + Analysis Plugin(Nori) 한글 형태소 적용

예전에는 elasticsearch에서 한글 형태소 분석을 하려면 은전한닢을 사용했었는데, 이제는 elasticsearch 6.4에서 plug-in 으로 지원을 하기 시작했다. 바로 analysis-nori 이다. 1998년에 한국 정부가 시작한 21세기 세종 프로젝트를 통해 대규모 한국어 말뭉치가 만들어졌다. mecab-ko-dic도 그 중 하나로, 한국어 형태론의 확률적 모델을 학습시킬 때, 유명한 오픈 소스 형태소 분석 엔진인 MeCab(“메카부”)를 사용한다. analysis-nori도 원래의 사전(mecab-ko-dic)을 이용하는 것이고 차이점은 같은 데이터를 담고 있지만, 보다 작고, 검색에 최적화된 모듈을 제공하는 것이다. 그럼 이제부터 elasticsearch에 한글 형태소 분석기를 적용해..

# PostgreSQL HA 구성 - PGPoolⅡ

PostgreSQL Pgpool-Ⅱ 는 무엇인가? Pgpool-II는 PostgreSQL 서버와 PostgreSQL 데이터베이스 클라이언트 사이에 있는 Proxy 소프트웨어이다. 즉, Pgpool-II가 DB Cluster 역할을 하게 해주는 것이다. 왜 필요한 것인가? Connection Pool 관리 : Connection의 재사용으로 인한 전체 성능 향상 Load Balancing : Replication 기능을 통해 같은 Data를 가지고 있다면, Query를 여러 Server에 나눠서 분산 처리 Auto Fail Over : Master Server에 장애 발생시, Slave Server가 그 기능을 대신 수행한다. 이전에 구성한 # PostgreSQL Streaming Replication 구..

Database/PostgreSQL 2019.10.23

# PostgreSQL Streaming Replication 구성

이전 글(# PostgreSQL Streaming Replication 개념)에서 PostgreSQL Replication에 대한 개념을 살펴봤고 이제 실제 구성을 해보자. Step 1. PostgreSQL11 설치 $ rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm $ yum install -y postgresql11-server postgresql11-contrib Step 2. PostgreSQL 실행 # init db $cd /usr/pgsql-11/bin $ ./postgresql-11-setup initdb # postgresql 실행 $ sys..

Database/PostgreSQL 2019.10.23

# PostgreSQL Streaming Replication 개념

Database 서버 이중화(HA) 구성이란? 이 작업은 복수의 DB Server를 준비한 상태에서 Active-Active 또는 Active-Standby로 동작시키면서 이 중 일부의 Server에 문제가 발생하더라도 전체 서비스가 멈추는 사고를 방지하기 위해서 이루어진다. Data는 전체 DB Cluster에 반영되어야 한다는 것이다. DB Server가 몇 개이건 모두 공통된 최신 Data를 가져야 한다는 것이고 이것은 DB Replication을 통해 이루어진다. DB에 전달되는 각종 Request들이 DB Cluster 내에 존재하는 여러 DB Server에 골고루 전달되어서 실행되게 하는 분산 환경이 구성되어야 하고 이것을 Load Balance라고 한다. Active-Standby로 구성된 ..

Database/PostgreSQL 2019.10.23

# ES_v5.6.8 실제 운영시 유용한 명령어 정리

es_v5.6.8을 실제 운영 환경에서 사용하면서 많이 사용하고 또 유용하게 활용됐던 명령어를 정리하려고 한다. 이 글은 계속 업데이트 될 것이다. [ 샤드 지연 할당 옵션 ] PUT _all/_settings { "settings": { "index.unassigned.node_left.delayed_timeout": "5m" } } 의도적이든 아니든 어떤 이유로든 노드가 클러스터를 떠나면 다음과 같은 작업이 일어난다. replica shard를 primary shard로 대체 누락된 replica shard를 대체하기 위해 primary shard로 부터 replica shard를 할당 클러스터 내에 남아있는 노드들에서 shard들을 균등하게 재 분배 위 과정 (shard-shuffle)은 클러스터로..

# ES 5.2 설치 및 cerebro 연동

1. ES홈페이지에서 원하는 ES버전을 다운 받는다. https://www.elastic.co/downloads/elasticsearch 2. ES 압축파일 해제 후 간단히 conf파일 변경 ES 폴더의 config 폴더로 이동 후 notepad를 쓰든 editplus를 쓰든 elasticsearch.yml 파일을 열고 아래 처럼 수정 cluster name과 node name 등 ip주소 외의 값은 임의로 지정. 노드를 추가하고 싶으면 transport를 사용하여 포트 번호 지정 후 unicast에 각 호스트들의 ip주소를 적어준다. 그 외 많은 옵션 값들이 있지만 필요한 값들은 ES 홈페이지의 문서를 참조 후 적용. 설정 변경 후 파일 저장 3. cmd 창에서 다운받은 경로로 이동 후 > elasti..