백업 분할
분할 백업 전략은 백업을 여러 부분으로 나누어 대규모 데이터베이스 서버를 마이그레이션하는 방법입니다. 다양한 접근 방식을 사용하여 백업의 각 부분을 마이그레이션할 수 있습니다. 다음 사용 사례에 가장 적합한 옵션일 수 있습니다.
-
대규모 데이터베이스 서버이지만 소규모 개별 데이터베이스 - 총 데이터베이스 서버의 크기가 TB 단위이지만 개별 독립 사용자 데이터베이스의 크기가 1TB 미만인 경우 바람직한 접근 방식입니다. 전체 마이그레이션 기간을 줄이기 위해 개별 데이터베이스를 개별적으로 병렬로 마이그레이션할 수 있습니다.
온프레미스 2TB 데이터베이스 서버에 대한 예제를 살펴봅니다. 이 서버는 각각 0.5TB인 4개의 데이터베이스로 구성됩니다. 각 개별 데이터베이스의 백업을 별도로 수행할 수 있습니다. 백업을 복원할 때 인스턴스의 모든 데이터베이스를 병렬로 복원하거나 독립된 데이터베이스인 경우 각 백업을 별도의 인스턴스에서 복원할 수 있습니다. 독립된 데이터베이스를 동일한 인스턴스에서 복원하는 대신 별도의 인스턴스에서 복원하는 것이 모범 사례입니다. 자세한 내용은 이 가이드의 모범 사례를 참조하세요.
-
대규모 데이터베이스 서버이지만 작은 개별 데이터베이스 테이블 - 총 데이터베이스 서버의 크기가 TB 단위이지만 각 독립 데이터베이스 테이블의 크기가 1TB 미만인 경우 바람직한 접근 방식입니다. 전체 마이그레이션 기간을 줄이기 위해 독립된 테이블을 개별적으로 마이그레이션할 수 있습니다.
1TB인 단일 사용자 데이터베이스 예제를 사용해 보겠습니다. 이 데이터베이스는 온프레미스 데이터베이스 서버의 유일한 데이터베이스입니다. 데이터베이스에는 10개의 테이블이 있으며 각 테이블은 100GB입니다. 각 개별 테이블의 백업을 별도로 수행할 수 있습니다. 백업을 복원하는 경우 인스턴스의 모든 테이블을 병렬로 복원할 수 있습니다.
-
데이터베이스에 트랜잭션 워크로드 테이블과 비트랜잭션 워크로드 테이블 모두 포함됨 - 이전 사용 사례와 마찬가지로 동일한 데이터베이스에 트랜잭션 워크로드 테이블과 비트랜잭션 워크로드 테이블이 모두 있는 경우 분할 백업 접근 방식을 사용할 수 있습니다.
온라인 트랜잭션 처리(OLTP)에 사용되는 0.5TB의 중요 워크로드 테이블과 이전 데이터를 아카이브하는 데 사용되는 단일 1.5TB 테이블로 구성된 2TB 데이터베이스 예제를 살펴보겠습니다. 아카이브 테이블을 제외한 모든 데이터베이스 객체의 백업을 단일 트랜잭션 및 일관된 백업으로 사용할 수 있습니다. 그런 다음 아카이브 테이블에 대한 다른 별도의 백업을 수행합니다. 아카이브 테이블 백업의 경우 조건을 사용하여 백업 파일의 행 수를 분할함으로써 여러 병렬 백업을 수행하는 방법도 고려할 수 있습니다. 다음은 예제입니다.
mysqldump -p your_db1 --tables your_table1 --where="column1 between 1 and 1000000 " > your_table1_part1.sql mysqldump -p your_db1 --tables your_table1 --where="column1 between 1000001 and 2000000 " > your_table1_part2.sql mysqldump -p your_db1 --tables your_table1 --where="column1 > 2000000 " > your_table1_part3.sql백업 파일을 복원할 때 트랜잭션 워크로드 백업과 아카이브 테이블 백업을 병렬로 복원할 수 있습니다.
-
컴퓨팅 리소스 제한 사항 - CPU, 메모리 또는 디스크 I/O와 같은 온프레미스 서버의 컴퓨팅 리소스가 제한된 경우 백업을 수행할 때 안정성과 성능에 영향을 미칠 수 있습니다. 전체 백업을 가져오는 대신 부분으로 나눌 수 있습니다.
예를 들어 온프레미스 프로덕션 서버는 워크로드가 많고 CPU 리소스가 제한적일 수 있습니다. 이 서버에서 멀티테라바이트 데이터베이스의 단일 실행 백업을 수행하는 경우 추가 CPU 리소스를 소비하고 프로덕션 서버에 부정적인 영향을 미칠 수 있습니다. 전체 데이터베이스 백업을 수행하는 대신 백업을 각각 2~3개의 테이블과 같이 여러 부분으로 나눕니다.