Category: Database

데이터베이스 전반적인 내용을 다룹니다.
Oracle, MySQL, MariaDB, PostgreSQL, Mongo, Redis



[Playbook] PostgreSQL 다중화 구성

  PostgreSQL 다중화 구성 미리 /etc/hosts 파일에 pgsql01,02,03의 ip를 넣어줬습니다. inventory [master] pgsql01 [slave] pgsql02 pgsql03 . . . [postgres:children] master slave ansible_user=root ansible_password=<mypassword> 10,11 버전 사용가능. (9.6 사용 불가) ansible-playbook -i inventory inst_psql.yml...

Redis #.9 분산캐시와 사용시 주의사항

  Redis  분산캐시   캐시란? (Cache) 이미 요청됐거나, 나중에 요청될 결과를 미리 저장해 두었다가 이를 빠르게 서비스 해주는 것입니다. 이는 웹서비스에서 이용할 수도 있고, RDBMS에 접근 할 때도 사용할 수 있습니다. CPU에서도 L1, L2,...

Redis #.8 Docker를 이용한 Redis cluster 구축 (ver. 5.0.5-buster)

  Docker를 이용한 Redis cluster 구축 (ver. 5.0.5-buster) 패키지를 이용한 구축 방법은 별로 어렵지 않아서, 그냥 각 노드에 패키지 깔고, 파라미터 수정해서 redis-server를 port에 맞게 실행만 해주면 됩니다. 해당 구조로 6개의 Redis를 각각의 도커로...

Redis #.7 HA구성하기 (Master-Slave)

  HA구성하기 (Master-Slave) Redis도 다른 Database와 마찬가지로 replication 기능을 지원합니다. redis.conf 파일에 slaveof 파일에 Master 서버의 IP와 Port를 입력해준뒤 구동만 해주면 됩니다. vi /root/redis-5.0.5/redis.conf slaveof <master ip> <port> 추가하고 구동하면 root@testdb01:~/redis-5.0.5]# src/redis-server redis-s1.conf 16524:C...

Redis #.6 Redis DB 정보 조회 및 환경설정

  Redis DB 정보 조회 Database에 대한 정보를 조회할 필요가 있을 때가 있습니다. INFO 명령을 이용하면 Redis 서버에 대한 정보 조회를 할 수가 있습니다. 127.0.0.1:6379> info # Server redis_version:5.0.5 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:281ad9c0dbce71d8 redis_mode:standalone os:Linux...

Redis #.5 Publish & Subscribe

  Publish & Subscribe 유투브 같은 사이트에서 내가 누군가의 영상을 구독했을때, 새 영상이 올라오면 유투브는 자동으로 구독자들에게 발행자의 업데이트 소식을 알려줍니다. 레디스로 이런 기능 구현이 가능합니다. 구독자에게 SUBSCRIBE 설정을 하면, 레디스는 구독자의 CLI를 블록킹하게...

Redis #.4 Database namespace & Expiry

  Namespace Redis의 네임스페이스란 Database를 말합니다. 쉽게 말해서 PostgreSQL는 하나의 클러스터 안에 여러개의 Database를 생성하여 용도를 나눠 사용할 수 있듯이 Redis는 네임스페이스를 나눠서 Database를 구분합니다. 네임스페이스는 숫자로 구분되며, 0이 설치되면 접속해서 사용할 수 있는...

Redis #.3 Sort Set

  Sort SET Sort SET은 Redis가 가진 각각의 데이터 타입들의 특성을 고루 가지고 있습니다. List 처럼 정렬되며, Set처럼 고유한 값들을 갖습니다. Hash 처럼 키 필드와 값의 쌍으로된 데이터를 갖지만, 문자열 대신 값의 순서를 나타내는...

Redis #.2 트랜잭션과 데이터 타입

  SET 과 GET SET : 키 값을 추가 할 수 있음. 항상 Key-Value로 된 두개의 매개변수를 필요로 함. GET : SET으로 입력한 값을 읽을때 사용. 간단하게 웹 주소를 단축하는 키 값을 추가해 봅니다....

Redis #.1 소개 및 설치

  Redis 란? Redis가 주목 받는 이유는 빠른 처리 속도와 검증된 소프트웨어 안정성에 있습니다. 모든 데이터를 메모리에 상주시켜 처리하고 이벤트 기반의 네트워크 비동기 입출력 처리를 해서, 한 Redis 서버는 초당 수만 건 이상의 요청을...

갈레라 클러스터 WSREP GTID

갈레라 클러스터 WSREP GTID   갈레라 클러스터는 마리아DB의 리플리케이션과는 상당히 다른, 인증기반의 리플리케이션 방식을 가지고 있습니다. 갈레라의 GTID가 각각의 노드에 대해서만 일관성을 가지지 않고 전체 노드에 유니크한 값을 가진 쓰기셋으로 갈레라 클러스터에 연동된다면 충분히...

샤드와 샤딩 (Shard and Sharding)

  샤드 (Shard: Database Architecture) 데이터베이스 샤드는 데이터베이스 혹은 검색엔진의 수평적 파티션을 말합니다. 각각의 파티션을 샤드 또는 데이터베이스 샤드라고 합니다. 각 샤드는 별도의 데이터베이스 서버 인스턴스에 분리 보관되어 로드를 분산시킵니다. 어떤 데이터는 데이터베이스의 모든...

갈레라 클러스터 (Galera Cluster): Multi Master Replication

  Galera Cluster: 다중 마스터 복제 갈레라 클러스터는 코더십이 만든 동기적 다중 마스터 방법입니다. MariaDB의 공식적인 클러스터 입니다. 갈레라 클러스터는 인증 기반 복제를 제공합니다. 데이터 완전성에 대해서는 자동으로 관리합니다.   Galera Cluster 동작 원리...

Database를 위한 디스크와 파일시스템 최적화

  Disk & File System for Database DB 서버의 디스크 영역이나 파일시스템은 DB를 설계하는데 있어 매우 중요합니다. DB의 성능은 DIsk I/O와 CPU, Memory의 성능과 밀접하게 연관이 있으며, 하드웨어의 성능도 중요하지만 OS 튜닝부분도 중요합니다.  ...