Category: Database

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



갈레라 클러스터 (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 튜닝부분도 중요합니다.  ...

Sysbench : MariaDB, MySQL, PostgreSQL Benchmark Tool.

  Sysbench ? 시스템 성능을 측정할 수 있는 툴로, MySQL에서 내부 프로젝트로 만들다가 Lua 스크립트를 적용한 0.5 버전까지 나왔다가 오랜기간 개발이 중지 되었습니다. 2016년에 다시 개발이 시작되었고 현재 1.0 버전대 개발이 진행중입니다. 기존에는 소스코드를...

pg_trgm

  pg_trgm postgresql 추가모듈 중 pg_trgm을 이용하여 ‘%문자열%’ like 검색시 인덱스 스캔을 실행할 수 있습니다. (3글자 미만에 대한 패턴검색의 경우 인덱스 탐색비용이 급격히 증가, table full scan의 비용을 초과함.) pg_trgm 모듈은 유사한 문자열을 빠르게...

PostgreSQL과 MariaDB의 사이에서의 선택

  PostgreSQL과 MariaDB의 사이에서의 선택 클라우드가 대세가 되고, 오픈소스가 많은 영역에서 중요한 자리를 차지하게 됨에 따라서, 데이터베이스 영역 역시 오픈소스 DB가 많은 시장 점유율을 차지하고 있습니다. 여전히 성능과 안정성, 모든 부분에서 상용인 오라클이 가장...

Oracle Lock

  대표적인 오라클 Lock의 종류 래치(Latch) : SGA에 공유돼 있는 갖가지 자료구조를 보호할 목적으로 사용되는 가벼운 Lock 버퍼 Lock : 버퍼 블록에 대한 액세스를 직렬화 라이브러리 캐시 Lock : 라이브러리 캐시 오브젝트에 대한 핸들을...

MariaDB, MySQL max_connections 값 변경

  MariaDB, MySQL max_connections 값 변경   max_connections 값이 작으면 그냥 변경해도 변경이 됩니다. 그러나 1000 이상의 값을 가지게 되면 에러가 떨어지면서 적용하려면 OS 커널 파라미터의 튜닝이 필요합니다. # vi /etc/my.cnf.d/server.cnf open_files_limit = 4096 max_connections...

ORA-1688: unable to extend table SYS.WRH$_ACTIVE_SESSION_HISTORY

  트러블 슈팅 ORA-1688: unable to extend table SYS.WRH$_ACTIVE_SESSION_HISTORY   주의: 여기에 사용된 스크립트는 오라클에서 제공되어진 스크립트를 베이스로 작성되었으나, 사용함에 있어서 리스크가 있음을 명심해야 하며, 사용 전 자신의 DB에 맞는 정확한 내용인지 확인하시기 바랍니다....

Docker를 이용한 PostgreSQL 설치

    Docker를 이용해 PostgreSQL 설치   요즘은 도커를 이용해서 DB설치를 많이 합니다. 그런데 주의 사항은 대부분의 DB 제공자는 도커위에 DB운영을 추천하지는 않습니다. 도커로 DB를 운영하려면 신중히 고려한 후에 결정하셔야 합니다. 성능 문제나 도커와...

RAC CR 블록 리시브 타임에 따른 점검사항

  1. AVR CR BLOCK RECEVIE TIME < 15ms 한 Node에서 다른 Node의 데이터를 무결성 읽기를 하기 위해서 기다리는 시간을 의미 하며 정상적인 경우 15ms보다 작아야 하고, 만약 시간이 많이 걸리는 경우는 다음과 같은...

Block corruption 발생시

  Block corruption 발생시   1. DBVERIFY 를 이용한 Block 관리 DBVerify는 Data file block, index file block, undo block 등을 점검해주는 유틸리티입니다. 복구 유틸리티는 아닙니다. Database가 open 상태에서 사용할 수 있는 유틸리티로 database의...

Redo log 관리

  Redo Log 상태 INACTIVE : 현재 사용중이지도 않고 복구에 필요치 않응 리두로그 ACTIVE   : INSTANCE Recovery 에 필요한 리두로그 CURRENT  : LGWR이 현재 기록중이 리두로그 상태 확인 SELECT a.group#, a.member, b.bytes/1024/1024 “Size (MB)”,...

Oracle AWR 재설치

  Oracle AWR 재설치   가끔 AWR에서 말성을 일으켜 DB에 Lock을 거는 경우가 있습니다. 이게 AWR 재설치 말고는 답이 없습니다. DB 재부팅 과정을 거치며 재설치를 해줘야 합니다. $ sqlplus / as sysdba SYS> shutdown...

gc buffer busy

    gc buffer busy RAC 환경에서 딜레이가 발생하는 경우 gc buffer busy에 관련된 wait event들을 확인해봐야 합니다. AWR에서도 쉽게 확인을 할 수 있습니다. RAC 환경에서 gc 붙는다는 것은 싱글 인스턴스에서 발생하는 이벤트들의 글로벌...