• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 1. Replication 구성
    2. Replication 구현
    3. Replication 솔루션
    4. Replication Notes and Tips
    1. Replication 기능과 이슈
    1. Replication and AUTO_INCREMENT
    2. Replication and BLACKHOLE 테이블
    3. Replication and Character Sets
    4. CREATE ... IF NOT EXISTS 문 복제
    5. CREATE TABLE ... SELECT 문 복제
    6. CREATE SERVER, ALTER SERVER 및 DROP SERVER 복제
    7. CURRENT_USER ()의 복제
    8. DROP ... IF EXISTS 문 복제
    9. 테이블 정의가 다른 마스터와 슬레이브에 복제
    10. Replication and DIRECTORY Table Options
    11. 호출되는 기능의 복제
    12. 복제 및 부동 소수점 값
    13. 복제 및 소수 초 지원
    14. 복제 및 FLUSH
    15. 복제와 시스템 함수
    16. 복제 및 LIMIT
    17. 복제 및 LOAD DATA INFILE
    18. 복제 및 REPAIR TABLE
    19. 복제 및 마스터 또는 슬레이브 Shutdowns
    20. 복제와 max_allowed_pa​​cket
    21. 복제 및 MEMORY 테이블
    22. 복제 및 임시 테​​이블
    23. mysql 시스템 데이터베이스의 복제
    24. 복제 및 쿼리 최적화
    25. 복제 및 예약어
    26. 복제중인 슬레이브 오류
    27. 서버 측 도움말 테이블의 복제
    28. Replication 및 서버 SQL 모드
    29. Replication 시도 및 시간 제한
    30. Replication 및 Time Zones
    31. Replication 및 트랜잭션
    32. Replication 및 트리거
    33. Replication 및 TRUNCATE TABLE
    34. Replication 및 변수
    35. Replication 및 Views
    2. MySQL 버전 간의 복제 호환성
    3. Replication 설정 업그레이드
    4. Replication 문제 해결
    5. Replication 버그 또는 문제를보고하는 방법
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

17.4.1.21 복제 및 MEMORY 테이블

마스터 서버가 종료하고 다시 시작하면 MEMORY 테이블은 비어 있습니다. 마스터는이 영향을 슬레이브에 복제하기 위해 시작한 후 소정의 MEMORY 테이블을 처음 사용 할 때 하늘에해야 할 테이블의 DELETE 문을 바이너리 로그에 기입하는 것으로, 그 테이블을 비워야 있는 것을 슬레이브에 알리는 이벤트를 기록합니다.

슬레이브 서버가 종료하고 다시 시작하면 MEMORY 테이블은 비어 있습니다. 이에 따라 슬레이브는 마스터와 동기화를 잃고 다른 오류가 발생하거나 슬레이브가 정지 할 수 있습니다.

  • 마스터에서받을 줄 형식 업데이트 및 삭제  Can't find record in 'memory_table'  에서 실패 할 수 있습니다.

  • INSERT INTO ... SELECT FROM memory_table 등의 문이 마스터 및 슬레이브에서 다른 행 집합을 삽입 할 수 있습니다.

MEMORY 테이블을 복제하는 슬레이브를 다시 시작하는 안전한 방법은 먼저 마스터의 MEMORY 테이블에서 모든 행을 삭제하거나 제거하여 이러한 변경 사항이 슬레이브에 복제 될 때까지 기다리는 것입니다. 그러면 슬레이브를 다시 시작하는 것이 안전합니다.

경우에 따라서는 다른 재부팅 방법을 적용 할 수 있습니다. binlog_format=ROW 의 경우, 슬레이브를 다시 시작하기 전에 slave_exec_mode=IDEMPOTENT 을 설정하면, 슬레이브의 정지를 피할 수 있습니다. 이에 따라 슬레이브 복제를 계속할 수 있지만, MEMORY 테이블은 여전히 마스터의 것과 다릅니다. 응용 프로그램 논리가 MEMORY 테이블의 내용을 안전하게 잃을 수있다 같은 것 인 경우 (예를 들어, MEMORY 테이블이 캐시에 사용되는 경우)는 이제 괜찮습니다. slave_exec_mode=IDEMPOTENT 가 모든 테이블에 전체적으로 적용되므로 MEMORY 않은 테이블에서 다른 복제 오류를 숨길 수 있습니다.

(위의 방법은 MySQL Cluster에 적용되지 않습니다. slave_exec_mode 항상 IDEMPOTENT 에서 변경할 수 없습니다.)

MEMORY 테이블의 크기는 max_heap_table_size 시스템 변수의 값에 의해 제한되고, 이것은 복제되지 않습니다 ( 섹션 17.4.1.34 "복제 및 변수" 를 참조하십시오). max_heap_table_size 의 변경은 변경 후 ALTER TABLE ... ENGINE = MEMORY 또는 TRUNCATE TABLE 을 사용하여 만들거나 업데이트 된 MEMORY 테이블에 또는 서버 재부팅 후 모든 MEMORY 테이블에 반영됩니다. 이 변수의 값을 마스터에서 늘 슬레이브에서 그렇지 않으면 마스터 테이블이 노예의 것보다 커질 수 있기 때문에 삽입이 마스터에 성공하더라도 슬레이브에서 Table is full 오류 실패합니다 : 이것은 알려진 문제입니다 (Bug # 48666). 이러한 경우 마스터와 마찬가지로 슬레이브에서 max_heap_table_size 전역 값을 설정 한 다음 복제를 다시 시작해야합니다. 또한 새로운 값이 각각 전체 (글로벌)에 반영되는 것을 보장하기 위해 마스터와 슬레이브의 MySQL 서버를 다시 시작하는 것이 좋습니다.

MEMORY 테이블에 대한 자세한 내용은 섹션 15.3 "MEMORY 스토리지 엔진" 을 참조하십시오.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved