mysql replicação master-master
Lista Eu encontrei na internet um tutorial [1] sobre replicação de base de dados MySQL/MariaDB. Eu executei o tutorial e deu tudo certo, as base de dados do servidor DB1 eram replicadas para o servidor DB2 e vice-versa. Primeiro teste - foi criado a base de dados exampledb1 no DB1 e exampledb2 no DB2. Funcionou que é uma beleza, em ambos os servidores estão as base de dados exampledb1 e exampledb2. Segundo teste - para simular a perda do servidor DB1, eu apaguei a VM DB1 recriei a DB1 e refiz todo o tutorial. Funcionou em parte, a base de dados exampledb1 que foi criada no DB1 e esta replicada no DB2 não esta mais sendo replicada para o DB1. Se por acaso eu criar novas bases de dados em ambos os servidores, elas são replicadas normalmente. Desde já eu agradeço pela atenção. 1- https://www.howtoforge.com/tutorial/mysql-master_master-replication-on-debian-jessie .''`. Caio Abreu Ferreira : :' : abreuf...@gmail.com `. `'` Debian User `-
Re: mysql - replicação
Caio, eu jah fiz essa configuracao. quando tu tem uma estrutura master master tu tem que cuidar tbm com o auto-increment tens que dizer para o mysql criar os indices de 2 em 2 e dizer que teu server eh o par ou impart basicamente no server 1 tens que adicionar auto_increment_increment = 2 # criar de 2 em 2 auto_increment_offset = 1 # comecando por 1, sendo assim 1,3,5,7 no server 2 tem que colocar: auto_increment_increment = 2 # criar de 2 em 2 auto_increment_offset = 2 # comecando por 2, sendo assim 2,4,6 Quanto ao erro dos servers ID's o que pode ter acontecido, eh voce ter iniciado os 2 masters com o mesmo ID, ter rodado algum comando que altere data e isso tenha sido replicado para o outro servidor, mesmo se tu acertar os ID's dos servers, o comando antigo ainda esta com o ID antigo, nesse caso temos duas opcoes: 1. reconfigurar a replicacao apagando os logs antigos 2. ajustar em cada server a posicao do relay log Grato. Marcelo Altmann On 29/10/12 22:01, Caio Ferreira wrote: Prezado Rodolfo Executei o comando "find -name *.cnf" e tive como resultado o seguinte $ sudo find -name *.cnf ./etc/mysql/debian.cnf ./etc/mysql/my.cnf ./etc/mysql/conf.d/mysqld_safe_syslog.cnf ./usr/share/doc/mysql-server-5.1/examples/my-small.cnf Pelo visto, no diretório /etc/mysql existem dois arquivos de configuração, debian.cnf e my.cnf. Executei o aplicativo lsof mais infelizmente não consegui identificar qual arquivo o mysql esta utilizando. Olhando o arquivo "/etc/init.d/mysql" encontrei a seguinte informação. CONF=/etc/mysql/my.cnf MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf" Aparentemente o mysql utiliza o arquivo my.cnf pois no mesmo arquivo de configuração tem o seguinte ## Do some sanity checks before even trying to start mysqld. sanity_checks() { # check for config file if [ ! -r /etc/mysql/my.cnf ]; then log_warning_msg "$0: WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" echo"WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" | $ERR_LOGGER fi Alguma idéia? Desde já agradeço pela ajuda. Caio Abreu Ferreira 2012/10/23 Rodolfo : Deve ser porque ele deve esta se referindo a outro arquivo de configuracao, onde os servers estao com o mesmo ID. Procure por outros arquivos de configuracao. Uma forma de voce pegar os arquivos abertos no momento é com lsof, ele lista todos os arquivos abertos. O que voce pode fazer é executa-lo e depois executar o mysql, quando der esse erro o arquivo que ele esta referenciando provavelmente sera mostrado. Abraços. 2012/10/23 Caio Ferreira Lista Por acaso alguém na lista já construiu uma estrutura master<>master de replicação de dados no MySQL? Estou seguindo um tutorial do HowtoForge[1] e o primeiro erro que esta aparecendo é o seguinte. - mensagem de erro do servidor db1 (192.168.0.3) $ sudo cat /var/log/syslog Oct 23 16:34:51 db1 mysqld: 121023 16:34:51 [ERROR] Slave I/O: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it). Error_code: 1593 O problema é que o parâmetro no arquivo /etc/mysql/my.cnf do servidor db1 esta assim "server-id = 1" e no db2 esta "server-id = 2". Resumindo, os servers ids estão diferentes. Alguém por acaso teria alguma ideia do que eu possa esta fazendo de errado? 1-http://www.howtoforge.com/mysql5_master_master_replication_debian_etch -- .''`. Caio Abreu Ferreira
Re: mysql - replicação
Pra confirmar se tua configuracao esta ok, roda esse comando nos dois masters: select @@server_id; Att. Marcelo Altmann On 29/10/12 22:01, Caio Ferreira wrote: Prezado Rodolfo Executei o comando "find -name *.cnf" e tive como resultado o seguinte $ sudo find -name *.cnf ./etc/mysql/debian.cnf ./etc/mysql/my.cnf ./etc/mysql/conf.d/mysqld_safe_syslog.cnf ./usr/share/doc/mysql-server-5.1/examples/my-small.cnf Pelo visto, no diretório /etc/mysql existem dois arquivos de configuração, debian.cnf e my.cnf. Executei o aplicativo lsof mais infelizmente não consegui identificar qual arquivo o mysql esta utilizando. Olhando o arquivo "/etc/init.d/mysql" encontrei a seguinte informação. CONF=/etc/mysql/my.cnf MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf" Aparentemente o mysql utiliza o arquivo my.cnf pois no mesmo arquivo de configuração tem o seguinte ## Do some sanity checks before even trying to start mysqld. sanity_checks() { # check for config file if [ ! -r /etc/mysql/my.cnf ]; then log_warning_msg "$0: WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" echo"WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" | $ERR_LOGGER fi Alguma idéia? Desde já agradeço pela ajuda. Caio Abreu Ferreira 2012/10/23 Rodolfo : Deve ser porque ele deve esta se referindo a outro arquivo de configuracao, onde os servers estao com o mesmo ID. Procure por outros arquivos de configuracao. Uma forma de voce pegar os arquivos abertos no momento é com lsof, ele lista todos os arquivos abertos. O que voce pode fazer é executa-lo e depois executar o mysql, quando der esse erro o arquivo que ele esta referenciando provavelmente sera mostrado. Abraços. 2012/10/23 Caio Ferreira Lista Por acaso alguém na lista já construiu uma estrutura master<>master de replicação de dados no MySQL? Estou seguindo um tutorial do HowtoForge[1] e o primeiro erro que esta aparecendo é o seguinte. - mensagem de erro do servidor db1 (192.168.0.3) $ sudo cat /var/log/syslog Oct 23 16:34:51 db1 mysqld: 121023 16:34:51 [ERROR] Slave I/O: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it). Error_code: 1593 O problema é que o parâmetro no arquivo /etc/mysql/my.cnf do servidor db1 esta assim "server-id = 1" e no db2 esta "server-id = 2". Resumindo, os servers ids estão diferentes. Alguém por acaso teria alguma ideia do que eu possa esta fazendo de errado? 1-http://www.howtoforge.com/mysql5_master_master_replication_debian_etch -- .''`. Caio Abreu Ferreira -- To UNSUBSCRIBE, email to debian-user-portuguese-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/508fd285.5010...@avvio.com
Re: mysql - replicação
Lista Executei o comando "/usr/sbin/mysqld --help --verbose" e no servidor db1 apareceu a informação "server-id 1" e no servidor db2 esta aparecendo a informação "server-id 2". Aparentemente os servidores estão com IDs diferentes. Caio Abreu Ferreira 2012/10/23 Caio Ferreira : > Lista > > Por acaso alguém na lista já construiu uma estrutura master<>master de > replicação de dados no MySQL? Estou seguindo um tutorial do > HowtoForge[1] e o primeiro erro que esta aparecendo é o seguinte. > > - mensagem de erro do servidor db1 (192.168.0.3) > $ sudo cat /var/log/syslog > > Oct 23 16:34:51 db1 mysqld: 121023 16:34:51 [ERROR] Slave I/O: Fatal > error: The slave I/O thread stops because master and slave have equal > MySQL server ids; these ids must be different for replication to work > (or the --replicate-same-server-id option must be used on slave but > this does not always make sense; please check the manual before using > it). Error_code: 1593 > > O problema é que o parâmetro no arquivo /etc/mysql/my.cnf do servidor > db1 esta assim "server-id = 1" e no db2 esta "server-id = 2". > Resumindo, os servers ids estão diferentes. Alguém por acaso teria > alguma ideia do que eu possa esta fazendo de errado? > > > 1-http://www.howtoforge.com/mysql5_master_master_replication_debian_etch > > -- > .''`. Caio Abreu Ferreira > : :' : abreuf...@gmail.com > `. `'` Debian User > `- -- .''`. Caio Abreu Ferreira : :' : abreuf...@gmail.com `. `'` Debian User `- -- To UNSUBSCRIBE, email to debian-user-portuguese-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/CAJRsRCJQFK5o1nERh7fobTabp=t-q8mshw96tcstgmejpst...@mail.gmail.com
Re: mysql - replicação
Prezado Rodolfo Executei o comando "find -name *.cnf" e tive como resultado o seguinte $ sudo find -name *.cnf ./etc/mysql/debian.cnf ./etc/mysql/my.cnf ./etc/mysql/conf.d/mysqld_safe_syslog.cnf ./usr/share/doc/mysql-server-5.1/examples/my-small.cnf Pelo visto, no diretório /etc/mysql existem dois arquivos de configuração, debian.cnf e my.cnf. Executei o aplicativo lsof mais infelizmente não consegui identificar qual arquivo o mysql esta utilizando. Olhando o arquivo "/etc/init.d/mysql" encontrei a seguinte informação. CONF=/etc/mysql/my.cnf MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf" Aparentemente o mysql utiliza o arquivo my.cnf pois no mesmo arquivo de configuração tem o seguinte ## Do some sanity checks before even trying to start mysqld. sanity_checks() { # check for config file if [ ! -r /etc/mysql/my.cnf ]; then log_warning_msg "$0: WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" echo"WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" | $ERR_LOGGER fi Alguma idéia? Desde já agradeço pela ajuda. Caio Abreu Ferreira 2012/10/23 Rodolfo : > Deve ser porque ele deve esta se referindo a outro arquivo de configuracao, > onde os servers estao com o mesmo ID. Procure por outros arquivos de > configuracao. > > Uma forma de voce pegar os arquivos abertos no momento é com lsof, ele lista > todos os arquivos abertos. > > > O que voce pode fazer é executa-lo e depois executar o mysql, quando der > esse erro o arquivo que ele esta referenciando provavelmente sera mostrado. > > > Abraços. > > 2012/10/23 Caio Ferreira >> >> Lista >> >> Por acaso alguém na lista já construiu uma estrutura master<>master de >> replicação de dados no MySQL? Estou seguindo um tutorial do >> HowtoForge[1] e o primeiro erro que esta aparecendo é o seguinte. >> >> - mensagem de erro do servidor db1 (192.168.0.3) >> $ sudo cat /var/log/syslog >> >> Oct 23 16:34:51 db1 mysqld: 121023 16:34:51 [ERROR] Slave I/O: Fatal >> error: The slave I/O thread stops because master and slave have equal >> MySQL server ids; these ids must be different for replication to work >> (or the --replicate-same-server-id option must be used on slave but >> this does not always make sense; please check the manual before using >> it). Error_code: 1593 >> >> O problema é que o parâmetro no arquivo /etc/mysql/my.cnf do servidor >> db1 esta assim "server-id = 1" e no db2 esta "server-id = 2". >> Resumindo, os servers ids estão diferentes. Alguém por acaso teria >> alguma ideia do que eu possa esta fazendo de errado? >> >> >> 1-http://www.howtoforge.com/mysql5_master_master_replication_debian_etch >> >> -- >> .''`. Caio Abreu Ferreira -- To UNSUBSCRIBE, email to debian-user-portuguese-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/CAJRsRC+HhgvhFDObreZpJm1gAxpTKUw1pÙxfjmr+s+3dw...@mail.gmail.com