17.1.1.1 Setting the Replication Master Configuration

17.1 Replication Configuration

17.1.1 How to Set Up Replication
17.1.2 Replication Formats
17.1.3 Replication with Global Transaction Identifiers
17.1.4 Replication and Binary Logging Options and Variables
17.1.5 Common Replication Administration Tasks

17.1.1.1 Setting the Replication Master Configuration

复制在servers之间是基于binary logging 机制,MySQL 实例作为master(数据改变的源头)

写更新和改变作为”events” 到binary log.

在binary log 中的信息是以不同的记录格式根据数据被记录的改变。Slaves 是配置来读取binary log

从master,执行binary log里的evnets在slave本地的数据库。

重要的是:

你不能配置master 来只记录某些events.

master 是”dumb” 在这种情况下。一旦binary loggging 被启用,所有的语句被记录到binary log里。

每个slave 接收binary log 的全部内容的副本。它是slave的责任来决定 那些2进制中的语句应该被执行,

你不能配置master 只记录某些evnets.如果你不指定其他,所有的evnets 在master binary log 是被执行在slave上。

如果需要,你可以配置slave来只处理针对特定的数据库或者表的events.

每个slave 都有一个binary log 日志的坐标,文件名和位置在文件里表示它已从master读取和处理的。

这个意味着 多个slaves 可以被连接到master和执行相同binary log的不同部分。

因为slaves控制这个过程,单独的slave 被连接和断开连接不影响master的操作。

此外, 因为每个slave 记录当前的binary log的位置,slave 断开是可能的,重新连接,然后继续处理。

master和每个slave 必须配置一个单独的ID(使用server-id 选项)。额外的,每个salve必须配置信息关于master host name,

log file name,和位置在那个文件。这些细节可以被控制在一个MySQL session 使用

CHANGE MASTER TO 语句在slave上。 详细的信息存储在slave的master into 信息库里,

它可以是一个文件或者一个表格 (see Section 17.2.2, “Replication Relay and Status Logs”).

本节介绍了复制环境的设置和配置,包括一步一步的说明用于创建一个新的复制环境,这部分主要组成部分是:

指导建立两个或者更多的复制servers,Section 17.1.1, 如何设置复制”.处理系统配置和提供方法用于复制数据在Master和

slaves之间。
在2进制中的Events 是记录使用一些格式,这些被称为基于语句的复制(SBR)或者基于行的复制(RBR),

第三只类型,混合格式的复制(MIXED),使用SBR或者RBR 复制自动的利用两种的好处.

不同的格式 将在章节17.1.2, “Replication Formats”.讨论。

详细信息在不同的配置选项和变量,应用于复制是在Section 17.1.4, “Replication and Binary Logging Options and

Variables”.

一旦开始,复制过程应该需要较少的管理或者监控,然后,对常见任务的建议,你可能要执行,见第17.1.5,“常见的复制管理任

务”。

17.1.1 How to Set Up Replication (如何设置复制)

17.1.1.1 Setting the Replication Master Configuration
17.1.1.2 Setting the Replication Slave Configuration
17.1.1.3 Creating a User for Replication
17.1.1.4 Obtaining the Replication Master Binary Log Coordinates
17.1.1.5 Creating a Data Snapshot Using mysqldump
17.1.1.6 Creating a Data Snapshot Using Raw Data Files
17.1.1.7 Setting Up Replication with New Master and Slaves
17.1.1.8 Setting Up Replication with Existing Data
17.1.1.9 Introducing Additional Slaves to an Existing Replication Environment
17.1.1.10 Setting the Master Configuration on the Slave

本节描述如歌设置完整的MySQL server的复制,有许多不同的方法来设置复制,并且使用确切的方法取决于你如何设置复制,

以及是否已经拥有了数据在你的master数据库里。

有一些常用的任务,是相同的对于所有的复制步骤:

在master上,你必须启用binary logging和配置一个unique server ID,这个需要服务器重启。

See Section 17.1.1.1, “Setting the Replication Master Configuration”.

在每个slave,你需要连接到master,你必须配置一个unique server ID.这个可能需要server重启

See Section 17.1.1.2, “Setting the Replication Slave Configuration”.

或者,传感一个单独的用户 用于你的slaves来使用到master进行身份认证,当读取binary log 用于复制。

See Section 17.1.1.3, “Creating a User for Replication”.

在创建数据快照或者启动复制进程前,你需要记录master上binary log的位置。你需要这些信息来配置

slave,以便slave指导在binry log 哪里开始执行events. See Section 17.1.1.4, “Obtaining the Replication Master

Binary Log Coordinates”.

如果你已经有数据在你的master上,需要使用它来同步到你的slave上,

你需要创建一个数据快照。这里有不同的方法来创建数据库快照,依赖数据库的大小和文件的位置。

创建快照使用mysqldump (see Section 17.1.1.5, “Creating a Data Snapshot Using mysqldump”)

或者通过复制数据文件目录。

配置slave 设置用于连接到Master,比如host name,登录认证,binary log 文件名字和位置。

17.1.1.1 Setting the Replication Master Configuration 设置Master的复制配置

在复制master上,你必须启用binary logging 和创建一个唯一的 unique server ID.

如果这些没有被做,你需要重启server.

binary logging 必须启用在master上,因为binary log 是复制改变从master到它的slave的基础。

如果binary logging 没有配置使用log-bin选项,复制是不可能的。

每个server 在一个复制组里必须配置为一个单位server id,这个ID 是用于确定单独的server 在group里,

并且必须在1和232-1之间的整数,你如何组织和选择数字是你的选择。

配置2进制和server ID选项,关闭MySQL server,编辑my.cnf文件或者my.ini文件。

在配置文件的[mysqld]章节,增加log-bin 和server-id 选项。

如果这些选项已经存在,但被注释掉了,取消选项的注释,改变它们根据你的需求。

比如,启用binary log 使用一个log 文件名字 mysql-bin的前缀和配置servr ID 为1,使用如下:

[mysqld]
log-bin=mysql-bin
server-id=1

当做出改变后,重启server

注意:

如果忽略server-id(或者设置其为默认值0),master 拒绝任何slaves的连接

注意:

对于最大可能的持久性和一致性在一个复制环境使用InnoDB 在事务处理, 你需要设置 innodb_flush_log_at_trx_commit=1 and

sync_binlog=1 in the master my.cnf file.

注意:

确保skip-networking option是不启用的在你的复制master上,如果网络被禁言,slave 不能和master通讯复制会失败。

原文地址:https://www.cnblogs.com/hzcya1995/p/13351339.html