드루팔 마스터 / 슬레이브 복제


10

drupal 데이터베이스에 대해 Master / Slave 복제를 사용하여 두 개의 MySQL 서버를 설정했으며 데이터베이스가 동기화 및 복제되고 있음을 확인했습니다.

이제 기본적으로 장애 조치 / 중복 목적을 위해 두 데이터베이스 모두에 drupal을 지정하려고합니다. 즉, 기본 데이터베이스 서버를 재부팅해야 할 경우 사이트가 다운되는 것을 원하지 않습니다. (실패 시나리오 중에는 읽기 전용이 가능합니다.)

다음 기사를 기반으로합니다 . settings.php다음과 같이 수정 했습니다.

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'sdrupal',
  'username' => 'drupal',
  'password' => 'topsecret',
  'host' => 'masterdb.ptp.local',
);
$databases['default']['slave'][] = array(
  'driver' => 'mysql',
  'database' => 'sdrupal',
  'username' => 'drupal',
  'password' => 'topsecret',
  'host' => 'slavedb.ptp.local',
);

마스터 (서비스 mysqld 중지)를 종료 할 때까지 내 사이트 푸시를 수행 할 때까지 구성이 정상입니다.

PDOException : SQLSTATE [HY000] [2013] '초기 통신 패킷을 읽는 중'에서 MySQL 서버와의 연결이 끊어졌습니다. 시스템 오류 : drupal_is_denied ()에서 111 (/www/includes/bootstrap.inc의 1895 행). 추가

PDOException : SQLSTATE [HY000] [2013] '초기 통신 패킷을 읽는 중'에서 MySQL 서버와의 연결이 끊어졌습니다. 시스템 오류 : dblog_watchdog ()에서 111 (/www/modules/dblog/dblog.module의 141 행).

이 작업을 수행하는 트릭은 무엇입니까?

답변:


6

마스터 / 마스터 (고 가용성)에 대해서는 마스터가 다운되지 않은 경우로드 밸런싱을 수행 할 수 있습니다.

다음은 모든 쓰기가 master1로 가고 모든 읽기가 master2로되게합니다. master1이 실패하면 모든 쿼리가 master2로 이동합니다. master2가 실패하면 모든 쿼리가 master1로 이동합니다.

'master' => array('master1', 'master2')
'slave' => array('master2', 'master1')

다음은 모든 쿼리를 master1로 만듭니다. master1이 실패하면 모든 쿼리는 master2로 이동합니다.

'master' => array('master1', 'master2')
'slave' => array('master1', 'master2')

이 답변에 감사드립니다. 나는 이것이 매우 오래되었고 구식 일 수 있음을 이해합니다. 최신 버전의 Drupal에서 동일하게 구현하기위한 팁이 있습니까?
Gaurav Ojha

4

Drupal 7은 다른 사람의 이익을 위해 Drupal 7에 데이터베이스 고 가용성 기능이 내장되어 있지 않은 것 같습니다.

마스터 / 슬레이브 구성에서 두 개의 mysql 서버를 설정할 수 있지만 최선의 방법은 모든 쓰기를 마스터에 보내고 모든 읽기를 슬레이브에 보내는 것입니다. 이는 조잡한로드 분산을 제공하지만 장애 조치 는 제공 하지 않습니다 .

즉, 마스터 mysql 서버가 다운되면 모든 베팅이 해제됩니다. PHP가 마스터 데이터베이스에 도달 할 수 없다는 오류 메시지와 함께 사이트가 다운됩니다.

전통적으로, 내가 이해하는 것처럼, 다른 소프트웨어로 이것을 해결하는 방법은 mysql ndb 클러스터 또는 mysql 프록시를 사용하는 것입니다.

그러나 auto-slave ( http://drupal.org/project/autoslave ) 라는 Drupal 모듈을 발견했습니다 . 널리 사용되지는 않지만 (통계에 따라 적극적으로 사용하는 12 개의 사이트가 있습니다) 우리가 원하는 것을 할 수있는 것처럼 보입니다. 다양한 방법으로 구성 할 수 있습니다.

주인 노예

Writes go to Master
Reads go to Slave

Drawbacks:
If master is down, the durpal site displays a prominent message that the site is in "read only" mode.

마스터 / 마스터 (고 가용성)

Read and Writes go to master1 (primary) unless its unavailable.
If master1 is unavailable, reads and writes go to master2 (secondary)

Drawbacks:
There is no load distribution. All load (reads and writes) go to either master1 or to master2

마스터 / 마스터 / 슬레이브 (고 가용성 / 고성능)

Writes go to Master1 (primary) unless its down then they go to Master2
Reads go to the slave unless its down
Drawbacks:
Requires a minimum of three database servers (master/master/slave)

지금까지 첫 번째 (마스터 / 슬레이브) 설정을 완료했습니다. 다음에는 Master / Master / Slave를 설정하려고합니다.

잘하면 이것은 다른 누군가를 도와줍니다.


이것은 많은 도움이되었습니다. :)
esafwan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.