• 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. 리플리케이션
  • 18. MySQL Cluster
  • 1. MySQL Cluster 개요
    2. MySQL Cluster 설치
    3. MySQL Cluster 설정
    4. MySQL Cluster 프로그램
    5. MySQL Cluster 관리
    1. MySQL Cluster의 시작 단계 요약
    2. MySQL Cluster 관리 클라이언트 명령
    3. MySQL Cluster의 온라인 백업
    4. MySQL Cluster에서 MySQL 서버의 사용법
    5. MySQL Cluster의 롤링 재시작 실행
    6. MySQL Cluster에서 생성 된 이벤트 보고서
    7. MySQL Cluster 로그 메시지
    8. MySQL Cluster의 단일 사용자 모드
    9. Quick Reference: MySQL Cluster SQL문
    10. ndbinfo MySQL Cluster Information Database
    11. MySQL Cluster 보안 이슈
    12. MySQL Cluster Disk Data 테이블
    1. MySQL Cluster 디스크 데이터 객체
    2. 디스크 데이터 개체에서 심볼릭 링크 사용
    3. MySQL Cluster 디스크 데이터 스토리지 요구 사항
    13. MySQL Cluster 데이터 노드의 온라인 추가
    14. MySQL Cluster 배포 된 MySQL 권한
    15. NDB API 통계 카운터 및 변수
    6. MySQL Cluster Replication
    7. MySQL Cluster Release Notes
  • 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 새로운 기능

18.5.12.1 MySQL Cluster 디스크 데이터 객체

MySQL Cluster 디스크 데이터 스토리지는 여러 디스크 데이터 객체를 사용하여 구현됩니다. 여기에는 다음이 포함됩니다.

  • 테이블 공간은 다른 디스크 데이터 객체에 대한 컨테이너 역할을합니다.

  • Undo 로그 파일은 트랜잭션을 롤백하는 데 필요한 정보를 복원합니다.

  • 하나 이상의 Undo 로그 파일이 로그 파일 그룹에 할당 된 로그 파일 그룹은 테이블 스페이스에 할당됩니다.

  • 데이터 파일은 디스크 데이터 테이블 데이터가 저장됩니다. 데이터 파일은 테이블 공간에 직접 할당됩니다.

Undo 로그 파일 및 데이터 파일은 각 데이터 노드의 파일 시스템에있는 실제 파일입니다. 기본적으로 MySQL Cluster config.ini 파일에 지정된 DataDir 의 ndb_ node_id _fs 에 배치됩니다. 여기에서 node_id 는 데이터 노드의 ID입니다. Undo 로그 파일이나 데이터 파일을 만들 때 파일 이름의 일부로 절대 또는 상대 경로를 지정하면이를 다른 위치에 배치 할 수 있습니다. 이러한 파일을 생성하는 명령문은이 섹션의 뒷부분에서 설명합니다.

MySQL Cluster의 테이블 스페이스 및 로그 파일 그룹은 파일로 구현되어 있지 않습니다.

중요

모든 디스크 데이터 오브젝트 파일로 구현된다고는 것은 아니지만, 모두 동일한 네임 스페이스를 공유합니다. 즉, 각 디스크 데이터 개체 (단순히 특정 형태의 각 디스크 데이터 객체라고뿐만 아니라) 고유의 이름이 붙어 있어야합니다. 예를 들어, 테이블 스페이스 및 로그 파일 그룹에 모두 dd1 라는 이름을 붙일 수 없습니다.

모든 노드 (관리 노드 및 SQL 노드 포함)를 포함 MySQL Cluster를 이미 작성했다고 가정하면 디스크에 MySQL Cluster 테이블을 만들기위한 기본 단계는 다음과 같습니다.

  1. 로그 파일 그룹을 만들고이 하나 이상의 Undo 로그 파일을 지정합니다 (Undo 로그 파일은 undofile라는 것도 있습니다).

    참고

    Undo 로그 파일은 디스크 데이터 테이블에서만 필요합니다. 메모리에만 저장되는 NDBCLUSTER 테이블에서는 사용되지 않습니다.

  2. 테이블 공간을 만들고 테이블 공간에 로그 파일 그룹 및 하나 이상의 데이터 파일을 지정합니다.

  3. 데이터 저장을 위해이 테이블 공간을 사용하는 디스크 데이터 테이블을 만듭니다.

