公司将很快从原来的MySQL架构升级,主由DRBD +心跳双主代替,就有了一个新的项目的电子商务网站在线,使用DRBD +心跳双硕士,因为这个过程是不同于以往的MyISAM引擎。因此,也将总结他们的经验:

1)MySQL的复制过程是异步同步过程,而不是完全主从式同步,因此同步过程有延迟。如果我们进行读写分离的业务,我们建议我们也监视这个延迟时间。

2)MySQL的主从机记住服务器ID保持不变,如果相同,复制过程中将出现以下错误:

复制代码代码如下所示:

致命错误:从我 / O threadstopsbecause大师和slavehave等于MySQL服务器ID这些ID mustbedifferent复制;工作(或相同--复制服务器ID optionmustbe用于奴隶但这并不总是有意义请检查themanualbefore使用;它)。



这个问题处理得很好,而且从机的服务器ID被修改为与主机器不一致。

3)一个错误我用的是与他们的二进制日志来完成复制过程的下位机,事实上并非如此,根据复制的工作原理:从服务器复制服务器中继二进制日志,中继日志(centos3-relay-bin.000002名称),然后更新使用自己的数据库的应用,所以从机不需要打开二进制日志,这个过程将是成功的;除非是准备决定的主要结构,它只需要从机打开二进制日志。这个问题一直在指导我,我一直认为奴隶机器是建立一个开放的二进制环境的复制。

4)在主机的授权,只有尽可能的一个或几个固定的机器的权限,所以他们只能复制Slav,复制客户端的权限,不给予许可;此外,虽然我们的数据库一般都是通过网络操作,但在MySQL数据库的网络更是授权经营。要谨慎;

5)复制构建过程通常是按照正常过程进行的。如果出现错误,请检查网络环境和权限问题。总的来说,整个建筑过程仍在顺利进行。

在数据库设计阶段,我定义了InnoDB数据库引擎的电子数据库。另外在数据库原有的所有系统表,其他表进行改造,从MyISAM到InnoDB,原因有二。

1)电子商务将涉及交易支付,在这个基本的OLTP应用程序,我们应该是核心应用的首选存储引擎的表;

2)DRBD系统启动过程将是缓慢的,会读表的频繁,如果表引擎是MyISAM,它有可能受损。为了引起不必要的问题,我把数据库引擎从MyISAM到InnoDB引擎。

DRBD +心跳+ MySQL,指的是以前的工作文件,建立顺畅。它在构建复制环境时遇到1062个错误。具体过程如下:

在早期阶段,参考MySQL手动操作,使用主机器的快照备份,使用单事务选项,然后频繁地同步进程,1062出错,并报告错误日志如下所示。

复制代码代码如下所示:

last_sql_error:error'duplicate entry'd36ad91bff36308de540bbd9ae6f4279'for key'primary查询。defaultdatabase:'myproject。查询:'insert为` lee_sessions `(` session_id `,` ip_address `,` user_agent `,` last_activity `,` user_data `)值('d36ad91bff36308de540bbd9ae6f4279 ','180.153.201.218 ','mozilla / 4,1353394206)



稍后,改变这个想法,使用主数据选项进行主主快照备份。命令如下:

复制代码代码如下所示:

就快速刷新日志中————主数据= 1 - P如何> myproject.sql



注意:使用--主数据备份SQL文件,通过这个参数将显示一个slavereplication,当其值为1,变化将在SQL文件记录主表;当该值为2,变化的主人将写入SQL笔记--主数据将自动使用锁定所有表选项不使用单交易期权的情况下(即两个生成选项不使用配置)。如何在SQL找到log_file和log_pos我们可以使用以下命令(请注意,更改字是大写的),如下所示:

复制代码代码如下所示:

grep变化myproject.sql



该命令显示以下结果:

复制代码代码如下所示:

更改主tomaster_log_file = 'mysql-bin。00000 8,master_log_pos = 106;



下一个复制过程没有详细解释。同步完成后,我们观察了很长时间,没有1062个错误,如下所示:

复制代码代码如下所示:

显示从属状态;

1行*************************** ***************************。

slave_io_state:waitingformaster发送事件

master_host:192.168.11.174

master_user:REP1

master_port:3306

connect_retry:60

master_log_file:mysql-bin.000008

read_master_log_pos:27880

relay_log_file:centos3-relay-bin.000002

relay_log_pos:28025

relay_master_log_file:mysql-bin.000008

slave_io_running:是的

slave_sql_running:是的

replicate_do_db:

replicate_ignore_db:

replicate_do_table:

replicate_ignore_table:

replicate_wild_do_table:

replicate_wild_ignore_table:

last_errno:0

last_error:

skip_counter:0

exec_master_log_pos:27880

relay_log_space:28182

until_condition:无

until_log_file:

until_log_pos:0

master_ssl_allowed:无

master_ssl_ca_file:

master_ssl_ca_path:

master_ssl_cert:

master_ssl_cipher:

master_ssl_key:

seconds_behind_master:0

master_ssl_verify_server_cert:无

last_io_errno:0

last_io_error:

last_sql_errno:0

last_sql_error:

1行集(0秒)



在InnoDB数据库引擎同步主从复制项目的工作经验也更多地参与到备份和复制InnoDB数据库,更多的做法是复制停止的图书馆,虽然思想是解决问题,但毕竟是停机维护,在一些特殊的情况下是不允许的,我们应该尝试使用mysqldump这种方式以逻辑备份主机的快照。