DB.CONFIG.PHP 를 열어보니 SLAVE서버 관련 설정도 있더라구요.

 

요걸 설정하면, 메인 DB 접속에 실패했을 때 SLAVE 서버로 연결되는건가요? 아니면 랜덤하게 메인과 SLAVE를 선택해서 접속하게 되는건가요?

  • profile
    대부분의 DB 환경에서 master는 읽기 쓰기가 모두 가능하고, master에 데이터를 추가하거나 변경하면 slave에 그대로 복사됩니다. 반면, slave는 읽기만 가능합니다.

    XE에서 master와 slave를 다르게 설정하면 읽기(select) 쿼리는 slave에서 실행하고, 쓰기(insert, update, delete) 쿼리는 master에서 실행합니다. 큰 사이트에서는 이렇게 쿼리를 두 서버로 분산시키면 DB의 부하를 낮출 수 있지요.

    master 접속 실패시 slave에 접속하는 것이 아닙니다. 쓰기 쿼리는 무조건 master에서 실행해야 하기 때문에, master에 접속하지 못하면 그냥 에러입니다. 쿼리 종류에 따라 서버를 선택해야 하기 때문에 랜덤도 아닙니다.
  • profile
    마스터에서는 insert/update/delete 등 변경 작업을 하고, select 등 읽어오는 작업은 slave로 할 수 있도록 하는 기능입니다. 당연하겠지만 이 기능이 정상적으로 동작하려면 마스터에서 변경 사항이 생길 때마다 슬레이브에도 반영되어야 합니다. (replication 등 활용)

    구축 방법등은 http://xe3rdparty.com/feedback/166664 를 참고하시면 될 것 같습니다.
  • profile
    감사합니다. 잘배워갑니다!