이러한 각 작업은 다음 예와 같이 mysql 클라이언트 또는 기타의 MySQL 클라이언트 응용 프로그램에서 SQL 문을 사용하여 수행 할 수 있습니다.

  1. CREATE LOGFILE GROUP 을 사용하여 lg_1 라는 로그 파일 그룹을 만듭니다. 이 로그 파일 그룹은 undo_1.log 및 undo_2.log 라는 2 개의 Undo 로그 파일로 구성됩니다. 초기 크기는 각각 16M 바이트와 12M 바이트입니다. (Undo 로그 파일의 기본 초기 크기는 128M 바이트입니다.) 옵션에서 로그 파일 그룹의 Undo 버퍼 크기를 지정하거나 기본값 8M 바이트가되는 것을 허용 할 수 있습니다. 이 예에서는 Undo 버퍼의 크기를 2 M 바이트로 설정합니다. 로그 파일 그룹은 Undo 로그 파일 함께 작성해야합니다. 따라서 다음의 CREATE LOGFILE GROUP 문 undo_1.log 을 lg_1 에 추가합니다.

    CREATE LOGFILE GROUP lg_1
        ADD UNDOFILE 'undo_1.log'
        INITIAL_SIZE 16M
        UNDO_BUFFER_SIZE 2M
        ENGINE NDBCLUSTER;
    

    로그 파일 그룹에 undo_2.log 을 추가하려면 다음 ALTER LOGFILE GROUP 문을 사용합니다.

    ALTER LOGFILE GROUP lg_1
        ADD UNDOFILE 'undo_2.log'
        INITIAL_SIZE 12M
        ENGINE NDBCLUSTER;
    

    몇 가지주의 사항 :

    • 여기에서 사용되는 .log 파일 확장자는 필수가 없습니다. 그것은 단순히 로그 파일을 쉽게 인식 할 수 있도록하기 위해 사용하고 있습니다.

    • 모든 CREATE LOGFILE GROUP 및 ALTER LOGFILE GROUP 문에 ENGINE 절을 포함해야합니다. MySQL Cluster NDB 7.3 이상에서는이 조항에 허용되는 값은 NDBCLUSTER 와 NDB 뿐입니다.

      중요

      특정 시점에서 동일한 MySQL Cluster는 최대 하나의 로그 파일 그룹 만 존재할 수 없습니다.

    • ADD UNDOFILE ' filename ' 을 사용하여 로그 파일 그룹에 Undo 로그 파일을 추가하면 클러스터의 각 데이터 노드의 DataDir 에있는 ndb_ node_id _fs 디렉토리에 filename 이라는 파일이 생성됩니다. 여기에서 node_id 는 데이터 노드의 ID입니다. 각 Undo 로그 파일의 크기는 SQL 문으로 지정됩니다. 예를 들어, MySQL Cluster에 4 개의 데이터 노드가 포함되어있는 경우 여기에 나와 ALTER LOGFILE GROUP 문은 4 개의 Undo 로그 파일 (4 개의 각 데이터 노드의 데이터 디렉토리에 하나씩)을 만듭니다. 이러한 각 파일의 이름은 undo_2.log 이며, 각 파일 크기는 12M 바이트입니다.

    • UNDO_BUFFER_SIZE 는 사용 가능한 시스템 메모리의 양에 의해 제한됩니다.

    • CREATE LOGFILE GROUP 문 자세한 내용은 섹션 13.1.14 "CREATE LOGFILE GROUP 구문" 을 참조하십시오. ALTER LOGFILE GROUP 대한 자세한 내용은 섹션 13.1.3 "ALTER LOGFILE GROUP 구문" 을 참조하십시오.

  2. 이 시점에서 데이터를 저장하기 위해 MySQL Cluster 디스크 데이터 테이블에서 사용되는 파일을 저장하는 테이블 공간을 만들 수 있습니다. 테이블 공간은 특정 로그 파일 그룹에 연결됩니다. 새 테이블 공간을 만들 때는 Undo 로깅에 사용되는 로그 파일 그룹을 지정해야합니다. 데이터 파일도 지정해야합니다. 테이블 공간이 작성되면 추가 데이터 파일을 테이블 공간에 추가 할 수 있습니다. 테이블 스페이스에서 데이터 파일을 제거 할 수 있습니다 (데이터 파일을 삭제하는 예는이 섹션의 뒷부분에서 설명합니다).

    로그 파일 그룹으로 lg_1 를 사용하는 ts_1 라는 테이블 공간을 작성한다고 가정합니다. 이 테이블 스페이스는 data_1.dat 및 data_2.dat 라는 이름으로 초기 크기가 각각 32 M 바이트 및 48M 바이트의 2 개의 데이터 파일이 저장됩니다. ( INITIAL_SIZE 의 기본 값은 128M 바이트입니다.) 이것은 다음과 같이 두 개의 SQL 문을 사용하여 실행할 수 있습니다.

    CREATE TABLESPACE ts_1
        ADD DATAFILE 'data_1.dat'
        USE LOGFILE GROUP lg_1
        INITIAL_SIZE 32M
        ENGINE NDBCLUSTER;
    
    ALTER TABLESPACE ts_1
        ADD DATAFILE 'data_2.dat'
        INITIAL_SIZE 48M
        ENGINE NDBCLUSTER;
    

    CREATE TABLESPACE 문은 데이터 파일 data_1.dat 를 포함하는 테이블 스페이스 ts_1 을 만들고 ts_1 를 로그 파일 그룹 lg_1 에 연결합니다. ALTER TABLESPACE 는 두 번째 데이터 파일 ( data_2.dat )를 추가합니다.

    몇 가지주의 사항 :

    • Undo 로그 파일의 예에서 사용한 .log 파일 확장자의 경우와 마찬가지로 .dat 파일 확장자에도 특별한 의미는 없습니다. 단순히 데이터 파일을 쉽게 인식 할 수 있도록 사용되고 있습니다.

    • ADD DATAFILE ' filename ' 을 사용하여 테이블 스페이스에 데이터 파일을 추가하면 클러스터의 각 데이터 노드의 DataDir 에있는 ndb_ node_id _fs 디렉토리에 filename 이라는 파일이 생성됩니다. 여기에서 node_id 는 데이터 노드의 ID입니다. 각 데이터 파일의 크기는 SQL 문을 지정합니다. 예를 들어, MySQL Cluster에 4 개의 데이터 노드가 포함되어있는 경우 여기에 나와 ALTER TABLESPACE 문은 4 개의 각 데이터 노드의 데이터 디렉토리에 하나씩 4 개의 데이터 파일을 만듭니다. 이러한 각 파일의 이름은 data_2.dat 이며, 각 파일 크기는 48M 바이트입니다.

    • 모든 CREATE TABLESPACE 및 ALTER TABLESPACE 문에는 ENGINE 절을 포함해야합니다. 테이블 스페이스는 테이블 스페이스와 같은 스토리지 엔진을 사용하는 테이블 만 작성할 수 있습니다. MySQL Cluster NDB 7.3에서는이 조항에 허용되는 값은 NDBCLUSTER 와 NDB 뿐입니다.

    • CREATE TABLESPACE 및 ALTER TABLESPACE 문에 대한 자세한 내용은 섹션 13.1.18 "CREATE TABLESPACE 구문" 및 섹션 13.1.8 "ALTER TABLESPACE 구문" 을 참조하십시오.

  3. 이 시점에서 디스크 테이블 스페이스 ts_1 에 인덱스가없는 컬럼을 포함하는 테이블을 만들 수 있습니다.

    CREATE TABLE dt_1 (
        member_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
        last_name VARCHAR(50) NOT NULL,
        first_name VARCHAR(50) NOT NULL,
        dob DATE NOT NULL,
        joined DATE NOT NULL,
        INDEX(last_name, first_name)
        )
        TABLESPACE ts_1 STORAGE DISK
        ENGINE NDBCLUSTER;
    

    TABLESPACE ... STORAGE DISK 옵션은 디스크 데이터 스토리지 용으로 테이블 스페이스 ts_1 를 사용하도록 NDBCLUSTER 스토리지 엔진에 지시합니다.

    참고

    CREATE TABLE 또는 ALTER TABLE 문에서 열 정의의 일부로 STORAGE 절을 사용하면 개별 열을 디스크와 메모리에 모두 저장 위치를 지정할 수도 있습니다. STORAGE DISK 를 지정하면 컬럼은 디스크에 저장되어 STORAGE MEMORY 를 지정하면 인 메모리 스토리지가 사용됩니다. 자세한 내용은 섹션 13.1.17 "CREATE TABLE 구문" 을 참조하십시오.

    다음과 같이 테이블 ts_1 이 작성되면 다른 MySQL 테이블의 경우와 마찬가지로 INSERT , SELECT , UPDATE 및 DELETE 문을 실행할 수 있습니다.

    여기에서 정의 된 테이블 dt_1 의 경우 dob 및 joined 컬럼 만이 디스크에 저장됩니다. 그 이유는 id , last_name , 그리고 first_name 컬럼에 인덱스가 있기 때문에 이러한 컬럼에있는 데이터를 RAM에 저장되기 때문입니다. MySQL Cluster NDB 7.3 및 MySQL Cluster NDB 7.4에서는 인덱스없이 열만 디스크에 저장할 수 인덱스 및 인덱스 된 컬럼 데이터는 계속 메모리에 저장됩니다. 인덱스의 사용과 RAM의 저장의 이러한 트레이드 오프는 디스크 데이터 테이블을 설계 할 때 유의할 필요가 있습니다.

