여러 서버의 MySQL 데이터베이스


11

좋아, 내가 무엇을 찾고 있는지 묻는 방법을 모르겠다. 어떻게하면 내 독서와 연구가 말 당하지 않는 이유가 무엇인지 알 수 있습니다. 그래서 현재 가지고있는 것은 단일 MySQL 데이터베이스이며, 조만간 데이터가 쌓일 것이라는 것을 알고 있으며이 서버의 공간이 부족합니다. 그래서 그 일이 일어나기 전에 데이터베이스를 여러 머신에 분산시켜 하나의로드 밸런싱과 두 개의 순수한 스토리지 팩터를 확보 할 수있게하고 싶습니다.

그래서 제 질문은 어떻게 작동합니까? 어쩌면 나는 여기서 1 차원을 생각하고 있지만 그것이 어떻게 작동하는지 알 수는 없습니다. 다음 머신에 쏟아지는 DB와 데이터가 커짐에 따라 다음 DB가 각각 동일한 스키마를 가진 개별 DB입니까, 어느 쪽이든 나는 단지 내 머리 속에 그림을 그릴 수는 없지만 현재 작업중 인 것을 교정하기위한 논리에 빠지지 않을 것입니다. 데이터가 한 대의 기계에 많은 양일 때 벽에 부딪치지 않고 이벤트에서 모든 정지 점을 당기기를 원하지 않습니다.

그렇다면 올바른 길을 찾기 위해 무엇을 읽고, 연구하고, 분석하고, 실천해야합니까?


이것은 여러 컴퓨터에 걸친 (내) SQL 서비스와 관련하여 새로운 사람이었습니다. 이 공간에 침입하기 위해 올바른 질문을 찾는 데 약간의 어려움이있었습니다. 질문과 답변 모두 +1 ;)
James T Snell

답변:


8

실제로 필요한 MySQL 클러스터링 이 가능합니다.

특히 " 자동 샤딩 " 기능 중 하나 는 여러 시스템에 데이터를 분산시킵니다. "온라인 스케일링"을 사용하면 db가 실행되는 동안 용량이 더 필요한 경우 새 노드를 추가 할 수 있습니다. 정말 멋진. 여기에서 다운로드 할 수 있습니다 .

그러나 문제점을 해결하기 위해 고려할 수있는 몇 가지 다른 사항이 있으며,이를 달성하기가 더 쉽습니다.

더 큰 하드 드라이브를 구입하십시오!

조금 분명한 것처럼 들리지만 xxxGb 하드 드라이브가 Y 년 동안 지속될 것이라고 안전하게 말할 수 있다면 갈 가치가 있습니다. 드라이브 이미지를 가져 와서 새 드라이브에 설치하거나 추가 드라이브로 설치 하고 MySQL 데이터 파일 을 새 드라이브 로 옮길 수 있습니다. <

여러 데이터베이스에서 테이블을 분할하십시오.

여러 데이터베이스에 테이블을 분할 한 다음 여러 드라이브에 저장할 수 있습니다. Windows Azure에는 데이터베이스에 대한 크기 제한이 있으므로 Microsoft는이 방법을 권장합니다. 또한 성능이 약간 향상됩니다.

데이터를 보관할 수 있습니까?

큰 테이블을 다른 드라이브에 보관할 수 있습니까? 데이터가 정말로 필요합니까? 과거에 참조 용으로 만 필요한 경우 다른 드라이브의 파일 또는 다른 드라이브의 데이터 파일을 가리키는 다른 데이터베이스의 아카이브 테이블로 푸시하는 보관 프로세스를 설정할 수 있습니까?


이것은 프로덕션 시스템을위한 것이며, 예를 들어 일부 아카이브는 시간이 지남에 따라 수행 될 수 있지만 일반적으로 소수의 테이블이 정기적으로 호출 할 것으로 예상되는 데이터는 몇 테라 바이트에이를 것입니다. 클러스터링 비트는 많은 도움을 주지만, 주제에 대해 많은 독서를해야합니다. 감사합니다. 불행히도 더 큰 HD가 나오면 단일 실패 지점의 많은 데이터가 큰 위험에 노출됩니다.
chris
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.