• 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.27 서버 측 도움말 테이블의 복제

서버는 HELP 문의 정보를 저장하는 테이블을 mysql 데이터베이스에 보관합니다 ( 섹션 13.8.3 "HELP 구문" 을 참조하십시오). 이 테이블은 섹션 5.1.10 "서버 측의 도움말" 에서 설명한대로 수동으로로드 할 수 있습니다.

도움말 테이블 내용은 MySQL 레퍼런스 매뉴얼에서 추출됩니다. 각 MySQL 릴리즈 시리즈에 별 설명서 버전이 있으므로 도움말의 내용도 각 시리즈 별입니다. 일반적으로 서버 버전과 일치하는 버전의 도움말 내용을로드하십시오. 이것은 복제에 밀접한 관계가 있습니다. 예를 들어, MySQL 5.5 마스터 서버는 MySQL 5.5 도움말 내용을로드되지만 5.6 도움말 내용이 더 적합 MySQL 5.6 슬레이브 서버는 반드시 그 내용을 복제 할 필요가 없습니다.

이 섹션에서는 서버가 복제에 참여하면 도움말 테이블 내용의 업데이트를 어떻게 관리하는지 설명합니다. 서버 버전이이 작업의 하나의 요인입니다. 다른 하나는 도움말 테이블 구조가 마스터와 슬레이브로 다를 수 있다는 것입니다.

도움말 내용이 fill_help_tables.sql 라는 파일에 저장되어 있다고합니다. MySQL 배포판에서는이 파일은 share 또는 share/mysql 디렉토리 아래에 있으며, 최신 버전은 언제든지 http://dev.mysql.com/doc/index-other.html 에서 다운로드 할 수 있습니다.

도움말 테이블을 업그레이드하려면 다음 단계를 사용입니다. 여기에서 설명하는 mysql 명령의 연결 매개 변수는 표시되지 않습니다. 어떤 경우에도 mysql 데이터베이스의 테이블을 변경할 수있는 권한을 가진 root 등의 계정을 사용하여 서버에 연결하십시오.

  1. mysql_upgrade를 먼저 슬레이브에서 실행하고 마스터에서 실행하여 서버를 업그레이드합니다. 슬레이브를 먼저 업그레이드하는 것이 일반적인 원칙입니다.

  2. 도움말 테이블 내용을 마스터에서 슬레이브에 복제 여부를 결정합니다. 하지 않으면 마스터와 각 슬레이브에 개별적으로 내용을로드합니다. 또는 마스터 및 슬레이브에서 도움말 테이블 구조의 비 호환성을 확인하고 필요할 경우 해결 한 후 내용을 마스터에로드하고 거기에서 슬레이브에 복제합니다.

    도움말 테이블 내용을로드하는 이러한 두 가지 방법을 지금부터 자세히 설명합니다.

슬레이브에 복제없이 도움말 테이블 내용을로드하는

도움말 테이블의 내용을 복제하지 않고로드하려면 서버 버전에 적합한 내용을 포함 fill_help_tables.sql 파일을 사용하여 마스터 및 각 슬레이브에 각각 다음 명령을 실행합니다 (명령 행에 입력 합니다).

mysql --init-command="SET sql_log_bin=0"
  mysql < fill_help_tables.sql

복제 토폴로지에서 슬레이브가 다른 슬레이브 마스터로 작동하고있는 경우 각 서버 (슬레이브 포함)에 --init-command 옵션을 사용합니다. SET 문은 바이너리 로깅을 억제합니다. 업그레이드 할 각 서버에서 명령이 실행되면 완료입니다.

슬레이브에 복제 예 도움말 테이블 내용을로드하는

도움말 테이블의 내용을 복제하지 않는 경우는 마스터와 슬레이브 간의 도움말 테이블 비호를 확인합니다. help_category 및 help_topic 테이블의 url 컬럼은 처음에는 CHAR(128) 이었지만, 긴 URL에 대응하기 위해 새로운 MySQL 버전에서는 TEXT 입니다. 도움말 테이블 구조를 확인하려면 다음 문을 사용합니다.

SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'mysql'
AND COLUMN_NAME = 'url';

오래된 구조 테이블의 경우 문은 다음과 같은 결과를 반환합니다.

+---------------+-------------+-------------+
| TABLE_NAME    | COLUMN_NAME | COLUMN_TYPE |
+---------------+-------------+-------------+
| help_category | url         | char(128)   |
| help_topic    | url         | char(128)   |
+---------------+-------------+-------------+

새로운 구조의 테이블의 경우 문은 다음과 같은 결과를 반환합니다.

+---------------+-------------+-------------+
| TABLE_NAME    | COLUMN_NAME | COLUMN_TYPE |
+---------------+-------------+-------------+
| help_category | url         | text        |
| help_topic    | url         | text        |
+---------------+-------------+-------------+

마스터와 슬레이브 모두가 오래된 구조의 경우, 또는 모두가 새로운 구조의 경우 호환성이기 때문에 마스터에서 다음 명령을 실행하여 도움말 테이블의 내용을 복제 할 수 있습니다.

mysql mysql < fill_help_tables.sql

테이블 내용은 마스터에로드 된 후 슬레이브에 복제됩니다.

마스터와 슬레이브의 도움말 테이블이 호환되지 않는 경우 (하나의 서버가 오래된 구조에서 다른 새로운 구조) 도움말 테이블 내용을 최종적으로 복제 않거나 내용을 복사 할 수 있도록 테이블 구조를 호환 할지 여부를 선택할 수 있습니다.

  • 결국 내용을 복제하지 않는 것을 결정한 경우, 이미 설명했듯이, --init-command 옵션으로 mysql을 사용하여 마스터와 슬레이브를 개별적으로 업그레이드합니다.

  • 그렇지 않고 테이블 구조에 호환하기로 결정하면 서버에서 오래된 구조의 테이블을 업그레이드합니다. 마스터 서버의 테이블 구조가 이전합니다. 다음 문을 실행하여 테이블을 새로운 구조로 수동으로 업그레이드합니다 (이미 새로운 구조의 슬레이브로 변경이 복제되는 것을 방지하기 위해, 여기에서는 바이너리 로깅이 비활성화되어 있습니다).

    SET sql_log_bin=0;
    ALTER TABLE mysql.help_category ALTER COLUMN url TEXT;
    ALTER TABLE mysql.help_topic ALTER COLUMN url TEXT;
    

    다음 마스터에서 다음 명령을 실행합니다.

    mysql mysql < fill_help_tables.sql
    

    테이블 내용은 마스터에로드 된 후 슬레이브에 복제됩니다.


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