DB서버는 다른 무엇보다도 중요하므로 하드웨어 구성, 소프트웨어 구성 모두 고려를 해야 합니다.
하드웨어 구성의 경우 Raid 카드를 이용하여 I/0 분산 및 좀 더 좋은 성능과 안정성을 얻을 수 있고 이보다 더 나간다면 스토리지를 별도로 두는 방법도 있습니다만 MYSQL 쓰면서 이런 것까지 투자하지는 않을것 같군요.
소프트웨어적으로 실시간 동기화를 한다는것은 힘들고 어느정도 다운타임(서비스 멈추는 시간)을 줄이기 위해 예를 들어 한시간에 한번씩 백업하여 다른 서버로 옮기는 작업을 하자는 것입니다. 근데 전체 DB를 통째로 계속 백업하는것은 성능상의 문제가 있으므로 -l 옵션 등을 이용하여 모든 sql 로그 기록을 남길 수 있으므로 이 파일을 정기적으로 다른 서버로 보낸다는 것입니다. 이에 관련된 내용은 윗분말대로 해당 매뉴얼을 보세요. 그부분 제가 번역한 내용도 있습니다. 최근에 어떻게 바뀌었는지는 모르지만요.
성능을 생각한다면 db 가 저장되는 곳과 로그기록을 남기는 곳을 별도의 하드 디스크로 구성한다면 효율적일 것입니다. 물론 스카시 하드디스크를 사용하는 경우에만 해당되겠지만요. 웹서버의 경우도 아파치 디렉토리와 로그 기록 디렉토리를 별도로 분리하면 15% 정도의 성능향상이 있다고 이야기를 하지요.
> 처음 답변해주신 분은 아마 동기화에 대한 부분이 아니라, 데이타백업 요령을 알려주신게 아닌가 합니다.
> 그리고, 태준님 그렇게 어려운말(?)로 써주심 저같은 무식한 사람은 이해가 잘 안되거든요. 좀 자세히 설명해 주심 안될까요?
>
> > mysql 자체차원에서 동기화를 보장하지는 않습니다. 제 생각으로는 주기적으로 로그 파일을 로테이션해서 이걸 다른쪽 서버로 보내는 방식으로 처리를 해야 하지 않을까 생각을 하네요. 저도 지금 이렇게 구성해서 쓰려구 하구요.
> >
> >
> > > 꾸뻑
> > > mysql menual에 보시면 다음 항목이 있습니다.
> > > 'Replication in MySQL'
> > > 이곳을 보시면 완벽하게 backup을 하실수 있습니다.
> > >
> > > 되도록이면 최신 mysql을 설치하시는것이 좋습니다.
> > > 서버가 down된다는것은 서버성능을 올리는것이 좋겠네요...
> > >
> > > 꾸뻑.
> > >
> > > > 현재 아파치와 mysql을 컴퓨터 한대(주서버라 칭하겠습니다.)에 인스톨하여 운영중에 있습니다.
> > > > 최근 서버의 다운이 잦아져서 지금 서버와 똑같은 내용을 유지하는 보조서버를 하나 두려고 합니다.
> > > >
> > > > 문제는 두대의 내용을 똑같이 유지하는것인데,
> > > > 한쪽 주서버에서 mysql의 내용이 변경되었을 때 보조서버의 mysql의 내용도 똑같이 변경되게 하는것입니다.
> > > > 제가 생각한 무식한 방법은 프로그램을 짜서 DB에 write할 때는 무조건 주서버,보조서버 둘 다 write하게 하는 방법을 생각했습니다.
> > > > 문제는 둘중에 한대가 이상에 생겼을 땐 write하는 부분에서 에러를 일으킬 것이라는 겁니다.
> > > >
> > > > 어떤식으로 이문제를 접근해야 할까요? 여기 질답란을 읽어보니 Raid카드라는 걸 사용하는것 같은데, 하드웨어말고 소프트웨어적으로 해결하는 방법은 없을까요?
> > > >
> > > > 그럼, 오늘도 좋은하루되시구요. 좋은답변 기대하겠습니다.
|