본문 바로가기

MYSQL

MariaDB - General Log 하루치씩 남기는 방법 MariaDB의 일반 로그(general_log)를 하루치씩 저장하고 오래된 로그는 자동으로 삭제하는 방법입니다.Windows에서 .bat 파일과 Linux에서 .sh 스크립트를 사용하여 처리할 수 있습니다.  Windows (Batch 파일)@echo off:: 현재 시간을 형식에 맞게 설정 (예: 0830)set TIME2=%TIME: =0%set TIME3=%TIME2:~0,2%%TIME2:~3,2%:: 일반 로그 비활성화C:\MariaDB\bin\mysql.exe -uroot -p비밀번호 --execute="set global general_log=off":: 로그 파일 복사 및 날짜/시간을 파일명에 추가copy C:\DB_LOG\DB01_history.log C:\Storage\DB_LOG\DB.. 더보기
MariaDB - 무중단 Replication 설정 : DB인스턴스 추가 및 변경 개요현재 DB1(172.16.34.6)과 DB2(172.16.34.7)는 양방향(Master-Master) 리플리케이션 구조로 설정되어 있습니다.DB2의 서버 부하가 심각하게 발생하여, 신규 서버인 DB0(172.16.34.5)를 추가하고, DB2를 대체하려는 절차입니다.최종 목표는 기존의 DB1 DB2 구조를 DB1 DB0 구조로 변경하는 것입니다.서비스 중단 없이 이루어져야 하므로 무중단 리플리케이션 설정을 적용합니다.작업 서버 정보DB0: 신규 서버 (IP: 172.16.34.5)DB1: 기존 서버, 마스터 서버 (IP: 172.16.34.6)DB2: 기존 서버, 부하 발생 중 (IP: 172.16.34.7)사전 준비: my.cnf 설정모든 MariaDB 서버에서 [mysqld] 섹션에 각 서버.. 더보기
MariaDB - 초기 보안 설정 mysql_secure_installation 사용법 MariaDB 보안 설치(mysql_secure_installation)는 MariaDB 서버의 보안을 강화하기 위해 필수적인 단계입니다.이 과정을 통해 MariaDB 서버의 기본 설정을 보완 및 보안 취약점을 줄일 수 있습니다. MariaDB 보안 설치를 해야 하는 이유MariaDB 서버는 초기 설치 시 root 계정에는 패스워드가 설정되지 않거나, 익명 사용자 계정이 존재할 수 있습니다.MariaDB 보안 설치를 통해 다음과 같은 이점을 얻을 수 있습니다.1. root 계정 비밀번호 설정 : root 계정은 MariaDB 관리자 계정으로 필수로 보호해야 합니다.2. 익명 사용자 계정 제거 : 익명 사용자 계정은 보안 취약점을 유발할 수 있습니다.3. 원격 root 계정 로그인 금지 : 관리자 계정의 .. 더보기
MariaDB - AUTO_INCREMENT 확인 및 초기화 방법 DB 관리를 하다 보면 연속된 숫자 ID를 자동으로 생성해 주는 AUTO_INCREMENT 속성을 자주 사용하게 됩니다.시퀀스란?시퀀스(Sequence)는 데이터베이스에서 자동으로 생성되는 일련의 숫자들을 의미합니다.MariaDB에서는 AUTO_INCREMENT 속성을 사용하여 테이블의 기본 키 값으로 이러한 시퀀스를 생성해 사용합니다.새로운 레코드가 삽입될 때마다 자동으로 증가하여, 각 행에 고유한 식별자를 부여합니다.AUTO_INCREMENT의 필요성고유성 보장 : 각 레코드에 고유한 식별자를 자동으로 부여하여 데이터 고유성을 보장합니다.데이터 무결성 유지 : 중복된 값이 들어가는 것을 방지하여 데이터 무결성을 유지합니다.AUTO_INCREMENT 사용 시 발생할 수 있는 문제점갭 발생 : 수동으로 .. 더보기
MariaDB - Connection Memory Management와 주요 메모리 파라미터 튜닝 1. 튜닝이 왜 필요한가?MariaDB의 메모리 튜닝은 서버의 성능 최적화와 안정성 보장을 위해 필수적입니다. 성능 최적화 : 튜닝을 통해 적절하게 메모리를 사용하면 처리 속도가 빨라지고, 데이터베이스 응답 시간이 단축됩니다.안정성 향상 : 메모리 설정을 통해 메모리 누수나 과도한 사용으로 인한 서버 다운타임을 방지할 수 있습니다.자원 효율성 : 시스템 자원을 효율적으로 사용하여 서버 운영 효율성을 높일 수 있습니다. 2. 튜닝을 하면서 주의할 점메모리 한계점 확인 : 과도한 메모리 할당은 시스템 전체의 성능 저하를 발생시킬 수 있습니다.단계적 조정 : 한 번에 많은 설정을 변경하기보다는, 모니터링하면서 단계적으로 변경하는 게 중요합니다.테스트 환경 사용 : 설정 변경 전 테스트 환경에서 성능 테스트를 .. 더보기
MariaDB - 컬럼 내 문자 변경(Replcae) DB를 관리하다 보면 특정 문자를 다른 문자로 변경해야 할 때가 있습니다. 이럴 때 REPLACE 함수를 자주 사용합니다. REPLACE 함수란?REPLACE 함수는 문자열 내에서 특정 문자를 다른 문자로 변경하는 기능을 합니다.원본 문자열: 변경 전 원본 문자열입니다.찾을 문자열: 원본 내 대상 문자열입니다.교체 문자열: 새로 변경할 문자열입니다. 사용방법REPLACE('원본 문자열', '찾을 문자열', '교체 문자열') 또는REPLACE('컬럼', '찾을 문자열', '교체 문자열') 단순 문자열 교체SELECT REPLACE('samsodb mysql', 'mysql', 'MariaDB');'samsodb mysql' 이라는 문자열에서 'mysql' 을 'MariaDB' 로 변경해서 보여주는 SQL입.. 더보기
MariaDB - max_connections 변경하기 max_connections 이란?MariaDB의 max_connections 설정은 데이터베이스 서버가 동시에 처리할 수 있는 최대 클라이언트 연결 수를 지정합니다.각 클라이언트 연결은 데이터베이스에 쿼리를 실행하거나 데이터를 조작할 때 필요합니다.  max_connections를 왜 변경해야 하나?자원 한계 관리: 서버의 CPU나 메모리 등 자원은 한정적이기에, 너무 많은 연결이되면 시스템 과부하되어 성능 저하나 서비스 중단이 될 수 있습니다.성능 최적화: 동시 연결 수를 조절함으로써 서버의 응답 시간을 개선하고 자원 사용률을 최적화합니다.보안 강화: 연결 수를 제한함으로써 잠재적인 DoS(Denial of Service) 공격 또는 비정상적인 트래픽 증가에 대한 위험을 줄일 수 있습니다.max_co.. 더보기
MariaDB - DB 백업 및 복구하기 MariaDB 백업 방법 MariaDB 데이터베이스를 백업하는 방법 중 두 가지 자주 사용하는 백업 방법을 알아봅니다. 1. mysqldump 명령어를 이용한 백업 방법 mysqldump 명령어를 사용하면 MariaDB 데이터베이스의 백업 파일을 생성할 수 있습니다. 다음 명령어를 터미널 또는 명령 프롬프트에서 실행합니다. # mysqldump -u 사용자이름 -p 데이터베이스이름 > 백업파일.sql 사용자이름은 MariaDB에 접속 가능한 계정 데이터베이스이름은 백업하려는 데이터베이스이름 1-1. DB 전체 백업 # mysqldump -u 사용자이름 -p -A > full_backup.sql # mysqldump -u 사용자이름 -p --all-databases > full_backup.sql 1-2... 더보기