워드프레스 리플리케이션 플러그인

작성일시 : 2024년 09월 21일 (토)


홈페이지가 Wordpress로 운영되고 있고
2대 이상의 DB서버가 있어서 부하분산을 하고싶다면 바로 이 플러그인을 사용하면 됩니다.
HyperDB



물론 2대 이상의 DB서버는 MySQL Replication으로 복제가 되어 서로 언제나 같아야 겠지요
MySQL Replication에 대해서는 많은 자료가 있기에 따로 설명하지 않겠습니다.


HyperDB플러그인을 받게되면 2개의 파일이 있는데

db.php와 db-config.php입니다.
이름으로 금방 알수 있겠지만 설정파일과 실제적으로 작동하는 파일입니다.

홈페이지에서는 설명하기로는
db.php 파일을 wp-content폴더 밑에 가져다 놓는것으로 설치는 끝이라고 하네요(실제로 그렇습니다)
설정파일은 어디에 있던지 지정만 해주면 상관없지만

저는 wp-config.php와 같은 위치에 놓고
wp-config.php의

if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');

밑부분에

define('DB_CONFIG_FILE', ABSPATH.'db-config.php');
로 추가해서 db-config.php파일을 찾을수 있게 했습니다.

db-config.php은 커넥션들을 설정해주는것인데

저의 설정은

$wpdb->add_database(array(
'host' => DB_HOST, // If port is other than 3306, use host:port.
'user' => DB_USER,
'password' => DB_PASSWORD,
'name' => DB_NAME,
'write' => 1,
'read' => 1,
'dataset' => 'global',
'timeout' => 0.2,
));

$wpdb->add_database(array(
'host' => DB_SLAVE_1, // If port is other than 3306, use host:port.
'user' => 'wordpress_ro',
'password' => 'wordpress_ro',
'name' => DB_NAME,
'write' => 0,
'read' => 1,
'dataset' => 'global',
'timeout' => 0.2,
));

이런식으로 되어 있습니다.
슬레이브에는 당연히 write는 0으로 해야겠지요?
저의 경우는 보다시피 계정도 Read Only권한을 가진 계정으로 접속하게 설정했습니다.
마스터의 경우는 읽기부하를 받게 할지 안할지는 선택적으로 처리하면 될듯합니다.
저의 경우는 2대밖에 없지만 많은 DB서버가 있다면 Replication과 HyperDb플러그인으로
Wordpress홈페이지의 DB부하 분산은 걱정은 끝!!~~

댓글 (0)