복제를 이용한 백업 전략

복제를 이용한 백업 전략

내 프로덕션 데이터베이스에는 슬레이브 서버에 복제된 모든 MyISAM 테이블이 있습니다. 백업이 필요할 때는 슬레이브에서 mysql 서버를 중지하고 테이블 파일을 복사한 후 서버를 다시 시작하면 됩니다. 이것은 몇 년 동안 잘 작동해 왔습니다. 그러나 이제 몇 가지 잠금 문제가 있어서 마스터에 있는 몇 개의 테이블을 InnoDB로 변환해야 합니다. 더 이상 슬레이브에 테이블 파일을 복사할 수 없을 것 같습니다. 몇 가지 질문이 있습니다.

  1. 동일한 데이터베이스에 MyISAM과 InnoDB 테이블을 혼합하는 것이 좋은 생각입니까? 다양한 유형의 테이블이 조인 및 기타 작업에 사용됩니다.

  2. 슬레이브에 2개의 백업 프로세스가 있어야 합니까? 하나는 MyISAM을 백업하고 다른 하나는 InnoDB 테이블을 백업해야 합니까? 나에게는 엉망인 것 같습니다.

  3. InnoDB 테이블을 슬레이브의 MyISAM 테이블로 변환하고 기존 백업 프로세스를 유지할 수 있습니까? 마스터의 InnoDB 테이블이 슬레이브의 MyISAM 형식으로 동일한 테이블에 복제될 수 있습니까?

답변1

  1. 특정 애플리케이션에 대해 혼합 및 전체 InnoDB 테이블 간의 성능 차이를 확인하고 싶을 수도 있지만 혼합 테이블 유형은 괜찮습니다.

  2. 테이블을 혼합하지 않더라도 덤프를 수행하여 백업하는 것이 좋습니다. 이는 파일/폴더를 복사하는 것보다 훨씬 더 바람직합니다. 이렇게 하면 다른 서버나 MySQL 버전으로 쉽게 이동할 수 있기 때문입니다.

  3. 이를 두 개의 별도 백업으로 분할할 이유가 없습니다.

특히 트랜잭션을 사용하는 경우 슬레이브의 테이블 형식을 변경하지 않는 것이 좋습니다. InnoDB 테이블을 유지함으로써 슬레이브는 트랜잭션을 올바르게 처리합니다. 테이블을 MyISAM으로 변경하면 백업에 부분 트랜잭션이 포함되어 문제가 발생할 수 있으며, 이는 복원을 수행해야 할 때 나쁜 소식이 될 수 있습니다.

관련 정보