본문 바로가기
반응형

분류 전체보기703

mysql Error_code: 1756 MySQL Error 1756(ER_MTS_INCONSISTENT_DATA)은 멀티스레드 슬레이브(MTS) 복제에서 슬레이브 코디네이터와 워커 스레드가 중지되어 데이터 일관성이 깨졌음을 나타내는 오류입니다. 이 오류는 복제된 데이터의 일관성이 깨져 슬레이브가 더 이상 정상적으로 작동할 수 없는 상태를 의미하며, 주로 원본 서버와 슬레이브 서버 간의 설정 차이, 데이터 불일치 등으로 인해 발생할 수 있습니다. 문제를 해결하려면 복제 시작 후 슬레이브 상태를 확인하고, 필요한 경우 슬레이브 재시작, 데이터 비교 및 일관성 복구 과정을 거쳐야 합니다. 오류의 원인멀티스레드 복제 중단:슬레이브 코디네이터와 워커 스레드가 비정상적으로 중지되면서 발생합니다. 데이터 불일치:마스터 서버와 슬레이브 서버 간의 데이.. 2025. 9. 1.
Mysql 트랜잭 동시성 제어와 락 이용방법 동시성 제어와 락은 데이터베이스 시스템에서 여러 개의 트랜잭션이 동시에 실행될 때 데이터의 일관성과 무결성을 유지하기 위한 기술입니다. 트랜잭션은 데이터베이스에서 원자적으로 실행되어야 하는 작업의 단위를 의미하며, 동시에 여러 개의 트랜잭션이 수행될 때 문제가 발생할 수 있습니다. 동시성 제어는 동시에 실행되는 트랜잭션들이 서로 간섭하지 않고 정확하게 실행되도록 보장하는 메커니즘입니다. 동시성 제어를 통해 데이터베이스 시스템은 다음과 같은 목표를 달성할 수 있습니다. 일관성 유지: 동시에 실행되는 트랜잭션들이 데이터베이스를 일관된 상태로 유지해야 합니다. 즉, 트랜잭션 간의 충돌이나 모순된 상태가 발생하지 않아야 합니다.격리 수준 제어: 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않고 독립적으로.. 2025. 8. 20.
Mysql TRANSACTION 동시 실행 관련 제어 MySQL 프로시저 내에서 트랜잭션을 사용하면 동시 실행 시 데이터 일관성을 유지하는 데 도움이 됩니다. 프로시저 내에서 트랜잭션을 사용하면 여러 쿼리를 원자적으로 처리하여 데이터베이스 상태를 일관되게 유지할 수 있습니다. 하지만, 동시 트랜잭션 실행 시에는 교착 상태(deadlock)나 락 경합(lock contention)과 같은 문제가 발생할 수 있으므로 주의해야 합니다. MySQL 프로시저에서 트랜잭션 사용: 프로시저는 여러 SQL 문을 그룹화하여 재사용 가능한 단위로 만드는 기능입니다. 트랜잭션은 이러한 SQL 문들을 원자적으로 처리하여 데이터베이스의 일관성을 보장합니다. 프로시저 내에서 트랜잭션을 사용하면 다음과 같은 장점이 있습니다. 데이터 무결성 보장:여러 쿼리를 하나의 트랜잭션으로 묶.. 2025. 8. 20.
mariadb 테이블 백업시 특정 기간 mysqldump 방 MariaDB 테이블의 특정 기간 데이터를 덤프하려면 mysqldump 명령어를 사용하고, --where 옵션으로 원하는 기간 조건을 추가해야 합니다. 예를 들어, events 테이블에서 2024년 1월 1일부터 2024년 1월 31일까지의 데이터를 덤프하려면 다음과 같이 실행합니다:mysqldump -u [사용자이름] -p[비밀번호] [데이터베이스이름] events --where="event_date BETWEEN '2024-01-01' AND '2024-01-31'" > events_202401.sql상세 설명: 1. mysqldump 명령어:MariaDB 데이터를 덤프하는 데 사용되는 기본 명령어입니다.2. -u [사용자이름] -p[비밀번호]:데이터베이스 접속에 필요한 사용자 이름과 비밀번호를 입력.. 2025. 8. 12.
NOSQL 사용해야 하는 이유 있을까? 안녕하세요.오늘은 NOSQL 사용해야 하는 이유 있을까라는 주제를 이용해서 이야기를 해볼까 합니다. NoSQL 데이터베이스는 유연성, 확장성, 고성능 및 다양한 데이터 유형 처리에 유리하여 특정 상황에서 기존 관계형 데이터베이스(RDBMS)보다 나은 선택지가 될 수 있습니다. NoSQL은 특히 빠르게 변화하는 데이터 구조와 대규모 데이터를 처리해야 하는 현대적인 애플리케이션에 적합하다고 합니다. 하지만 모두 장/단점이 있으니 본인에게 필요 부분으로 DATABASE 를 사용하면 될것 같습니다. NoSQL을 사용해야 하는 주요 이유:유연한 데이터 모델:NoSQL 데이터베이스는 스키마 유연성을 제공하여 데이터 구조 변경이 빈번한 경우 유용합니다. RDBMS와 달리 스키마를 미리 정의할 필요가 없어 새로.. 2025. 7. 17.
MongoDB 특/장점 알아보기 안녕하세요.MongoDB 특/장점 알아볼려고 하는데요. 몽고디비는 대용량 데이터를 처리할 때 우수한 성능을 발휘하는 NoSQL 데이터베이스입니다. 그러나 트랜잭션 처리의 엄격성이 상대적으로 떨어지며, 네이티브 조인을 지원하지 않는 등 모든 용도에 적합하지 않을 수 있습니다. 이 글에서는 몽고디비의 장단점과 함께 자세한 예시로 확인해보도록 하겠습니다. MongoDB MongoDB는 고성능, 고가용성 및 쉬운 확장성을 제공하는 NoSQL, Document 지향 데이터베이스입니다.데이터를 배열 및 중첩 Document와 같은 복잡한 데이터 유형을 효율적으로 저장할 수 있는 유연한 JSON과 유사한 형식인 BSON(Binary JSON)으로 저장합니다. Database, Collection 및 Document.. 2025. 7. 9.
mariadb mroonga 특수문자 처리 방법 MariaDB에서 Mroonga를 사용할 때 특수 문자를 처리하는 방법은 몇 가지 있습니다. Mroonga는 Groonga 기반의 풀텍스트 검색 엔진이므로, Groonga의 특수 문자 처리 규칙을 따라야 합니다. 주로 이스케이프 처리, 매칭 방식 변경 등을 통해 특수 문자를 다룹니다.1. 이스케이프 처리Mroonga는 특수 문자를 일반 문자와 구분하기 위해 이스케이프 처리를 사용합니다. 예를 들어, +, -, &&, ||, !, (, ), {, }, [, ], ^, ", ~, *, ?, : 와 같은 문자는 특수 문자로 간주될 수 있습니다. 이러한 특수 문자를 검색어에 포함시키려면, 이스케이프 문자인 `\`를 앞에 붙여야 합니다. 예를 들어, +를 검색하려면 \+ 와 같이 입력해야 합니다. 2. 매칭 방식.. 2025. 7. 7.
MySQL과 Mroonga로 구현하는 강력한 한글 검색 엔진 MySQL과 Mroonga로 구현하는 강력한 한글 검색 엔진안녕하세요, 그동안 수많은 프로젝트에서 검색 시스템을 구축하며 쌓아온 경험을 바탕으로, 오늘은 MySQL과 Mroonga를 활용해 효율적이고 강력한 한글 검색 엔진을 구현하는 방법을 공유하려 합니다.대규모 서비스에서는 Elasticsearch 같은 전문 검색 엔진을 사용하는 경우가 많지만, 중소규모 프로젝트에서는 비용과 운영 복잡도로 인해 부담스러울 수 있습니다.이런 상황에서 MySQL과 Mroonga 조합은 적은 리소스로도 뛰어난 검색 성능을 제공하며, 특히 한글 검색에 최적화된 솔루션으로 자리 잡고 있습니다.이 가이드가 유용한 대상Elasticsearch 도입이 부담스러운 스타트업 개발자기존 MySQL/MariaDB 환경에서 검색 기능을 강화.. 2025. 6. 27.
엑셀 오늘기준 일주일뒤 날짜를 알고 싶다 엑셀에서 오늘 기준으로 일주일 뒤의 날짜를 구하는 방법은 다음과 같습니다. 방법 1: TODAY() 함수와 더하기 연산 셀에 =TODAY()+7 또는 =TODAY()+7을 입력합니다.오늘 기준으로 일주일 뒤 날짜가 표시됩니다. 방법 2: 날짜 계산 셀에 =2025-06-17을 입력합니다.오늘 날짜를 2025년 6월 10일로 가정하고, 일주일 뒤인 2025년 6월 17일이 표시됩니다. 참고:TODAY() 함수는 엑셀의 현재 날짜를 반환하는 함수입니다. 일주일은 7일이므로 7을 더하면 일주일 뒤 날짜를 구할 수 있습니다. 날짜를 직접 입력하여 계산할 수도 있습니다. 날짜 서식을 변경하려면 원하는 형식으로 설정할 수 있습니다. 추가적으로 두날짜 사이는 몇일일까? DAYS(시작일자,끝일자) 를 넣으면 몇.. 2025. 6. 10.
The xtrabackup command-line options Mysql8 버젼 Xtrabackup 시 옵션 체크 하면 좋을것 같아서 스크랩합니다. Here you can find all of the command-line options for the xtrabackup binary.Modes of operation¶You invoke xtrabackup in one of the following modes:--backup mode to make a backup in a target directory--prepare mode to restore data from a backup (created in --backup mode)--copy-back to copy data from a backup to the location that contained the orig.. 2025. 6. 10.
Postgresql에서 실행계획을 볼 때 알면 도움이 되는 것들 정말 오랬만에 괜찮은 글을 찾은듯 해서 공유해봅니다. 설명 잘되어 있고 그리고 쉽게 이애가 가능한 조인 부분의 설명, 그리고 항상 중요하게 생각하는 쿼리 실행계획 부분에 대한 내용들, 이야기들이 있기 때문에 참고하면 좋을것 같아서 공유해봅니다. 원문 : https://joyfulviper.tistory.com/108 최근 백오피스에서 특정 쿼리의 성능이 너무 낮아 해당 쿼리의 실행계획을 보게 됐다. 이 과정속에서 알게된 내용을 기록하고자 한다. 보통 우리는 데이터를 영구적으로 저장하기 위해서 db를 사용한다. (파일 시스템을 써도 되기는 하지만.. dbms가 제공해주는 기능들을 생각하면 파일 시스템을 쓸 생각은 하지 못할 것이다) 이 때 데이터는 컴퓨터의 디스크에 저장이 된다. 아래는 제프딘의 컴.. 2025. 4. 25.
Foreign Key 에 대한 사용 유무 어떤게 좋을까? FK에 대한 기본적인 이야기 FK를 사용하지 않는 이유FK는 한 테이블이 다른 테이블을 참조하는 제약 조건이라 데이터 무결성을 보장하여 안전한 데이터 관리가 가능하다. 그러나 성능 저하를 유발할수도 있고, 복잡도 때문에 데이터베이스 운영 난이도를 높일 수 있다.성능 저하FK를 사용하지 않는 경우보다 FK를 사용할 경우 데이터 변경 시 더 많은 lock을 유발하기 때문에 동시성이 높은 상황에서 성능 저하가 발생할 우려가 있다. 데이터 변경이 빈번한 경우 성능 저하에 대한 문제가 더 많이 발생할 수 있다.유지 관리 어려움FK를 사용하면 데이터 변경이나 삭제 시 관련된 각 테이블 간의 연관성을 고려해야 한다. 테이블의 수가 증가하고 관계가 더 복잡해질수록 데이터 수정 작업은 점점 어려워진다. 그리고 FK가 적.. 2025. 3. 21.
Mysql 8.4 -> Mysql 8.0 다운 그레이드 mysqldump option–single-transaction : lock 을 걸지 않고도 dump 파일의 정합성 보장하는데 InnoDB 테이블이 아닌 MyISAM or MEMORY 테이블인 경우에는 여전히 상태가 변경 될 수 있다.MySQL에선 큰 테이블을 덤프하려면 –quick 옵션과 결합하기를 권장한다.–databases : dump 할 db명을 지정한다. 여러 개를 한번에 지정하는 것도 가능하다.–tables : dump 할 table명을 지정한다. 마찬가지로 여러 개를 한번에 지정 할 수 있다.# 전체 백업mysqldump --single-transaction --all-databases -h [db주소] -u [username] -p > backup_file.sql# 백업시 프로시저 및 이벤.. 2025. 3. 20.
wiki.js , 공유, 프린트 버튼 없애기 문서 공유툴 : wiki.js 설명 링크 : https://docs.requarks.io/en/guide/intro  wiki.js , 공유, 프린트 버튼 없애기 등록위치 : Admin > Theme > Code 등록 후 적용. .page-shortcuts-card {display: none!important} 2025. 3. 19.
mariadb timeout 관련 참고 사항 제한 시간 값이 MariaDB 소스에 적합한지 확인 이 사전 마이그레이션 평가는 작업의 MariaDB 소스 엔드포인트에 net_read_timeout, net_wait_timeout 및 wait_timeout 설정이 300초 이상으로 설정되어 있는지 확인합니다. 이는 마이그레이션 중에 연결이 끊어지지 않도록 하기 위해 필요합니다.자세한 내용은 작업 중에 대상 MySQL 인스턴스 연결이 끊김 단원을 참조하십시오.제한 시간 값이 MariaDB 대상에 적합한지 확인 이 사전 마이그레이션 평가에서는 작업의 MariaDB 대상 엔드포인트에 net_read_timeout, net_wait_timeout 및 wait_timeout 설정이 300초 이상으로 설정되어 있는지 확인합니다. 이는 마이그레이션 중에 연결이 끊.. 2025. 3. 19.
Mysql - Foreign Key(외래키) 1. 외래키 (Foreign Key)란?외래키는 두 테이블을 서로 연결하는 데 사용되는 키이다.외래키가 포함된 테이블을 자식 테이블이라고 하고 외래키 값을 제공하는 테이블을 부모 테이블이라한다.2. 외래키 사용시 주의 사항1) 외래키 값은 NULL이거나 부모 테이블의 기본키 값과 동일해야한다. (참조 무결성 제약조건)2) 부모 테이블의 기본키, 고유키를 외래키로 지정할 수 있다.3) 부모 테이블의 기본키, 고유키가 여러개의 컬럼으로 이루어져 있다면 부모가 가진 기본키, 고유키 컬럼을 원하는 개수만큼 묶어서 외래키로 지정할 수 있다. CREATE TABLE `parent` ( `id1` INT(11) NOT NULL, `id2` INT(11) NOT NULL, `id3` INT(11) NOT NULL, `.. 2025. 3. 12.
MySQL - 외래키(Foreign Key) 의견. 외래키를 쓰지 않는 이유 관계형 DB에 관계가 단순할때는 문제가 없지만, 복잡한 관계를 맺으면 문제가 생긴다. 기본적으로 FK는 인덱스이다. UPDATE, DELETET시 외래키로 인해 성능 저하가 생긴다.부모테이블, 자식테이블 모두 해당 컬럼 인덱스 생성이 필요하고, 변경 시 부모/자식 테이블 데이터 체크 과정이 필요하여 잠금이 발생한다.데드락의 원인이 된다. (참고 : https://martin-son.github.io/Martin-IT-Blog/mysql/foreign%20key/performance/2022/02/28/foreign-key-Performance.html)확장성, 유연성이 좋지 못하다.설계 수정 같은 것을 하고 싶을때 병목이 된다.데이터베이스 schema 마이그래이션, 샤딩 할때 방.. 2025. 3. 12.
[DE] ETL과 ELT의 개념 1. ETL1-1. 정의ETL 프로세스란 여러 소스에서 데이터를 수집하고, 이를 표준화하여, 분석을 위한 데이터 웨어하우스 또는 저장을 위한 데이터베이스 또는 기타 유형의 데이터 소스에 적재하는 데이터 통합 프로세스이다.1-2. 단계E(Extract) : 추출변경 알림 기반 데이터 추출증분 데이터 추출전체 데이터 추출다양한 소스들(비즈니스 시스템, API, 센서 데이터, 데이터베이스 등)로부터 데이터를 추출(수집)한다.T(Transform) : 변환표준화정리중복 제거형식 수정다양한 데이터를 표준화하기 위해 여러 기술(솔루션)을 적용한다.L(Load) : 적재전체 적재증분 적재변환된 데이터를 저장한다.1-3. 필요성데이터는 조직의 가장 큰 자산 중 하나이다. 그러나 유용한 데이터는 대부분 구조화되지 않고 .. 2025. 3. 7.
mysql_native_passwordMySQL 8.4에서 로드되지 않은 오류를 수정하는 방법 MySQL 8.4(2024년 기준 최신 LTS 릴리스)에 도입된 주요 변경 사항 중 하나는 "MySQL Native Password" 플러그인이 더 이상 기본적으로 활성화되지 않는다는 것입니다. 또한 MySQL 9.0은 이 플러그인을 완전히 제거합니다.이 변경 사항은 인증 플러그인과 함께 MySQL 데이터베이스를 사용하는 PHP 및 기타 애플리케이션에 영향을 미칩니다 mysql_native_password. mysql_native_password플러그인이 더 이상 기본적으로 로드되지 않거나 전혀 사용할 수 없기 때문에 PHP PDO/MySQLi 연결이 실패합니다.더 이상 로드되지 않은 플러그인을 사용하여 데이터베이스에 연결을 시도하면 mysql_native_passwordPDO/MySQLi는 MySQL에.. 2025. 3. 4.
Mysqldump 사용법 알아보 1. mysqldump 기본구조mysqldump -u[user_id] -p[user_pw] [option] [db_name] [tb_name] > [backup_file_name.sql]-u[user_id] : MariaDB 접속 계정-p[user_pw] : MairaDB 접속 비밀번호[option] : dump 옵션, 여러개 중첩이 가능[db_name] : 옵션 별 필요에 의한 Database 명칭[tb_name] : 옵션 별 필요에 의한 Table 명칭[backup_file_name.sql] :  백업받을 파일 명, 경로가 지정되지 않을 경우 스크립트를 실행하는 디렉토리에 파일 생성.2. 전체 데이터베이스 백업하기Option : --all-databases mysqldump -u[user_id] -p.. 2025. 3. 4.
반응형