Database

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 의 모든 소스(업무 로직...

골디락스(Goldilocks) 매뉴얼

골디락스(Goldilocks) 매뉴얼

저희 회사에서는 매뉴얼 작업을 사내 정보 공유용으로 사용하고 있는 Confluence 에서 합니다. 그런데, Confluence 의 단점 중의 하나가 웹의 문서를 PDF 문서로 Export 하면 그리 깔끔한 포맷으로 나오지가 않더군요. 조만간 매뉴얼 작업 환경을 바꾸어야할 것...

골디락스(Goldilocks) 소개

골디락스(Goldilocks) 소개

저희 회사는 국내 최고의 DBMS 개발회사에서 핵심인력들이 퇴사하여 새로운 둥지를 튼 곳입니다. 동료와 함께 작년말부터 올해초까지 개발한 작은 규모의 DB 를 소개합니다. 제품 이름은 Goldilocks(골디락스)입니다. 골디락스라는 말은 2 가지 의미가 있습니다. 하나는 경제학 용어로 뜨겁지도 차갑지도 않은...

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...