mysql configuração mestre-escravo de backup

princípio de replicação mestre-escravo MySQL
nele gravado o mysql-bin.xxx binário (que pode ser visto no diretório de arquivos de dados no mysql diretório) estão em cada operação do servidor de banco de dados principal, número de conta dedicado de I / servidor rosca O logon no servidor primário para ler o arquivo binário, o conteúdo do arquivo são escritos para o arquivo de relay-log log de retransmissão local, e então executa instruções SQL dos threads do servidor SQL com base no log de retransmissão do conteúdo.

princípio

Preparação
servidor mestre precisa ter o mesmo estado inicial

O servidor primário de algemas Sincronizar base de dados, evitar alterações de dados síncronas

MySQL> db usar;
MySQL> Tabelas com o flush Leia bloqueio;
servidor de banco de dados de exportação de dados primários (um exemplo onde db)

MySQL> -pxxxx o mysqldump -uroot-DB> db.sql;
MySQL> -R & lt -ndt o -pxxxx> db.sql mysqldump -uroot-DB
o backup for concluído, o servidor de banco de dados mestre de desbloqueio

mysql> mesas de desbloqueio;
dados iniciais importados do banco de dados do servidor

MySQL> Criar banco de dados DB;
MySQL> uso DB;
MySQL> Fonte db.sql;
Neste ponto, o mestre do banco de dados consistente. Aqui configurado sincronização mestre-escravo.

O comando acima é exportar todas as tabelas e estruturas de dados, funções, e se você quer exportá-lo para usar procedimentos armazenados

servidor primário é configurado
para modificar a configuração do MySQL

vi /etc/my.cnf
adicionado [mysqld] em que:

# Master Database número de identificação cliente
server_id = 1
# ativar o log binário
log-bin = mysql-bin
nome do banco # você deseja copiar, se você copiar vários bancos de dados, defina esta opção para repetir
binlog-do-db = db
# a partir do servidor UPDATE recebida do servidor primário creditado na próprios arquivos de log binário do escravo no
-Slave-o log atualizações
frequência controle de escrita binlog #. Quantas transações por execução write-once (este parâmetro e um grande desempenho, mas pode reduzir as perdas causadas pelo colapso do MySQL)
sync_binlog = 1
# Este parâmetro é geralmente usado no principal sincronização principal para cambaleou de valor agregado, para evitar a violação de chave
=. 1 auto_increment_offset
# este parâmetro é geralmente usado no principal sincronização primário, uma vez que o valor de deslocamento é usado para prevenir a chave violação
auto_increment_increment = 1
# quando o número de dias de log binário excluído automaticamente, o valor padrão é 0, indicando "não excluído automaticamente", e começar podem ser removidas quando os binários ciclo log
expire_logs_days = 7
# copiar função para Escravo
log_bin_trust_function_creators = 1
restart MySQL, permite que os dados síncronos do servidor para criar uma conta

# Criar uma conta escravo sync_account, password senha
MySQL> Grant Replication escravo ON . Para 'sync_account' @ 'slave_db_ip' identificado por 'password';
# update os privilégios de banco de dados
mysql> privilégios de descarga;
visualizar o status do servidor principal

Lembre-se os seguintes valores de resultado: Arquivo e posição, ao configurar a partir da biblioteca será utilizada.

MySQL> SHOW MASTER STATUS \ G;
******************************************************** 1. Row ****************
arquivo: MySQL-bin. # 000033 atual registro de log
posição: 337523 posição de gravação # log
Binlog_Do_DB:
Binlog_Ignore_DB:
após este passo não é para operar o banco de dados mestre, o valor de status é alterada para evitar

Configuração do servidor
para modificar a configuração do MySQL

vi /etc/my.cnf
adicionado [mysqld] em

= 2 a server_id
log = MySQL-bin bin-
log-slave-updates
sync_binlog = 0
#log Tampão de uma vez por segundo para gravar o arquivo de log, o arquivo de log e lave operações (disco escova) são realizados simultaneamente. Neste modo, quando a transação for confirmada, não vai tomar a iniciativa de escrever a operação de disco é acionado
innodb_flush_log_at_trx_commit = 0
# especificar qual biblioteca que deseja copiar escravo
replicate-do-db = db
#MySQL cópia mestre de tempos, quando entre mestre e escravo falhas de rede, mas o caso de Mestre e Slave indetectável (como um firewall ou um problema de roteamento). Após a Slave irá aguardar o número de segundos slave_net_timeout definido para considerar a rede falhar, volte a ligar e pegar antes deste tempo o principal dados biblioteca
Slave-NET-timeout = 60
log_bin_trust_function_creators = 1
reinicialização do servidor.

execução do comando Synchronous

# Para executar comandos síncronos, o servidor primário IP, sincronização de senha da conta, a posição de sincronização
mysql> mudança mestre para MASTER_HOST = '10 .10.20.111 'master_user =' sync_account 'master_password =' password 'MASTER_LOG_FILE =' mysql-bin.000033 ' , MASTER_LOG_POS = 337 523;
# turn sincronização
mysql> começar escravo;
Vista do status do servidor

MySQL> Mostrar Slave Estado \ G;
*************************** 1. Row ************ ***************
Slave_IO_State: Esperando Mestre ao enviar evento
MASTER_HOST: 10.10.20.111
MASTER_USER: a Conta
MASTER_PORT: 3306
Connect_Retry: 60
MASTER_LOG_FILE: MySQL-bin.000033
Read_Master_Log_Pos: 337 523
Relay_Log_File: o DB2 bin.000002 - relé
RELAY_LOG_POS: 337 686
Relay_Master_Log_File: MySQL-bin.000033
Slave_IO_Running: Sim
Slave_SQL_Running: Sim
Replicate_Do_DB:
Replicate_Ignore_DB:
Slave_IO_Running e processo Slave_SQL_Running deve executar corretamente, que o status Sim, caso contrário, a sincronização falhou. Se a falha para ver mysql detalhes do erro específico de log de erro para localizar o problema. Finalmente, você pode ir para o banco de dados no servidor primário, crie uma tabela ou atualizar os dados da tabela para sincronização de teste.

Acho que você gosta

Origin www.cnblogs.com/MartyCode/p/12512253.html
Recomendado
Clasificación