2009-03-09 3 views
3

최대 절전 모드 (데이터, 스키마, ...)는 데이터베이스 (이 경우 MySQL)에 어떤 변화가 있습니까?최대 절전 모드로 인한 가동 중지 시간이 없음

최대 절전 모드로 가동 중지 시간이 없기 때문에이 질문을드립니다.

데이터베이스를 변경하고 두 개의 클러스터로 응용 프로그램 서버를 분할하고 응용 프로그램을 클러스터 중 하나에 다시 배포하고 응용 프로그램을 전환하십시오.

감사 스테판은

답변

1

나 최대 절전 모드로 특별한 통찰력의 개인 경험이 대답하지 것이다. 소금 한 알을 가지고 이것을 섭취하십시오. 또한 약간 모호한 질문으로 생각되는 곳에 의견을 추가하십시오. :)

우선, 최대 절전 모드로 매핑되지 않은 스키마에 내용을 변경/추가/제거해도 아무런 문제가 발생하지 않습니다. 모든 Hibernate는 실제로 쿼리를 생성합니다. 많은 것들이 SQL로 변환되기 때문에 앱은 계속해서 쿼리가 작동하는 한 계속 작동합니다. 즉, 테이블에 열을 추가하거나 테이블을 추가하는 것은 문제가되지 않습니다. 매핑하지 않은 열을 제거하는 것은 문제가되지 않습니다.

더 중요한 것은 매핑 된 항목의 변경입니다. 숫자 (10,0)를 숫자 (11,0)로 변경한다고 가정하면 일반적으로 효과가 있습니다. CHAR (1) 필드를 BIT 필드 또는 비슷한 것으로 변경하는 것과 같은 일을 시작하면, 당신은 당신의 동면 매핑에서 특정 변경을 필요로 할 것이고, 이것은 기존 배치가 실패하게 할 것이다. 이것은 상식입니다. 이와 같이 변경해야하는 경우 일반 db 서버에서 ALTER TABLE을 실행하면 테이블이 잠길 수 있으므로 응용 프로그램을 다시 시작하는 것이 가장 큰 문제는 아닙니다.

고 가용성에서 주요 스키마 변경을 처리하는 것은 최대 절전 모드가 직접 처리하기위한 것이 아닙니다. Hibernate는 스키마 변경이 종종 매우 비싼 전통적인 관계형 데이터베이스를 사용한다고 가정한다.

세 가지 다른 문제는 언급 :

  • 데이터 소스 변경이 : 아마 앱을 다시 시작해야
  • 분할 애플 리케이션 서버 : 당신은 내가 당신이, 당신은 단순히 다른 응용 프로그램 서버에 배포 할 수 있습니다 뜻 무슨 생각을 의미하는 경우 . 전환이 필요한 경우 웹 앱과 고객간에 처리 할 항목 (예 : IP 수준로드 균형 조정 도구 또는 이와 유사한 요소)을 사용합니다.
  • 데이터 변경 : 트랜잭션 데이터베이스 및 여러 작성자의 일반적인 문제가 적용됩니다. Hibernate는 데이터베이스의 일관성없는 뷰로 종료 될 수 있습니다. 다른 사용자의 변경 사항을 덮어 쓰는 경우도 있지만 일부 경우 예외가 발생할 수 있지만 이러한 AFAICT와 같은 상황을 예상하고 대처할 수 있어야합니다.
관련 문제