우리 시스템의 사용자와 역할을 정의하는 기본 상태를 저장하기 위해 mnesia를 사용하는 erlang 응용 프로그램이 있습니다. 우리는 우리가 필요로하는 새로운 기능을 가지고 있습니다.이 기능은 우리의 mnesia 테이블에 저장된 레코드 스키마의 확장을 필요로합니다.mnesia 복제 일시 중지
배포 계획은 네트워크에서 제거하는 방법으로 하나의 노드를 클러스터 밖으로 가져 와서 코드를 배포하고 스크립트를 실행하여 해당 노드의 레코드 스키마를 업그레이드하는 것입니다. 다시 사용하십시오. 그러나 일단이 노드의 레코드를 업그레이드하면 다른 노드로 복제되고 잘못 일치하는 레코드 스키마로 인해 해당 노드에서 특정 작업이 실패하기 시작합니다. 분명히 제로 다운 타임 배치에 대한 큰 문제.
스키마 업그레이드가 업그레이드 될 때 각 노드에서 스키마 업그레이드를 실행할 수 있도록 스키마 변경을 분리하는 방법이 있습니까? 바람직하게는 업그레이드되는 테이블에 대해서만 다른 테이블을 계속 복제 할 수 있습니다. 그러나 모든 노드에 배포하는 데 몇 분이 걸리는 동안 모든 노드간에 복제를 종료 할 수 있습니다.