반응형
DATABASE/Databse2024. 12. 7. 17:54[Database] WAL 이란? - 데이터 쓰기의 이해와 WAL을 쓰는 이유

WAL (Write-Ahead Logging)Write-Ahead Logging 즉, 로그 먼저 쓰기 라고 할 수있는 WAL은 데이터베이스의 쓰기를 빠르게 완료하며, 데이터의 무결성과 일관성 유지에 매우 큰 역할을 한다. WAL은 어떻게 데이터 쓰기를 빨리 할 수 있으며, 어떤 부분에서 무결성과 일관성 유지에 도움을 주는지 간략하게 설명해보도록 하겠다. Data Write 란?데이터베이스에 데이터를 변경하면, 저장되어있는 해당 디스크의 값을 바꿔주어야한다. 삽입과 삭제도 마찬가지다. 데이터베이스 성능에 가장 큰 영향을 주는 것이 물리적인 디스크 I/O 인데,과연 데이터 하나 조그마한 것이 바뀔 때마다 디스크 I/O가 발생하면 빠를 수 있겠는가. 원초적인 이야기로 돌아가서 전반적인 데이터베이스의 구조와 엔..

DATABASE/Databse2024. 11. 25. 19:06[DBA] 여러 DBMS 마다의 DBA의 중점 역할 차이

DBA - DATABASE ADMINISTRATORDBA란 무엇일까?항상 고민하고 어디까지가 내 일인가에 대해서 의문을 품으며 일을 하고있는 것 같다. 물론 회사마다 팀마다 느낌이 조금씩 다르겠지만, 뭔가 명확하지 않고 시키면 다하는 듯한 느낌이 들때가 많다.DBA가 무엇인가에 대해서는 예전에 적어둔 글이 있는데, 지금 다시 읽어보면 그게 맞을까? 싶다 DBA - 데이터베이스 관리자(DataBase Administrator)Intro 안녕하세요. 초보 DBA 다뉴입니다. Database 관련 글을 쓸 때면, 초보 DBA 라는 말로 저를 소개하곤 하는데요. 관련 직무에 종사한지 5년이 넘었지만, 이제야 본격적으로 DBA 직무를 맡게 되어 그da-new.tistory.com우리 회사의 우리팀은 여러가지 데이..

DATABASE/Databse2024. 11. 18. 10:12[Database] MVCC (Multi-Version Concurrency Control) - 다중 버전 동시성 제어

MVCC (Multi-Version Concurrency Control)다중 버전 동시성 제어란? 데이터베이스에서 동시성을 제어하고 데이터의 일관성을 유지하기 위한 기법 중 하나이다.데이터에 변경사항의 버전을 보관하여, 여러 버전의 데이터를 저장해두어 여러 트랜잭션간의 읽기 / 쓰기 작업이 동시에 수행 될 수 있도록 하는 방법이다. 트랜잭션의 읽기 작업이 쓰기 작업을 방해하지 않고, 일관된 데이터를 읽을 수 있게 하는 방식이 말 그대로 데이터의 다중 버전을 통한 동시성 제어이다. MVCC 주요 개념 1. 스냅샷 읽기 - 트랜잭션이 시작된 시점의 버전의 데이터를 기반으로 동작한다. - 다른 트랜잭션의 변경사항이 커밋되기 전 이라면, 그 데이터는 해당 시점의 버전에 포함되지 않는다.2. 다중 버전 관리 - ..

[MariaDB] User  DDL - 사용자 생성, 변경, 삭제
DATABASE/MariaDB2024. 4. 6. 09:00[MariaDB] User DDL - 사용자 생성, 변경, 삭제

MariaDB User Database의 중요한 관리 중 하나는 User 에 대한 관리설정이다. 사용자에 맞는 User를 생성하고 발급하며, 해당 User별로 권한을 설정함으로써 보안에 좀 더 신경 쓸 수 있다. 요번 포스팅에서는 MariaDB의 User의 생성, 변경, 삭제를 할 수 있는 DDL에 대해서 알아보도록 하자. User DDL MariaDB User의 Create / Alter / Drop 명령어로 유저의 생성과 변경, 삭제를 담당한다. MariaDB의 User는 다른 Database와 다르게, 접근 위치 별(Host) 계정을 생성 할 수 있다. DDL명령어 설명하며 같이 설명하도록 하겠다. 사용자에 대한 정보는 mysql.user 라는 시스템 뷰로 확인 할 수 있다. select * fro..

[MariaDB][Linux] Log Setting (2) - Error Log 설정하기
DATABASE/MariaDB2024. 2. 2. 09:09[MariaDB][Linux] Log Setting (2) - Error Log 설정하기

MariaDB Error Log 설정 MariaDB에는 기본으로 기록하는 Log 인 Error 로그가 있다. Error Log는 따로 On/Off의 개념은 없지만, Log 파일이 설정되어 있지 않아서 저장되고 있지 않기에 로그를 저장하기 위해 로그 파일의 위치를 설정해주도록 한다. Error Log MariaDB의 Error Log는 서버의 운영 중에 발생한 심각한 오류나 테이블 손상, MariaDB 서비스 On/Off등에 대한 중요 정보에 대해서 기록하며, 기록의 자세한 내용을 옵션으로 조절 할 수 있다. Error Log 설정 확인 mysql > show variables like '%log_error%'; 아직 Log 파일이 설정되어 있지 않는 상태이다. 해당 로그파일 경로에 절대 경로 혹은 DAT..

