문제

나는 그 곳이 어디인지 알고 싶습니다. 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를 다시 로드하는 동안 이 변수 ​​세트를 설정합니다.

다른 팁

  1. 여기에서 시작해야합니다 : MySQL 소스 코드의 가이드 투어
  2. 그런 다음 gtid_executed < li>의 github 의 mysql 소스 코드를 검색 할 수 있습니다

    당신은 가장 가능성이 높지만, 내가 가고 싶었던 한, 행운을 빕니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 dba.stackexchange
scroll top