• 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 스토리지 엔진
  • 1. InnoDB 소개
    2. InnoDB의 개념과 아키텍처
    3. InnoDB 구성
    4. InnoDB 관리
    5. InnoDB 테이블 스페이스 관리
    1. InnoDB 테이블 스페이스 생성
    2. InnoDB File-Per-Table 모드
    3. File-Per-Table 모드 활성화 및 비활성화
    4. 테이블 공간의 위치 지정
    5. 테이블 공간의 다른 서버로 복사 (이동 가능한 테이블 스페이스)
    6. 별도의 테이블 스페이스에 InnoDB Undo 로그 저장
    7. InnoDB 로그 파일의 크기 변경 및 InnoDB 테이블 스페이스의 크기 변경
    8. 공유 테이블 스페이스에서 RAW 디스크 파티션의 사용
    6. InnoDB 테이블 관리
    7. InnoDB 압축 테이블
    8. InnoDB 파일 형식 관리
    9. InnoDB Row Storage and Row Formats
    10. InnoDB 디스크 I/O 및 파일 영역 관리
    11. InnoDB와 온라인 DDL
    12. InnoDB 부팅 옵션 및 시스템 변수
    13. InnoDB의 성능
    14. InnoDB INFORMATION_SCHEMA 테이블
    15. InnoDB 모니터
    16. InnoDB 백업 및 복구
    17. InnoDB와 MySQL 복제
    18. InnoDB 및 memcached의 통합
    19. InnoDB 문제 해결
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 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 새로운 기능

14.5.4 테이블 공간의 위치 지정

새로운 InnoDB file-per-table 테이블 공간을 MySQL 데이터 디렉토리 외부의 특정 위치에 생성하려면 CREATE TABLE 문 DATA DIRECTORY = absolute_path_to_directory 절을 사용합니다.

미리 위치를 계획합니다. ALTER TABLE 문에서 DATA DIRECTORY 절을 사용할 수 없기 때문입니다. 지정하는 디렉토리는 고속 SSD 와 대용량 HDD 등의 성능이나 용량에 뛰어났다 특징이있는 다른 저장 장치에 넣을 수 있습니다.

MySQL은 원하는 디렉토리에 데이터베이스 이름에 해당하는 하위 디렉토리를 만들고 그 안에 새 테이블의 .ibd 파일 을 만듭니다. MySQL은 MySQL DATADIR 디렉토리 아래의 데이터베이스 디렉토리에 테이블의 경로 이름을 포함 table_name .isl 파일을 만듭니다. .isl file 은 MySQL에 의해 심볼릭 링크처럼 처리됩니다. ( 실제 심볼릭 링크를 사용할 수 는 InnoDB 테이블에서는 지원되지 않습니다.)

다음의 예에서는 MySQL의 개발 또는 테스트 용 작은 인스턴스를 95 %가 사용 된 주 하드 드라이브를 탑재 한 노트북에서 실행하고 빈 공간이 많은 다른 저장 장치에 이름이 EXTERNAL 새로운 테이블을 배치하는 방법을 보여줍니다. 쉘 명령은 DATADIR 디렉토리 아래의 기본 ​​위치에있는 LOCAL 테이블 및 지정된 위치에있는 EXTERNAL 테이블에 다양한 경로를 나타냅니다.

mysql> \! df -k .
Filesystem   1024-blocks      Used Available Capacity  iused   ifree %iused  Mounted on
/dev/disk0s2   244277768 231603532  12418236    95% 57964881 3104559   95%   /

mysql> use test;
Database changed
mysql> show variables like 'innodb_file_per_table';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON    |
+-----------------------+-------+
1 row in set (0.00 sec)

mysql> \! pwd
/usr/local/mysql
mysql> create table local (x int unsigned not null primary key);
Query OK, 0 rows affected (0.03 sec)

mysql> \! ls -l data/test/local.ibd
-rw-rw----  1 cirrus  staff  98304 Nov 13 15:24 data/test/local.ibd

mysql> create table external (x int unsigned not null primary key) data directory = '/volumes/external1/data';
Query OK, 0 rows affected (0.03 sec)

mysql> \! ls -l /volumes/external1/data/test/external.ibd
-rwxrwxrwx  1 cirrus  staff  98304 Nov 13 15:34 /volumes/external1/data/test/external.ibd

mysql> select count(*) from local;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.01 sec)

mysql> select count(*) from external;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.01 sec)

참고 :
  • 먼저, MySQL은 .ibd 파일을 연 상태로 장치가 분리되지 않도록하고 있습니다 만, 서버가 사용 중이면 결과적으로 테이블을 닫게되는 경우가 있습니다. MySQL의 동작 중에 실수로 외부 장치를 분리하고 장치가 연결되어 있지 않을 때 MySQL을 시​​작하지 않도록주의하십시오. 관련 .ibd 파일이 결여 될 때 테이블에 액세스하려고하면 서버를 다시 시작해야하는 심각한 오류의 원인이됩니다.

    그래도 .ibd 파일이 기대하는 경로에없는 경우, 서버 재시작이 실패 할 수 있습니다. 이 경우 수동으로 데이터베이스 디렉토리의 table_name .isl 파일을 삭제하고 재부팅 후 DROP TABLE 을 실행 .frm 파일을 삭제하고 테이블에 대한 정보를 데이터 사전 에서 삭제합니다.

  • NFS가 마운트 된 볼륨에 MySQL 테이블을 배치하지 마십시오. NFS는 메시지 전달 프로토콜을 사용하여 파일에 쓰기 위해 네트워크 메시지가 손실되거나 순서대로 수신하지 않으며 경우에 데이터의 일관성을 잃게되는 원인이 될 수 있습니다.

  • LVM 스냅 샷 파일을 복사하거나 다른 파일 기반 메커니즘을 사용하여 .ibd 파일을 백업하면 반드시 먼저 FLUSH TABLES ... FOR EXPORT 문을 사용하여 메모리에 버퍼링 된 모든 변경 사항이 백업하기 전에 디스크에 플래시 되어 있는지 확인합니다.

  • DATA DIRECTORY 절은 심볼릭 링크 사용 지원되는 대안입니다. 이것은 계속 문제가 있으며, 각 InnoDB 테이블에 결코 지원되지 않았습니다.


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