지원되지 않는 MySQL 스토리지 엔진에 대한 자동 백업
MySQL DB 엔진의 경우, 자동 백업은 InnoDB 스토리지 엔진에만 지원됩니다. MyISAM 등의 다른 MySQL 스토리지 엔진에서 이러한 기능을 사용하는 경우 백업 복원 시에 작동이 불안정할 수 있습니다. 특히 MyISAM과 같은 스토리지 엔진은 안정적인 충돌 복구를 지원하지 않으므로 충돌 시 테이블이 손상될 수 있습니다. 이 같은 이유로 InnoDB 스토리지 엔진을 사용할 것을 권장합니다.
-
기존 MyISAM 테이블을 InnoDB 테이블로 변환하려면
ALTER TABLE
명령을 사용하면 됩니다(예:ALTER TABLE
).table_name
ENGINE=innodb, ALGORITHM=COPY; -
MyISAM을 사용하는 경우
REPAIR
명령을 사용하여 충돌 후 손상된 테이블을 수동으로 복구할 수 있습니다. 자세한 내용은 MySQL 설명서의 REPAIR TABLE 문을 참조하십시오. 그러나 MySQL 문서에 기재된 바와 같이 데이터를 전부 복원하지 못할 수도 있습니다. -
MyISAM 테이블을 복원하기 전에 테이블의 스냅샷을 생성하려면 다음 단계를 따릅니다.
-
MyISAM 테이블의 모든 활동을 중지합니다(모든 세션 닫기).
SHOW FULL PROCESSLIST
명령에서 반환되는 각 프로세스에 대해 mysql.rds_kill 명령을 호출하여 모든 세션을 닫을 수 있습니다. -
각 MyISAM 테이블에 잠금 및 플러시를 수행합니다. 예를 들어, 다음 명령은
myisam_table1
및myisam_table2
라는 두 테이블을 잠그고 플러시합니다.mysql> FLUSH TABLES myisam_table, myisam_table2 WITH READ LOCK;
-
DB 인스턴스 또는 다중 AZ DB 클러스터 스냅샷을 생성합니다. 스냅샷을 완료하면 MyISAM 테이블에서 잠금을 해제하고 활동을 다시 시작합니다. 다음 명령을 사용하여 테이블의 잠금을 해제할 수 있습니다.
mysql> UNLOCK TABLES;
이러한 단계를 통해 MyISAM에서 메모리에 저장된 데이터를 디스크로 강제 플러시하여 DB 스냅샷 복원 시 깨끗한 상태에서 시작할 수 있습니다. DB 스냅샷을 만드는 방법에 대한 자세한 내용은 Amazon RDS의 단일 AZ DB 인스턴스에 대한 DB 스냅샷 생성 단원을 참조하십시오.
-