Configuração mestre / escravo do HyperDB

2

Em execução no servidor 2008 R2 IIS 7.5, com um mestre / escravo do MySQL (também no servidor 2008 r2) e o WordPress 3.7. É apenas compatível com o wordpress 3.5.2? Se é assim, há algum outro plug-in para permitir uma configuração do mysql Mestre / escravo?

Isso é o que eu fiz até agora: 1. Eu copiei db.php para / wp-content / folder 2. Editou o arquivo wp-config.php para ter (não os endereços IP reais) define ('DB_HOST', '192.168.1.198'); define ('DB_HOST_SLAVE', '192.168.1.198'); 3. editou o db-config.php e colocou na raiz do site.

<?php
$wpdb->save_queries = false;
$wpdb->persistent = false;
$wpdb->max_connections = 10;
$wpdb->check_tcp_responsiveness = true;
$wpdb->add_database(array(
    'host'     => DB_HOST,
    'user'     => DB_USER,
    'password' => DB_PASSWORD,
    'name'     => DB_NAME,
    'write' => 1,
    'read' => 1,
    'dataset' => 'global',
    'timeout' => 0.2,
));
$wpdb->add_database(array(
    'host'     => DB_HOST_SLAVE,
    'user'     => DB_USER,
    'password' => DB_PASSWORD,
   'name'     => DB_NAME,
    'write' => 0,
    'read' => 1,
    'dataset' => 'global',
    'timeout' => 0.2,
));

Agora, quando eu trago o mestre para baixo, o site para de carregar, eu esperava que o escravo simplesmente colocasse o site em apenas leitura. Tudo o que vejo nos logs do php é tentar conectar-me ao 192.168.1.198, quando esperava que as leituras fossem reprovadas no escravo se ele não conseguisse se conectar ao 192.168.1.199. Este é o erro

WordPress database error 2013-12-26 19:25:40 Can't select global__w -
'referrer' => 'blah.com/wp-admin/',
'server' => ,
'host' => 192.168.1.198,
'error' => ,
'errno' => 0,
'tcp_responsive' => ,
'lagged_status' => 3 for query SELECT option_value FROM wp_options WHERE option_name = 'db_upgraded' LIMIT 1 made by get_option

Agora, se eu editar o db-config.php para ser assim

<?php
$wpdb->save_queries = false;
$wpdb->persistent = false;
$wpdb->max_connections = 10;
$wpdb->check_tcp_responsiveness = true;
$wpdb->add_database(array(
    'host'     => DB_HOST_SLAVE,
    'user'     => DB_USER,
    'password' => DB_PASSWORD,
    'name'     => DB_NAME,
    'write' => 0,
    'read' => 1,
    'dataset' => 'global',
    'timeout' => 0.2,
));

Eu consigo que o site apareça quando o master está inativo, MAS se o escravo desce, todo o site desce. Ou seja, se o mestre está em cima e o escravo está em baixo, o site está em baixo.

    
por user204910 09.01.2014 / 14:09

1 resposta

1

Estou usando o Tungsten Replicator com 3 servidores MySQL em todo o mundo (todas as configurações de mestres). Esta configuração está funcionando para mim.

MySQL.Cluster resolve o IP virtual do nó "principal" no cluster corosync - é melhor escrever para apenas um mestre:)

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


$wpdb->add_database(array(
        'host'     => '127.0.0.1',     // If port is other than 3306, use host:port.
        'user'     => DB_USER,
        'password' => DB_PASSWORD,
        'name'     => DB_NAME,
        'write'    => 2,
        'read'     => 1,
        'dataset'  => 'global',
        'timeout'  => 0.1,
));
    
por 24.06.2014 / 22:39