열린기술자 님의 글 75
MariaDB Galera로 3노드 동기 복제 구성
운영하다 보면 마스터 한 대에 슬레이브 여러 대를 붙인 비동기 복제로는 아쉬운 순간이 온다. 장애가 나면 어느 슬레이브를 승격할지 사람이 판단해야 하고, 승격 전까지 쓰기가 멈춘다. 그럴 때 후보로…
Oracle 통계정보가 오래돼 쿼리가 느려질 때
운영하다 보면 코드도 그대로고 데이터량도 크게 안 늘었는데 특정 쿼리만 어느 날부터 느려지는 상황을 마주친다. 인덱스도 멀쩡하고 바인드 값도 평소와 같은데 실행계획만 바뀌어 있다. 이런 신고를 받으…
MariaDB 10.6에서 11.4 업그레이드
운영 중인 MariaDB 10.6이 슬슬 손이 가는 시점이 왔다. 10.6도 LTS라 아직 지원 기간이 남았지만, 11.4가 새 LTS로 자리를 잡으면서 신규 장비는 11.4로 깔고 기존 장비만 1…
MariaDB/MySQL DDL이 'Waiting for table metadata lock'으로 멈출 때 원인 찾고 푸는 법
운영 중인 서비스에 컬럼 하나 추가하려고 ALTER TABLE 을 던졌는데 커서만 깜빡이고 프롬프트가 안 돌아온 경험은 DBA라면 한 번쯤 겪는다. 더 곤란한 건 그 사이에 해당 테이블을 읽으려던 …
MariaDB innodb_buffer_pool_size 사이징과 재시작 후 캐시 워밍업
InnoDB로 돌아가는 MariaDB 서버를 넘겨받으면 가장 먼저 확인하는 값 중 하나가 innodb_buffer_pool_size 다. 물리메모리 64GB짜리 장비인데 이 값이 기본값 그대로 12…
PostgreSQL 설치 방법
1. 개요 2. apt 설치 및 삭제 2.1. 설치 Ubuntu 기준으로 하여, apt로 설치한다. $ sudo apt install postgresql Reading package lists...…
MySQL datetime을 원하는 문자열로 표시
1. 개요 2. 사용방법 SELECT DATE_FORMAT(created, "%Y-%m-%d") created FROM mytable;
MySQL 문자열 합치기 (CONCAT)
1. 개요 CONCAT 함수는 여러 문자열을 하나로 이어 붙일 때 사용하는 SQL 함수입니다. 고정된 문자열뿐 아니라 테이블의 컬럼 값을 함께 조합해 원하는 형태의 문장을 만들 수 있습니다. 예를 …
Spring Boot MyBatis mapUnderscoreToCamelCase 설정
1. 개요 DB 컬럼명에 _ (Underscore)가 포함되어 있을 때 이를 자동으로 카멜 표기법의 DTO와 매핑해주기 위해 설정을 추가한다. 예: USER_NAME 컬럼 - getUserName(…
macOS npm 설치 (homebrew)
1. 목적 2. 설치 $ brew install node == Installing dependencies for node: icu4c == Installing node dependency: icu4…
MariaDB CREATE TABLE
1. 목적 MariaDB에서 간단한 사용자 정보 테이블을 생성하고, 날짜/시간 데이터와 기본값이 적용되는 컬럼을 함께 확인하는 예제입니다. AUTO_INCREMENT 기본 키, NOT NULL 제약…
MariaDB CREATE DATABASE
1. 목적 이 글에서는 MariaDB에서 설문 서비스용 데이터베이스인 surveydb 를 생성하고, 정상적으로 생성되었는지 확인한 뒤 해당 데이터베이스를 선택하는 과정을 정리한다. 작업은 Maria…