Database

MySQL 성능분석도구 이야기(PERFORMANCE_SCHEMA)

개요 성능스키마란? 성능 스키마 수집 구조 성능스키마 사용방법 개요 데이터베이스에 있어서 성능은 포기할 수 없는 부분이다. 아무리 사용하기 편리하고 기능이 많더라도 성능이 나오지 않는 데이터베이스는 현업에서 절대 쓰여질 수 없다. 만족스런 성능의 기준은 DBMS 가...

Embedded SQL 개발 시 Database 별 Error Handling

Embedded SQL 을 이용하여 Database Application 개발 시 항상 Error Code 가 DB 별로 달라서 혼동되는 경우가 있다. 시스템의 Database 가 교체되었을 때 Application 의 소스 코드에서 가장 먼저 점검해야하는 부분이 Error Handling 부분이다.오늘은 Oracle,...

MySQL InnoDB 성능 튜닝 기본

InnoDB 를 초기 설정할 때 고려해야할 기본적인 튜닝 파라미터를 소개한다. 위의 InnoDB 아키텍처 그림을 떠올려보면 아래의 5 가지 초기 설정이 왜 중요한지 이해할 수 있을 것이다. innodb_buffer_pool_size innodb_buffer_pool_instances innodb_flush_method innodb_log_file_size * innodb_log_files_in_group innodb_io_capacity 버퍼 풀의...

MySQL – Replication 구조

Replication 방식 개요 데이터베이스에서 데이터를 복제하는 방식은 크게 동기 방식과 비동기 방식이 있다. 동기 방식은 Master 노드에 데이터 변경이 발생할 경우 Slave 노드까지 (동시에) 적용되는 것을 보장하는 방식이며, 비동기 방식은 Master 노드의 변경과 Slave 노드로의...

MariaDB – binary log

binary log 란? binary log 에는 데이터베이스에 대한 모든 변경 사항(데이터 및 구조)과 각 명령문 실행 시간이 기록되어 있다. binary log 는 InnoDB 같은 스토리지 엔진에서 기록하는 Redo Log 와는 다른 별도의 로그이다.binary log 는...

Application with Pluggable Database

때로는 Application 이 두 개의 DB 를 골라서 사용하고 싶을 때가 있다.즉, Application 의 업무 로직은 똑같은데, 기존에 사용하던 DB 를 다른 DB 로 변경하고 싶은 경우 어떻게 해야 할까? Application 의 모든 소스(업무 로직...

Postgresql 의 통계 수집 및 확인

Database 의 통계 기능은 무척 중요하다. 각종 장애나 성능 분석 시에 DB 내부의 다양한 상태 정보들을 보여주는 이러한 통계 데이터들이 없다면, 단순히 Trace Log 만으로 미묘한 성능 하락 등의 이유들을 밝혀내거나 사전에 그러한 현상을 방어하는 것이...

Postgresql 의 설정 및 Trace Log

** postgres 의 설정(postgresql.conf)을 잘보면 다음의 part 들로 구성되어 있다. 설정 변경 시에는 postgres 를 재기동한다. 1. FILE LOCATIONS : postgres 에서 필요한 hba.conf 파일이나 data directory, pid file 의 directory 등 파일 관련 설정 2. CONNECTIONS AND AUTHENTICATION : postmaster 의 listen port 및 max_connection 등 접속 및 인증 관련 설정 3. RESOURCE USAGE (except WAL) : shared buffer 및 temp buffer 등의 크기 지정, shared preload library 추가 등의 설정 등 : 기타 Resource 사용과 관련된 몇가지 설정 4. WRITE AHEAD LOG : wal_level, commit_delay 등 WAL 관련 설정 : checkpoint 및 archive 관련 설정 5. REPLICATION : 이중화 관련 설정 6. QUERY TUNING : 각종 Query Optimization 관련 Factor 들 설정 7. ERROR REPORTING AND LOGGING : Trace Log 관련 설정. : 어느 파일에 언제, 어떤 내용을, 어떤 방식으로 남길 것인지에 대한 다양한 설정이 있음. 8. RUNTIME STATISTICS : stat collector 가 수집할 내용들을 설정하거나,log_statement_stats 와 같이 query 수행과 함께 통계데이터를 모니터링할 수 있는 기능 설정 9. AUTOVACUUM PARAMETERS 등 기타 설정 위의 설정들 중 7 번 Part 에서 logging_collector 설정을 on 으로 하면 파일로 trace 로그 및 통계 모니터링 로그를 남기고 off 로 하면 stdout 으로 보여준다. 무엇을 남길지를 아래와 같이 설정하니… debug_print_parse = on debug_print_rewritten =...

Postgresql 에서 shared library 를 이용한 extension 기능 사용법

아래의 Postgresql 을 사용해보자라는 게기물에서 확장 기능에 대한 설명은 빼버렸는데 여기에서 사용법을 정리해본다. ** postgresql-9.2.4/contrib 위치에 다양한 extension 들이 존재함. 추가로 구현해도 됨. 그 중 대표적인 통계 관련 기능인 pg_stat_statements 에 대한 내용은 아래 URL 을 참고하자. http://www.postgresql.org/docs/8.4/static/pgstatstatements.html 다음은 pg_stat_statements 확장 shared library...

NoSQL Cache 솔루션 – Redis 사용법

다음은 마이크로 소프트웨어에서 Redis 를 소개한 문구를 옮겨본 것이다. “주목받는 NoSQL & Cache 솔루션인 메모리 기반의 Key/Value Store인 Redis는 Cassandra나 HBase와 같이 NoSQL DBMS로 분류되기도 하고 memcached와 같은 인메모리(In-memory) 솔루션으로 분리되기도 한다. 성능은 memcached에 버금가면서...