[MariaDB][Linux] Log Setting (1) - General Log, Slow Query Log 설정하기
DATABASE/MariaDB2024. 1. 19. 09:00[MariaDB][Linux] Log Setting (1) - General Log, Slow Query Log 설정하기

MariaDB Query Log 설정 MariaDB에는 서비스의 질을 향상시키고자 지원되는 여러가지 Log 기능들이 있다. 그 중에 대표적으로 사용되는 모든 쿼리에 대해 저장하는 General Log와 특정 시간 이상 걸리 쿼리에 대해 저장하는 Slow Query Log가 있다. 이외에도 사용되는 많은 Log가 있지만, 오늘은 이 두개에 대해 알아보도록 한다. General Log MariaDB의 Audit과도 같은 Log 라고 볼 수 있는데, MariaDB의 모든 쿼리에 대한 로그를 저장한다. 여기에는 Slow Log, Error Log 등의 값도 포함이 된다. Genral Log 설정 확인 show variables like '%general%'; General Log는 위와 같은 명령어로 상태값을 ..

[DBA][MariaDB] 사용자 계정 접속 잠금, 비활성화(?) - ACCOUNT LOCK
DATABASE/MariaDB2024. 1. 12. 09:00[DBA][MariaDB] 사용자 계정 접속 잠금, 비활성화(?) - ACCOUNT LOCK

USER ACCOUNT LOCK MariaDB의 특정 사용자 계정의 로그인 불가 상태로 만드는 방법이다. MariaDB 10.4 버전부터 해당 옵션을 지원한다. alter [user_id]@'[host_address]' account lock; MariaDB 는 특성상 사용자 계정을 " 계정명@접근대역 " 으로 생성한다. 즉 동일한 계정명이 여러개이고 접근 대역만 다를 수 있는데, 이 중 사용자가 로그인 하지 않았으면 하는 계정@접근대역을 로그인하지 못하게 잠글 수 있는 기능이다. 계정 생성 시 로그인 잠금 CREATE USER로 새로 생성하는 계정을 로그인 불가 상태로 생성하는 방법이다. create [user_id]@'[host_address]' identified by '[password]' acc..

[MariaDB] 장애 조치 - Galera Cluster 동기화 전송 지연 (Delete_rows_log_event::find_row)
DATABASE/MariaDB2024. 1. 5. 09:00[MariaDB] 장애 조치 - Galera Cluster 동기화 전송 지연 (Delete_rows_log_event::find_row)

Galera Cluster 동기화 전송 지연 Galera Cluster를 구성할 때 제일 중요한 점이 하나 있다. 바로 각 Table에 PK가 무조건 있어야 한다는 것인데, 이는 PK값을 통해 해당 테이블의 값을 찾아 변경/삭제를 하여 동기화를 하기 때문이다. 원래 Galera Cluster를 구성할 때 모든 테이블에 PK를 조사하여, 없으면 생성 후 구성을 하였는데 간단한? 데이터 작업을 하기위해 Temp Table을 만들고 데이터를 삭제하는 과정에서 PK를 누락하여, 갈레라 클러스터 간의 동기화 지연 이슈로 서버가 먹통이 되었다. 이 장애의 내용부터 시작해 해결방법 그리고 얼마나 걸렸는지, 그 후속 테스트까지 간단하게나마 글로 남겨보도록 한다. 장애 내용 Galera Cluster가 구성되어있는 Ma..

[MariaDB][Linux] 보안 설치 - mariadb-secure-installation
DATABASE/MariaDB2023. 12. 29. 09:00[MariaDB][Linux] 보안 설치 - mariadb-secure-installation

MariaDB 보안 설치 MariaDB의 보안을 향상시키는 추가 설치이다. MariaDB 운영 단계로 넘어가기 전 해당 작업을 추가하는 것을 권장한다. mariadb-secure-installation MariaDB 설치 이후 해당 실행 파일은 아래의 경로에서 확인 할 수 있다. /usr/bin/mariadb-secure-installation 따로 인자없이 해당 파일을 실행하면 된다. 아래와 같은 내용을 적용 할 수 있다. - root 계정의 비밀번호를 설정 - Local Host 외부에서 엑세스 할 수 있는 root 계정 삭제 - 익명 사용자 계정 삭제 - 테스트 데이터베이스 삭제 적용 방법 아래와 같이 실행 하면 해당 순차적으로 실행되어 설정이 적용된다. /usr/bin/mariadb-secure-..

[MariaDB] Password 복잡도 설정 - simple_password_check Plugin
DATABASE/MariaDB2023. 12. 6. 09:14[MariaDB] Password 복잡도 설정 - simple_password_check Plugin

Password 복잡도 MariaDB의 계정의 패스워드에 대한 복잡도를 설정 할 수 있다. 계정의 패스워드에 최소 자리수, 대소문자, 특수문자, 숫자 등의 제한 값을 설정 할 수 있다. 이와 같은 내용을 설정 하는 플러그인 simple_password_check는 아래와 같이 적용 할 수 있다. 1. Plugin 확인 패스워드 복잡도를 설정하기위해 사용 할 simple_password_check 플러그인은 MariaDB와 함께 배포가 되지만, 기본적으로 설치되지는 않기에 확인 후 설치가 필요하다. Plugin Directory 경로 확인 -- 플러그인 경로 확인 mysql > show variables like 'plugin_dir%'; MariaDB의 플러그인이 모여있는 경로를 확인한다. simple_..

반응형
image