문제

데이터베이스 (이 경우 MySQL)에 어떤 변경이 변경되면 최대 절전 모드가 생존합니까 (데이터, 스키마, ...)?

최대 절전 모드로 다운 타임이 제로 때문에 이것을 묻습니다.

데이터베이스 변경, 앱 서버를 두 클러스터로 분할하고 클러스터 중 하나에서 응용 프로그램을 재배치하고 응용 프로그램을 스위치로 배포하십시오.

감사합니다 Stephan

도움이 되었습니까?

해결책

나는 이것을 개인적인 경험으로부터 최대 절전 모드에 대한 특별한 통찰력이 아닌 개인적인 경험으로부터 대답 할 것입니다. 따라서 소금 한 알로 가져 가십시오. 또한 약간 모호한 질문이 보입니다. 적절한 곳에 의견을 추가하십시오. :)

우선, 최대 절전 모드에 맵핑되지 않은 스키마에 물건을 변경/추가/제거하면 아무런 문제가 발생하지 않습니다. 모든 최대 절전 모드는 쿼리를 생성하는 것입니다. 쿼리가 계속 작동하는 한 많은 것들을 SQL로 변환하기 때문에 많은 것들을 SQL로 변환하기 때문입니다. 즉, 테이블에 열을 추가하거나 테이블을 추가하는 것이 문제가되지 않으므로 맵핑되지 않은 열을 제거하는 것은 문제가 아닙니다.

더 문제가되는 것은 매핑 된 물건의 변화입니다. 숫자 (10,0)를 숫자 (11,0)로 변경한다고 가정하면 일반적으로 작동합니다. Char (1) 필드를 비트 필드 또는 이와 유사한 것으로 변경하는 것과 같은 작업을 시작하면 최대 절전 모드 매핑이 필요한 경우 기존 배포가 실패합니다. 이것은 상식입니다. 이와 같이 변경 해야하는 경우 일반 DB 서버에서 ALTER 테이블을 실행하면 어쨌든 테이블을 잠그면 앱을 다시 시작하는 것이 가장 큰 문제가 아닙니다.

고 가용성에 따른 주요 스키마 변경을 다루는 것은 최대 절전 모드가 직접 다루는 것이 아닙니다. Hibernate는 스키마 변경이 종종 매우 비싼 전통적인 관계형 데이터베이스를 가정합니다.

당신이 언급 한 다른 세 가지 문제 :

  • 데이터 소스 변경 : 아마도 앱을 다시 시작해야 할 것입니다
  • 앱 서버 분할 : 내가 생각하는 것을 의미한다면 다른 앱 서버에 간단히 배포 할 수 있습니다. 전환이 요구되는 경우 웹 앱과 고객 사이에 무언가를 사용하여 처리하여 IP 수준로드 밸런서 또는 이와 유사하게 사용하십시오.
  • 데이터 변경 : 트랜잭션 데이터베이스 및 여러 작가의 일반적인 문제가 적용됩니다. 최대 절전 모드는 데이터베이스의 일관되지 않은 관점으로 끝날 수 있습니다. 다른 사용자의 변경 사항을 덮어 쓸 수 있으며 경우에 따라 일부 예외가 발생할 수 있지만 이러한 AFAICT와 같은 상황을 예상하고 행동 할 수 있어야합니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top