성능 고려 데이터 노드 파일 시스템에서 분리 된 물리적 디스크에 디스크 데이터 파일을 유지하는 경우 디스크 데이터 스토리지를 사용하는 클러스터의 성능이 크게 향상됩니다. 탁월한 이점을 얻기 위해서는 클러스터의 데이터 노드마다이를 실행해야합니다.

ADD UNDOFILE 및 ADD DATAFILE 는 파일 시스템의 전체 경로와 상대 경로를 사용할 수 있습니다. 상대 경로는 데이터 노드의 데이터 디렉토리에 상대적으로 계산됩니다. 심볼릭 링크를 사용할 수 있습니다. 자세한 내용 및 예제는 섹션 18.5.12.2 "디스크 데이터 개체에서 심볼릭 링크 사용" 을 참조하십시오.

이들을 사용하는 로그 파일 그룹, 테이블 스페이스 및 디스크 데이터 테이블은 특정 순서로 작성해야합니다. 이러한 개체를 제거 할 때에도 마찬가지입니다.

  • 로그 파일 그룹은 테이블 공간에서 사용되는 한, 삭제할 수 없습니다.

  • 테이블 스페이스는 데이터 파일을 포함하고있는 한, 삭제할 수 없습니다.

  • 테이블 공간을 사용하는 테이블이 남아있는 한, 테이블 공간에서 어떤 데이터 파일도 삭제할 수 없습니다.

  • 파일이 작성된 테이블 스페이스와 다른 테이블 스페이스에 관련된 생성 된 파일은 삭제할 수 없습니다. (Bug # 20053)

예를 들어,이 섹션에서 지금까지 만들어 온 모든 개체를 삭제하려면 다음 문을 사용합니다.

mysql> DROP TABLE dt_1;

mysql> ALTER TABLESPACE ts_1
    -> DROP DATAFILE 'data_2.dat'
    -> ENGINE NDBCLUSTER;

mysql> ALTER TABLESPACE ts_1
    -> DROP DATAFILE 'data_1.dat'
    -> ENGINE NDBCLUSTER;

mysql> DROP TABLESPACE ts_1
    -> ENGINE NDBCLUSTER;

mysql> DROP LOGFILE GROUP lg_1
    -> ENGINE NDBCLUSTER;

이러한 진술은 여기에 제시된 순서대로 수행해야합니다. 그러나 2 개의 ALTER TABLESPACE ... DROP DATAFILE 명령문은 어떤 순서로도 실행할 수 있습니다.

INFORMATION_SCHEMA 데이터베이스 FILES 테이블을 쿼리하면 디스크 데이터 테이블에 의해 사용되는 데이터 파일에 대한 정보를 얻을 수 있습니다. 추가 " NULL 행」에는 Undo 로그 파일에 대한 추가 정보가 표시됩니다. 자세한 내용 및 예제는 섹션 21.30.1 "INFORMATION_SCHEMA FILES 테이블" 을 참조하십시오.

ndb_desc 유틸리티를 사용하면 디스크 데이터 테이블 또는 테이블 파티션마다 할당 된 및 디스크 공간에 대한 정보를 표시 할 수 있습니다. 자세한 내용은 섹션 18.4.10 "ndb_desc - NDB 테이블보기" 를 참조하십시오.

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