본문 바로가기
반응형

전체 글722

Percona MySQL 5.7 InnoDB Slave 서버에서 mysqldump 백업을 수행하면서 Replication 포지션 확인방법 1. Slave의 현재 Replication 포지션 확인Slave에서 먼저:SHOW SLAVE STATUS\G다음 항목을 확인합니다.Master_Host: ...Master_Log_File: mysql-bin.001234Read_Master_Log_Pos: 123456789Relay_Master_Log_File: mysql-bin.001234Exec_Master_Log_Pos: 123450000Seconds_Behind_Master: 0여기서 중요한 것은 상황에 따라 다음 두 가지입니다.Master_Log_File + Read_Master_Log_PosRelay_Master_Log_File + Exec_Master_Log_Pos실제로 Slave에서 실행 완료된 시점의 복구 기준점을 잡으려면 일반적으로 R.. 2026. 8. 13.
Mysql 5.6.51 ⇒ Mysql 8.4.x slave 추가 가능한가? 결론 : 불가능, 단, 5.7 업그레이드 이후 , Mysql 8.0 단계 나눠서 진행 가능결론Slave 버전 Master 5.6.51에 붙일 수 있나 비고MySQL 5.7.x가능 (공식 지원)N → N+1 규칙 충족MySQL 8.0.x불가 (공식 미지원)5.6 → 8.0 은 메이저 2단계 점프MySQL 8.1~8.4 / 9.x불가8.4는 8.0 이상 master만 지원근거MySQL 복제 호환성 원칙은 "replica는 source보다 같거나 한 단계 높은 메이저 버전까지만" 입니다 (MySQL Replication Compatibility Between Versions).5.6 → 5.7 : 한 단계 → 지원5.6 → 8.0 : 두 단계 → 미지원. 실제로 붙여도 초기엔 동작하는 것처럼 보이는 경우가 .. 2026. 8. 11.
mysql performance_schema 에러모니터링 MySQL의 performance_schema를 활용한 에러 모니터링은 발생한 에러의 횟수를 요약하거나 MySQL Error Summary Tables 에러 로그를 실시간 테이블 형태로 조회하여 수행할 수 있습니다. 1. 에러 발생 횟수 및 정보 요약 조회전역적으로 발생한 에러와 경고를 요약하여 보여주는 테이블(events_errors_summary_global_by_error)을 통해 어떤 에러가 몇 번 발생했는지 추적합니다. sqlSELECT ERROR_NUMBER, ERROR_NAME, SQL_STATE, SUM_ERROR_RAISED, FIRST_SEEN, LAST_SEENFROM performance_schema.events_errors_summary_global_by_errorWHERE SU.. 2026. 7. 21.
MySQL 서버의 데이터 암호화 데이터 암호화MySQL 5.7 버전부터 데이터 암호화 기능이 지원됐다.처음에는 데이터 파일(테이블스페이스)에 대해서만 암호화 기능이 제공됐다.MySQL 8.0으로 업그레이드되면서 데이터 파일뿐만 아니라 리두 로그나 언두 로그, 복제를 위한 바이너리 로그 등도 모두 암호화 기능을 지원하기 시작했다.응용 프로그램의 암호화는 주로 중요 정보를 가진 칼럼 단위로 암호화를 수행한다.중요한 정보를 저장하는 서비스에서는 응용 프로그램에서 암호화한 데이터를 데이터베이스 서버에서 다시 암호화하는 이중 암호화 방법을 선택하기도 한다.데이터베이스 수준에서는 테이블 단위로 암호화를 적용한다.MySQL 서버의 데이터 암호화MySQL 서버의 암호화 기능은 데이터베이스 서버와 디스크 사이의 데이터 읽고 쓰기 지점에서 암호화 또는 .. 2026. 6. 30.
[MySQL 8.0] 데이터 암호화 - 3. 테이블 암호화 MySQL은 민감한 데이터를 보호하기 위해 애플리케이션 수준의 함수 암호화와 디스크 수준의 데이터베이스 암호화(TDE)를 모두 지원합니다. 데이터 유형과 보안 요구 사항에 따라 가장 적합한 방식을 선택하여 구현할 수 있습니다. 1. 애플리케이션 레벨 암호화 (함수 기반)테이블의 특정 컬럼에 민감한 개인정보를 암호화하여 저장할 때 사용합니다. 일반적으로 AES_ENCRYPT와 AES_DECRYPT를 사용합니다.암호화 예시:sqlSELECT HEX(AES_ENCRYPT('암호화할데이터', '암호화키'));코드를 사용할 때는 주의가 필요합니다. 복호화 예시:sqlSELECT CAST(AES_DECRYPT(UNHEX('암호화된16진수데이터'), '암호화키') AS CHAR);코드를 사용할 때는 주의가 필요합니다.. 2026. 6. 30.
MariaDB TDE 적용 (mariadb ENCRYPTION) Transparent Data Encryption - 데이터 저장 시 암호화해서 저장합니다. (공식문서 링크)원하는 Table만 암호화 할 수도 있고 테이블 마다 다른 암호화 키를 사용할 수 있으며 DB 전체, 그리고 로그도 선택적으로 암호화 할 수 있습니다.MariaDB에서는 암호화 키를 지원하는 세 가지의 plugin이 있습니다.File Key Management Encryption Plugin(파일 키 관리 암호화 플러그인)키 파일은 MariaDB 서버 자체 내에 저장됩니다. 가장 좋은 방법은 키 파일을 서버의 일부가 아닌 별도의 마운트에 보관하는 것입니다.AWS Key Management Encryption Plugin(AWS 키 관리 암호화 플러그인)키 파일은 AWS에 저장되고 AWS에서 관리합.. 2026. 6. 30.
SEMAPHORES 관련 체크 사항 [DeadLock , RW-latch, 병목현상] ----------- # 참고사항 ----------- SEMAPHORES 관련 체크 사항 로그상에 있는 SEMAPHORES 에서 어떤 쿼리 부분에 DeadLock 이 발생하는지 체크해보면 확인하는데 도움이 됨. SEMAPHORES ---------- OS WAIT ARRAY INFO: reservation count 102042071 --Thread 45052924928 has waited at btr0cur.cc line 1492 for 21.00 seconds the semaphore: SX-lock on RW-latch at 0xaba0cf0b8 created in file dict0dict.cc line 1954 a writer (thread id 45051926016) has reserved.. 2026. 2. 24.
PgSQL 시퀀스 관련 불일치 발생히 참고사항 PostgreSQL에서 INSERT 시 시퀀스(sequence) 불일치 문제가 발생하면 주로 duplicate key value violates unique constraint (고유성 제약 조건 위배) 오류가 발생합니다. 이는 시퀀스가 생성하는 다음 ID 값이 테이블에 이미 존재하는 ID 값보다 작거나 같을 때 발생합니다. 이 문제를 해결하는 가장 확실한 방법은 시퀀스의 현재 값을 테이블의 최대 ID 값에 맞게 재설정하는 것입니다.해결 방법다음 SQL 쿼리를 순서대로 실행하여 시퀀스를 재동기화할 수 있습니다.테이블의 현재 최대 ID 값 확인:id_column과 your_table을 실제 사용하는 컬럼 이름과 테이블 이름으로 바꾸어 줍니다.SELECT MAX(id_column) FROM your_tabl.. 2026. 1. 14.
PostgreSQL 성능 최적화 [postgresql.conf] PostgreSQL 성능 최적화는 postgresql.conf 파일의 주요 파라미터들(메모리, 연결, 로깅, 백업 등)을 서버 자원과 워크로드에 맞게 조정하는 작업으로, shared_buffers, work_mem, maintenance_work_mem, max_connections, effective_cache_size 등을 튜닝하고, 변경 후엔 재시작 또는 리로드해야 하며, 실제 환경에 맞는 테스트와 모니터링이 필수적입니다. 1. 주요 최적화 파라미터 및 설정메모리 관련 설정shared_buffers: PostgreSQL이 사용하는 공유 버퍼 크기로, 전체 시스템 메모리(RAM)의 약 25%를 권장하며, 데이터베이스 성능에 가장 큰 영향을 줍니다.work_mem: 정렬(Sort) 및 해시(Hash) .. 2025. 12. 30.
Galera Cluster 대신 AWS Aurora 를 채택하는 이유는? 현재 진행 중인 Gream 프로젝트에서는 AWS RDS Read Replication 을 활용한 Master-Slave 구조를 사용하고 있다.특히, CAP 에서 CA 를 최대한 만족하려고 노력했다.C(Consistency) : RDB 를 사용하여 일관된 데이터를 지원A(Availability) : 어떠한 노드가 죽더라도 사용자로 하여금 끊김없는 서비스 가용 확보Mater 노드가 죽는 경우, Slave 가 승격Slave 노드가 죽는 경우, 다른 Slave 노드로 트래픽 분산안타깝게도 RDB의 Master-Slave 구조는 Partition Tolerence 를 충족하기가 어렵다.일관된 구조의 스키마와 그에 따른 데이터로 동작하기에 여러 DB 서버를 독립적으로 운영하여 서로 다른 데이터를 저장하여 운영하기가.. 2025. 12. 8.
윈도우11 및 윈도우10 크랙없이 간단히 인증 받기 # 첫번째 명령어 - 프로버전 명령어 slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX - 홈버전 명령어 slmgr /ipk TX9XD-98N7V-6WMQ6-BX7FG-H8Q99 # 두번째 명령어 slmgr /skms kms8.MSGuides.com # 세번째 명령어 slmgr /ato 인증 서버 상태가 좋지 않아서 인증이 안 되는 경우도 있습니다. 마지막 명령어 입력시 인증을 받을 수 없다는 메세지가 나오면 두번째 명령어인 인증 서버 주소를 아래 목록에서 하나를 골라서 다시 실행하고 마지막 명령어인 slmgr /ato 를 실행하세요. slmgr /skms s9.us.to slmgr /skms kms.digiboy.ir slmgr /skms s8.uk.to slmgr /skms 5.. 2025. 11. 17.
postgressql DB간 테이블 조인 PostgreSQL에서 서로 다른 데이터베이스 간의 테이블을 직접 조인하려면 외부 데이터 래퍼(Foreign Data Wrapper, FDW)나 dblink 확장 기능을 사용해야 합니다. dblink는 원격 데이터베이스에 연결하여 쿼리를 수행할 수 있게 해주며, FDW는 다른 데이터베이스를 로컬처럼 사용할 수 있도록 해줍니다. DB 링크를 통해 쿼리할 때는 성능 문제가 발생할 수 있으므로 주의해야 합니다. dblink 사용하기dblink 확장 기능 설치 및 연결: 먼저 dblink를 활성화하고 원격 데이터베이스에 연결합니다.sql-- 확장 기능 활성화CREATE EXTENSION dblink;-- 연결 생성SELECT dblink_connect('conn_remote', 'host=remote_host .. 2025. 10. 30.
PostgreSQL에서 프로시저(또는 PL/pgSQL의 함수) 리턴 처리 PostgreSQL에서 프로시저(또는 PL/pgSQL의 함수)를 사용할 때 행을 선택하는 방법은 여러 가지가 있습니다. 이는 단일 행을 반환해야 하는지, 여러 행을 반환해야 하는지, 아니면 결과 집합을 반복해야 하는지에 따라 달라집니다.1. 단일 행(또는 단일 값) 반환:SELECT ... INTO: 쿼리 결과를 SELECT변수 또는 레코드 변수에 할당합니다. 쿼리가 여러 행을 반환하는 경우 첫 번째 행만 할당됩니다( STRICT두 개 이상의 행이 반환되면 오류가 발생하므로 를 사용하지 않는 한).코드 CREATE FUNCTION get_employee_name(employee_id INT) RETURNS TEXT AS $$ DECLARE emp_name TEXT; BEGI.. 2025. 10. 27.
PostgreSQL PGroonga 2.x 이상 사용 TutorialThis document describes how to use PGroonga step by step. If you don't install PGroonga yet, install PGroonga before you read this document.You can use PGroonga as fast full text search index. You can also use PGroonga as more general index for equality condition (=) and comparison conditions ( >= and so on).PostgreSQL provides GiST and GIN as bundled indexes. You can use PGroonga as alt.. 2025. 10. 24.
PostgreSQL PGroonga 설치를 통한 Full Text Search PostgreSQL에서 PGroonga를 사용하려면 먼저 설치한 후, CREATE EXTENSION pgroonga; 명령어로 확장 기능을 활성화합니다. 이후 CREATE INDEX 명령어로 pgroonga 인덱스를 생성하고, 이를 통해 빠른 전문 검색을 수행할 수 있습니다. PGroonga는 모든 언어를 지원하며, 기존 PostgreSQL의 전문 검색보다 빠르고 강력한 기능을 제공합니다. 1. 설치 및 활성화설치: 시스템에 맞게 PGroonga를 설치합니다. 설치 방법은 PGroonga 공식 설치 가이드를 참고하세요.활성화: PostgreSQL 데이터베이스에서 CREATE EXTENSION pgroonga; 명령어를 실행하여 확장 기능을 활성화합니다. 2. PGroonga 인덱스 생성테이블 생성: .. 2025. 10. 24.
Postgresql - Full Text Search(FTS) PostgreSQL Full Text Search 관련 내용입니다. 참고하세요. 1. 인덱스를 타지 않는 like %keyword% 검색일치하는 text를 찾기 위해 like 쿼리를 사용한다. 하지만 like 검색은 인덱스를 타지 않는다.B-tree 인덱스는 정렬된 순서로 저장이 되고 LEFT-TO-RIGHT 방식으로 왼쪽에서 오른쪽으로 정렬되는 방식으로 데이터를 저장하고 탐색한다. 즉, 첫 번째 문자부터 순차적으로 비교하도록 최적화되어있다. 시작문자로 되어있는 Like검색은 이게 적용이 된다. ( like'keyword%' ) 이런 특성으로 주로 '= >' 등의 연산과 같이 특정 값, 범위 내에 있는 값을 찾을 때 적절하다.LIKE '%keyword%' 의 경우엔 정렬된 순서를 사용할 수 없어.. 2025. 10. 23.
MySQL에서 PostgreSQL으로 마이그레이션 Mysql -> PostgreSQL 마이그레이션의 경우 pgloader 를 이용하는 방법과 SQL 변경해서 실행하는 방법으로 나눠집니다.본인의 환경에 맞게 진행하시면 됩니다. 이기종 마이그레이션을 실습해 보고 간단하게 어떠한 과정을 거치는 알아보려고 한다.환경은 MySQL 8버전 PostgreSQL 15 버전이다. MySQL 데이터베이스 접속mysql -u root -p MySQL 데이터베이스 생성먼저 MySQL에서 데이터베이스를 생성한다.CREATE DATABASE testdb; MySQL 테이블 생성생성한 데이터베이스에 접속한 후 테이블을 생성한다.USE testdb;CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, name VAR.. 2025. 10. 23.
Mysql 공간함수를 알아보기 전에 지도관련 알아볼까요? ‘지도’를 사용한 분석 혹은 서비스를 할 때, 행정 경계 등 정부에서 제공하는 SHP 파일 (Shape File)을 사용해야 하는 경우가 있을 텐데, 얘네들이 사용하는 좌표계가 생각보다 골치 아픈 문제가 됩니다.서울의 구 경계를 나타낸 데이터의 정보입니다. 잘 보시면 데이터 좌표계라는 생소한 개념이 있습니다. 아무 생각 없이 이런 SHP File들을 사용하시면 서울이 아주 엉뚱한 곳에 가 있을 확률이 높습니다.공간 참조 시스템지구상의 위치를 좌표로 변환하는 방법은 크게 GCS(Geographic Coordinate System)와 PCS(Projected Coordinate System)로 나뉩니다.GCSGCS는 3차원의 지구 모델에서 위도와 경도를 이용해 좌표를 나타냅니다. 여기서 좌표는 ‘경위도 좌표.. 2025. 9. 26.
Mysql 공간 데이터 개념 알아보 1. MySQL의 공간 데이터1-1. 공간 데이터 타입MySQL에서 제공하는 공간 데이터의 종류는 총 7가지이다. 단일 타입으로는 Point, LineString, Polygon 세 가지가 있고, 나머지 타입들은 이 세 가지 타입의 조합이다.Point : 좌표 공간의 한 지점LineString : 다수의 Point를 연결해 주는 선분Polygon : 다수의 선분이 연결되어 닫혀있는 상태각각의 컬럼에는 당연하게도 알맞은 데이터 타입만 입력할 수 있지만, geometry 타입에는 모든 공간 데이터 타입의 입력이 가능하다.1-2. 공간 함수공간 데이터들은 공간 함수를 통해 활용할 수 있다. 공간 함수에 대해선 공식 문서 에 잘 소개되어 있으니, 여기서는 대표적으로 사용 되는 몇 가지의 함수만 확인하려 한다.함.. 2025. 9. 25.
mysql Error_code: 1756 MySQL Error 1756(ER_MTS_INCONSISTENT_DATA)은 멀티스레드 슬레이브(MTS) 복제에서 슬레이브 코디네이터와 워커 스레드가 중지되어 데이터 일관성이 깨졌음을 나타내는 오류입니다. 이 오류는 복제된 데이터의 일관성이 깨져 슬레이브가 더 이상 정상적으로 작동할 수 없는 상태를 의미하며, 주로 원본 서버와 슬레이브 서버 간의 설정 차이, 데이터 불일치 등으로 인해 발생할 수 있습니다. 문제를 해결하려면 복제 시작 후 슬레이브 상태를 확인하고, 필요한 경우 슬레이브 재시작, 데이터 비교 및 일관성 복구 과정을 거쳐야 합니다. 오류의 원인멀티스레드 복제 중단:슬레이브 코디네이터와 워커 스레드가 비정상적으로 중지되면서 발생합니다. 데이터 불일치:마스터 서버와 슬레이브 서버 간의 데이.. 2025. 9. 1.
반응형