MySQL 또는 MariaDB DBMS에서 공유 테이블스페이스의 데이터를 테이블당 파일 테이블스페이스로 이동

모두 펼치기 | 모두 접기

MySQL 및 MariaDB DBMS에서는 다음 방법에 따라 데이터를 저장할 수 있습니다.

공유 테이블 공간을 사용하면 테이블스페이스 조각화 위험이 증가합니다. SHRINK 작업은 수행할 수 없으므로 공유 테이블스페이스에 있는 파일이 디스크 공간의 최대 90% 정도를 차지할 수 있습니다. 이는 디스크 하위 시스템 성능에 부정적인 영향을 미칩니다. 따라서 테이블당 파일 테이블스페이스를 선택하는 것이 좋습니다.

이 문서에서는 공유 테이블스페이스에서 테이블당 파일 테이블스페이스로 데이터를 이동하는 방법을 설명합니다. 다른 애플리케이션에서도 MySQL 또는 MariaDB DBMS를 사용할 경우, 해당 애플리케이션의 데이터베이스를 테이블당 파일 테이블스페이스로 옮겨야 합니다.

중앙 관리 서버용 MySQL 또는 MariaDB DBMS를 사용하는 경우에만 이 절차를 수행하는 것이 좋습니다.
공유 테이블스페이스에서 테이블당 파일 테이블스페이스로 데이터를 옮기면 디스크 하위 시스템의 부하가 증가할 수 있습니다.

필수 구성 요소

시작하기 전에 다음을 확인하십시오.

필요한 디스크 공간은 현재 총 데이터베이스 크기(ibdata1 파일의 현재 크기)의 150%입니다.

프로세스

다음 방법에 따라 공유 테이블스페이스에서 테이블당 파일 테이블스페이스로 데이터를 옮길 수 있습니다.

  1. Kaspersky Security Center 중앙 관리 서버 서비스 및 이 절차를 수행할 DBMS 인스턴스를 사용하는 기타 애플리케이션을 중지합니다.
  2. DBMS 버전에 따라 DBMS에 수퍼유저로 로그인한 다음, 원하는 애플리케이션에서 fix_tablespace.sql 스크립트를 실행합니다.

    다음 링크를 클릭하여 fix_tablespace.sql 스크립트를 볼 수 있습니다.

    MySQL 5.7 및 MariaDB 10.1 이상을 위한 스크립트 보기

    MySQL 8.0 이상을 위한 스크립트 보기

    스크립트 실행을 중지하면 안 됩니다.
    DBMS 오류가 발생하지 않았지만 스크립트 실행을 종료한 경우 스크립트를 다시 실행하거나 이 절차의 단계 수행을 멈춘 다음, DBMS 서비스를 다시 시작하고 백업에서 중앙 관리 서버 데이터를 복원합니다.

  3. my.cnf 파일의 [mysqld] 섹션에서 innodb_file_per_table 파라미터를 1로 설정합니다.
  4. MySQL 또는 MariaDB 서비스를 재개합니다.
  5. Kaspersky Security Center 중앙 관리 서버 서비스를 시작합니다.

데이터가 공유 테이블스페이스에서 테이블당 파일 테이블스페이스로 옮겨집니다.

맨 위로