Sim, claro.
A ideia que você deve implementar é conhecida como Replicação Circular do MySQL.
Por exemplo, digamos que você tenha o seguinte:
- O DBServer1 tinha bancos de dados db1, db2, db3, db4
- Você deseja mover o db3 e o db4 para o DBServer2
- Você deseja restringir leituras e gravações para db1 e db2 no DBServer1
- Você deseja restringir leituras e gravações no db3 e no db4 no DBServer2
Aqui está algo que você pode tentar
STEP01) Execute GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO replicator@'%' IDENTIFIED BY 'replpass';
no DBServer1
STEP02) Instale a mesma versão do MySQL no DBServer2 (você terá dados padrão em / var / lib / mysql)
STEP03) rsync DBServer1: / var / lib / mysql DBServer2: / var / lib / mysql
STEP04) Repetir STEP02 até que dois rsyncs consecutivos sejam o mesmo tempo, de preferência < 2 min.
STEP05) Desabilite seu aplicativo de escrever qualquer coisa para os bancos de dados
STEP06) service mysql stop
no DBServer1
STEP07) Configurar o registro binário no DBServer1
Adicione isto ao /etc/my.cnf no DBServer1
[mysqld]
server-id=1
log-bin=mysql-bin
Adicione isto ao /etc/my.cnf no DBServer2
[mysqld]
server-id=2
log-bin=mysql-bin
STEP08) DBServer2 rsync: / var / lib / mysql DBServer2: / var / lib / mysql (FINAL RSYNC)
STEP09) service mysql start
no DBServer1 (os registros binários começarão a ser preenchidos)
STEP10) service mysql start
no DBServer2 (os logs binários começarão a ser preenchidos)
PASSO 11) Aponte seus aplicativos para db1 e db2 no DBServer1
STEP12) Aponte seus aplicativos para db3 e db4 no DBServer2
STEP13) Execute isto no DBServer1
CHANGE MASTER TO
MASTER_HOST='xxx.xx.xx.xxx',
MASTER_PORT=3306,
MASTER_USER='replicator',
MASTER_PASSWORD='replpass',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=PPPP;
STEP14) Execute isto no DBServer2
CHANGE MASTER TO
MASTER_HOST='yyy.yy.yy.yyy',
MASTER_PORT=3306,
MASTER_USER='replicator',
MASTER_PASSWORD='replpass',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=PPPP;
Para os passos 13 e 14
- xxx.xx.xx.xxx é o endereço de IP privado do DBServer2
- yyy.yy.yy.yyy é o endereço de IP privado do DBServer1
- PPPP é a posição inicial de qualquer log binário
- Para o MySQL 5.5, o PPPP é de 107
- Para o MySQL 5.1, o PPPP é de 106
- Antes do MySQL 5.1, o PPPP é 98
STEP15) Execute START SLAVE;
no DBServer1
STEP16) Execute START SLAVE;
no DBServer2
STEP17) Execute SHOW SLAVE STATUS\G
no DBServer1 até que Seconds_Behind_Master seja 0
STEP18) Execute SHOW SLAVE STATUS\G
no DBServer2 até que Seconds_Behind_Master seja 0
Esta implementação não permitirá a divisão de bancos de dados, mas também permitirá servidores de reserva para o banco de dados.
DBServer1 será o local para fazer leituras e gravações para db1 e db2. Também fornece um backup do db3 e do db4.
DBServer2 será o local para fazer leituras e gravações para db3 e db4. Também fornece um backup do db1 e do db2.
Experimente!