데이터베이스 재로딩

대용량 phpbb 데이터베이스를 마이그레이션하고 있습니다. 기존 사이트가 활성 상태인 동안 대부분의 마이그레이션을 수행한 후, 마이그레이션 주말에 데이터베이스를 다시 로드한 뒤 마이그레이션 스크립트를 재실행하는 방식을 고려하고 있습니다. 이렇게 하면 마이그레이션 주말에 가져와야 할 작업이 300,000건에서 수천 건의 사용자 게시글로 줄어들 것입니다.

  1. 이 방식이 실현 가능한가요? 마이그레이션 스크립트가 MySQL 데이터베이스 외부에서 재개 지점(resume points)을 유지하나요?
  2. 이전 작업을 초기화하거나 중복 없이 새로운 데이터베이스 덤프를 업로드할 수 있는 쉬운 방법이 있나요?

최적의 관행이나 조언을 환영합니다.

네, phpbb 가져오기 스크립트는 이를 지원합니다. 업데이트된 sql 데이터베이스를 로드한 후 스크립트를 다시 실행하기만 하면 됩니다. 기존 콘텐츠는 건너뛰고 누락된 항목만 Discourse에 추가합니다.

답장 주셔서 감사합니다. "업데이트된 SQL 데이터베이스를 로드한 후"라는 답변에 대해 명확히 알고 싶습니다.

이것이 새 덤프 파일을 자동으로 인식하여 데이터베이스를 업데이트한다는 의미인가요? 아니면 업데이트된 데이터로 데이터베이스를 수동으로 새로고침해야 한다는 의미인가요?

MySQL에서 이전 데이터베이스를 삭제하고, 최신 SQL 파일을 새 데이터베이스로 가져온 다음, 최신 데이터베이스를 로드하는 가져오기 스크립트를 실행해야 합니다.

해당 스크립트는 모든 데이터베이스 내용을 순회하며, 일부 콘텐츠(사용자, 게시물 등)가 이미 Discourse에 존재하는지 감지하고, 새로운 데이터만 가져옵니다.

해석해 주셔서 감사합니다.

@Canapin 마이그레이션에 대한 안내 감사합니다. 테이블에서 레코드가 삭제된 경우(예: 제품 또는 제품 옵션 삭제)에 대비하여 질문 하나만 드리겠습니다.

해당 스크립트는 테이블의 해당 행을 업데이트하나요?

아니요, 그리고 게시글과 사용자에 대한 업데이트(수정)도 감지하지 않습니다.

업데이트를 공유합니다. 저는 phpBB 마이그레이션을 두 단계로 나누어 진행했습니다.

첫 번째 마이그레이션

현재 phpBB 시스템이 여전히 프로덕션 환경에서 운영 중일 때 다음과 같은 작업을 수행했습니다:

  • 표준 phpBB 마이그레이션 가이드라인을 따랐습니다.
  • 현재 phpBB 데이터베이스의 SQL 덤프를 확보했습니다.
  • 모든 파일과 아바타를 복사했습니다.

이 과정을 통해 대부분의 데이터를 마이그레이션하고 실제 데이터로 모든 것을 테스트할 수 있었습니다. 데이터를 검증하고 새로운 Discourse 시스템을 설정한 후, 두 번째 마이그레이션 작업으로 넘어갔습니다.

두 번째 마이그레이션

이번에는 phpBB 포럼을 중단했습니다.

수입 스크립트를 두 번째로 실행했습니다:

  • 첫 번째 마이그레이션 이후에 생성된 새 파일로 파일과 아바타를 업데이트했습니다.
  • MySQL 덤프를 새로운 덤프 파일로 교체했습니다.

수입 스크립트를 실행했습니다. 프로세스가 몇 주치 데이터만 가져와야 했기 때문에 스크립트 실행에 15분도 걸리지 않았습니다.

모든 것이 순조롭게 진행되었습니다.

대형 phpBB 포럼을 마이그레이션해야 하는 경우, 두 단계 방식의 마이그레이션을 강력히 권장합니다.