mysql gtid_executed 및 gtid_purged 변수
문제
나는 그 곳이 어디인지 알고 싶습니다. gtid_executed
그리고 gtid_purged
변수는 데이터베이스 엔진에 저장됩니다.이것이 단지 런타임 변수라면 정확히 어떻게 초기화됩니까?
해결책
이는 특정 스토리지 엔진의 일부가 아닙니다.GTID 변수는 다음을 실행하여 볼 수 있습니다.
SHOW GLOBAL VARIABLES LIKE 'gtid%';
또는
SELECT * FROM information_schema.global_variables
WHERE variable_name LIKE 'gtid%';
당신이 달릴 때 RESET MASTER
DB 서버에서는 이러한 값이 숨겨집니다.
MySQL 문서 에 대해 말한다 gtid_executed
RESET MASTER를 실행하면 이 변수의 전역 값(세션 값은 아님)이 빈 문자열로 재설정됩니다.RESET MASTER로 인해 세트가 삭제되는 경우를 제외하고 GTID는 이 세트에서 제거되지 않습니다.서버가 종료되고 모든 바이너리 로그가 제거되면 세트도 지워집니다.
MySQL 문서 에 대해 말한다 gtid_purged
RESET MASTER를 실행하면 이 변수의 값이 빈 문자열로 재설정됩니다.
SQL문이 실행되면, gtid_executed GTID 세트 값으로 업데이트됩니다.
MySQL 문서 에 대해 말한다 gtid_executed
서버가 시작되면 @@global.gtid_executed는 다음 두 세트의 합집합으로 초기화됩니다.
최신 바이너리 로그의 Previous_gtids_log_event에 나열된 GTID
최신 바이너리 로그의 모든 Gtid_log_event에서 발견된 GTID입니다.
이후 트랜잭션이 실행될 때 GTID가 세트에 추가됩니다.
gtid_purged 공백인 경우에만 설정할 수 있습니다.일반적으로 소스에 GTID가 활성화된 mysqldump를 다시 로드하는 동안 이 변수 세트를 설정합니다.
다른 팁
- 여기에서 시작해야합니다 : MySQL 소스 코드의 가이드 투어
- 그런 다음 gtid_executed < li>의 github 의 mysql 소스 코드를 검색 할 수 있습니다
당신은 가장 가능성이 높지만, 내가 가고 싶었던 한, 행운을 빕니다.