CentOS 5.5에서 Mysql을 실행하고 있습니다. 그리고 데이터베이스 샤딩 접근 방식을 사용하고 있습니다. ERP 앱인 만큼 신규 애플리케이션/회사당 약 300개의 테이블이 있습니다. 현재 우리 mysql 서버에는 약 600개의 데이터베이스가 있습니다. (250GB, 24GB Ram) 그런데 서버가 좀 자주 크래시가 나네요. 1. mysql에 알려진 제한 사항과 안정적으로 지원할 수 있는 데이터베이스 수가 있습니까? 다른 스레드와 블로그를 살펴봤지만 no에 대한 명확한 분석을 찾을 수 없었습니다. 데이터베이스 대 mysql 서버 충돌/가용성.
반면에 ERP와 같은 복잡한 앱에 대해 DB 관리를 수행해 본 분들의 조언도 듣고 싶습니다. 2. 믿을 수 있는 모델인가요? 좀 더 신뢰할 수 있게 바꾸려면 어떻게 해야 할까요?
답변1
우선, "자주"라고 부르는 것이 무엇인지 잘 모르겠습니다. 하지만 제 생각에는 DB 서버가 충돌해서는 안 됩니다. 당신은 정말로 이 문제의 원인을 파악하려고 노력해야 합니다. 다운되는 것은 전체 서버입니까, 아니면 MySQL 프로세스입니까? 충돌 로그? MyISAM 또는 Innodb?
물론 MySQL을 실패하게 만드는 방법이 있습니다. 여러분이 직면하게 될 가장 확실한 문제는 사용 가능한 것보다 더 많은 메모리를 사용하도록 MySQL을 구성하는 것입니다(메모리가 부족하여 무작위로 충돌이 발생합니다).
그러나 귀하의 질문에 대답하려면 다음을 수행하십시오.
알려진 제한 사항이 있으며 대부분은 OS에서 발생합니다. 각 DB는 별도의 파일에 저장되므로 파일 핸들과 같은 리소스가 부족해질 수 있습니다. 구성에 따라 600개의 데이터베이스가 이러한 제한을 초과하기 시작할 수 있으며, 이로 인해 로드 시 성가신 충돌이 발생할 수 있습니다.
나는 대부분의 ERP 설치가 매우 복잡하거나 처리하는 데이터의 양이 매우 크다고 생각하지 않습니다. 나의 주요 권장 사항은 HW/SW 설치가 안정적인지 확인하는 것입니다. 심각한 로드 문제가 발생하지 않는 한 샤딩/마스터-슬레이브 및 유사한 설정은 추가된 복잡성으로 인해 설정의 신뢰성을 감소시킬 수 있습니다.