배경 이전 글과 같이 갑작스런 Primary OS crash에 따른 Master-Slave 간 sync_binlog 파라미터의 값에 따라 데이터 정합성에 깨짐이 있는지 확인 해볼 생각입니다. sync_binlog 관련 내용은 이전 글 또는 docs를 참조해주세요. https://jhdatabase.tistory.com/entry/MySQL-MariaDB-Replication-%EB%B3%B5%EC%A0%9C-%EC%97%90%EB%9F%AC-errorcode-1236 [MySQL & MariaDB - Replication 복제 에러 error_code : 1236] 배경 최근 Replication 구조에서 Primary DB가 갑작스레 서버가 죽으며, DB가 내려갔다. 이후 Slave DB에서 repli..
배경 최근 Replication 구조에서 Primary DB가 갑작스레 서버가 죽으며, DB가 내려갔다. 이후 Slave DB에서 replication이 에라 발생과 함께 정상적으로 동작하지 않았다. 발생 에러 ■ Slave status MariaDB [(none)]> show slave status\G; *************************** 1. row *************************** Slave_IO_State: Master_Host: 192.168.152.128 Master_User: repl Master_Port: 3306 Connect_Retry: 10 Master_Log_File: mysql.000001 Read_Master_Log_Pos: 568519 Relay_..
Federated engine이란 FEDERATED 스토리지 엔진을 사용하면 복제 또는 클러스터 기술을 사용하지 않고도 원격 MySQL 데이터베이스의 데이터에 액세스 할 수 있습니다. 로컬 FEDERATED 테이블을 쿼리하면 원격 테이블에서 데이터를 자동으로 가져옵니다. 로컬 테이블에는 데이터가 저장되지 않습니다. 표준 스토리지 엔진 (예 : MyISAM, CSV 또는 InnoDB) 중 하나를 사용하여 테이블을 생성할 때 테이블은 테이블 정의 및 관련 데이터로 구성됩니다. FEDERATED 테이블을 생성할 때 테이블 정의는 동일하지만 데이터의 물리적 스토리지는 원격 서버에서 처리됩니다. FEDERATED 스토리지 엔진은 더 이상 지원되지 않는 레거시 스토리지 엔진입니다. MariaDB 10.0 부터 CO..
발생 에러 MariaDB [(none)]> start slave; ERROR 1201 (HY000): Could not initialize master info structure for ''; more error messages can be found in the MariaDB error log ## 에러 로그 2023-12-20 16:42:39 0 [ERROR] Failed to open the relay log './kjh-relay-bin.000008' (relay_log_pos 633) 2023-12-20 16:42:39 0 [ERROR] Could not find target log during relay log initialization 2023-12-20 16:42:39 0 [ERROR] F..
Partition Exchange 란? 원본 테이블을 파티션 테이블로 생성한 후 원본 테이블의 데이터가 너무 커지면 파티션을 다른 테이블로 이관할 수 있는 기능으로 MariaDB Partition Exchange는 MariaDB에서 파티셔닝된 테이블에서 데이터를 교환하고 재조정하기 위한 기능입니다. 이 기능은 특히 대량의 데이터를 효과적으로 관리하고 쿼리 성능을 최적화하는 데 사용됩니다. 파티셔닝은 테이블을 논리적 또는 물리적으로 분할하여 데이터를 더 쉽게 관리하고 쿼리 성능을 향상시키는 기술입니다. MySQL 5.6 버전/MariaDB 10.0 버전부터 지원가능. 목적 및 장점 ■ 목적 : 보관주기가 지난 파티션을 삭제전 삭제 대상 데이터를 백업하기 위한 목적 ■ 장점 1) 특정 파티션에 대한 삭제 시..
데이터 사이즈가 크다면 물론 마이그레이션 전용 서버를 만드는 것이 좋습니다. 하지만 덤프파일 사이즈가 크지않고 로컬 컴퓨터의 여유공간이 있다면 따로 마이그레이션 전용 서버 생성하지 않고 데이터를 Export/Import 할 수 있습니다. Workbench 툴을 이용해 로컬 컴퓨터로 덤프파일을 export 후 import 해보았습니다. Test Data Export ■ Data Export 상단 바에서 Server -> Data Export 클릭 ■ Dump 대상 데이터베이스 선택 좌측이 database, 우측이 table 선택 후 덤프 받을 경로 지정 ■ Start Export ■ 덤프파일 확인 Import ■ Data Import 상단 바에서 Server -> Data Import 클릭 ■ Import..
Orchestrator 나 MHA 와 같은 HA 툴의 경우 Failover 등의 가용성 기능을 제공을 하지만 VIP 리소스 에 대한 기능은 제공하지 않아 별도의 스크립트 등으로 구현 해서 사용 해야 합니다. 물론 hooking이 되는 파라미터 나 스크립트 내 호출 함수 등에 대한 정보, 사용시 수정 해야할 사항 등은 정보가 제공되지만 VIP 를 Assign 하고 Relocate 하는 등의 실제 동작하는 부분에 해당하는 스크립트나 프로그램은 별도로 작성이 필요로 합니다. 따라서 저같은 경우에는 keepalived 툴을 사용하여 VIP 관리 할 예정입니다. Keepalived란? '로드밸런싱'과 '고가용성(HA)'를 제공하는 프레임워크. -. 로드밸런싱은 L4 수준의 로드 밸런싱(HAProxy와 함께 사용하..
Orchestrator 구축 이후 Takeover 및 Auto Failover를 설정하겠습니다. Orchestrator 구축 1편 : https://jhdatabase.tistory.com/134 [MySQL - Orchestrator 구축] part 1 Orchestrator란? MySQL용 복제 토폴로지 관리자로써 고가용성 및 복제 관리 툴입니다. 체인을 위아래로 훑으면서 마스터와 슬레이브를 찾아 MySQL 환경의 복제 토폴로지를 검색하는 기능을 제공합니다 jhdatabase.tistory.com Takeover Test ■ Master 확인 현재 Master -> 192.168.100.35 (DB 1번) mysql> show slave status\G; *************************..
Orchestrator란? MySQL용 복제 토폴로지 관리자로써 고가용성 및 복제 관리 툴입니다. 체인을 위아래로 훑으면서 마스터와 슬레이브를 찾아 MySQL 환경의 복제 토폴로지를 검색하는 기능을 제공합니다. 또한 GUI를 통해 복제 토폴로지를 리팩터링하는 데도 사용할 수 있는데, 드래그 앤 드롭 인터페이스를 사용해서 슬레이브를 마스터로 승격할 수 있습니다. 상태 개념을 사용해서 올바른 복구 방법을 지능적으로 선택하고 사용할 적당한 마스터 승격 프로세스를 결정하므로 노드에 장애가 발생할 경우 복구를 지원합니다. Orchestrator 기능 복제 트리의 토폴로지 및 상태를 자동으로 감지하고 모니터링합니다. GUI, CLI 또는 API를 사용하여 상태를 확인하고 작업을 수행할 수 있습니다. 마스터의 자동 ..
MySQL 3node 운영중 Master노드의 리소스 과부화 현상을 해소하고자 Read/Write Split을 하게되었습니다. Proxy서버로 ProxySQL을 사용하여 최종적으로 Write트랜잭션은 Master노드로만, Read 트랜잭션은 모든 노드로 가도록 설정하습니다. 테스트 환경 Hostname IP VIP DB Version proxy 192.168.100.84 proxysql-2.4.4 master 192.168.100.80 192.168.100.88 MySQL 8.0 slave1 192.168.100.81 MySQL 8.0 slave2 192.168.100.83 MySQL 8.0 사전 구성 MySQL서버 3nodes MHA구성 MariaDB [(none)]> show slave hosts\G..