翻译进度
4
分块数量
2
参与人数

17.1.2.6 Setting Up Replicas

这是一篇协同翻译的文章,你可以点击『我来翻译』按钮来参与翻译。


以下部分描述如何设置副本。 在继续之前,请确保您拥有:

接下来的步骤取决于您是否有现有数据要导入到副本。 请参阅[第 17.1.2.5 节,“选择数据快照的方法”](https://dev.mysql.com/doc/refman/8.0/en/replication-snapshot-method.html「17.1.2.5 选择数据快照的方法” 数据快照」)了解更多信息。 选择以下选项之一:

  • 如果您没有要导入的数据库快照,请参阅[第 17.1.2.6.1 节,“使用新源和副本设置复制”](dev.mysql.com/doc/refman/8.0 /en/replication-setup-replicas.html#replication-howto-newservers「17.1.2.6.1 使用新源和副本设置复制」)。

  • 如果您有要导入的数据库快照,请参阅[第 17.1.2.6.2 节,「使用现有数据设置复制」](dev.mysql.com/doc/refman/8.0/en/re... -setup-replicas.html#replication-howto-existingdata「17.1.2.6.2 使用现有数据设置复制」)。

自由与温暖是遥不可及的梦想 翻译于 1年前
17.1.2.6.1 Setting Up Replication with New Source and Replicas

When there is no snapshot of a previous database to import, configure the replica to start replication from the new source.

To set up replication between a source and a new replica:

  1. Start up the replica.

  2. Execute a CHANGE REPLICATION SOURCE TO | CHANGE MASTER TO statement on the replica to set the source configuration. See Section 17.1.2.7, “Setting the Source Configuration on the Replica”.

Perform these replica setup steps on each replica.

This method can also be used if you are setting up new servers but have an existing dump of the databases from a different server that you want to load into your replication configuration. By loading the data into a new source, the data is automatically replicated to the replicas.

If you are setting up a new replication environment using the data from a different existing database server to create a new source, run the dump file generated from that server on the new source. The database updates are automatically propagated to the replicas:

$> mysql -h source < fulldb.dump
17.1.2.6.2 Setting Up Replication with Existing Data

When setting up replication with existing data, transfer the snapshot from the source to the replica before starting replication. The process for importing data to the replica depends on how you created the snapshot of data on the source.

Tip
To deploy multiple instances of MySQL, you can use InnoDB Cluster which enables you to easily administer a group of MySQL server instances in MySQL Shell. InnoDB Cluster wraps MySQL Group Replication in a programmatic environment that enables you easily deploy a cluster of MySQL instances to achieve high availability. In addition, InnoDB Cluster interfaces seamlessly with MySQL Router, which enables your applications to connect to the cluster without writing your own failover process. For similar use cases that do not require high availability, however, you can use InnoDB ReplicaSet. Installation instructions for MySQL Shell can be found here.

Note
If the replication source server or existing replica that you are copying to create the new replica has any scheduled events, ensure that these are disabled on the new replica before you start it. If an event runs on the new replica that has already run on the source, the duplicated operation causes an error. The Event Scheduler is controlled by the event_scheduler system variable, which defaults to ON from MySQL 8.0, so events that are active on the original server run by default when the new replica starts up. To stop all events from running on the new replica, set the event_scheduler system variable to OFF or DISABLED on the new replica. Alternatively, you can use the ALTER EVENT statement to set individual events to DISABLE or DISABLE ON SLAVE to prevent them from running on the new replica. You can list the events on a server using the SHOW statement or the Information Schema EVENTS table. For more information, see Section 17.5.1.16, “Replication of Invoked Features”.

As an alternative to creating a new replica in this way, MySQL Server's clone plugin can be used to transfer all the data and replication settings from an existing replica to a clone. For instructions to use this method, see Section 5.6.7.7, “Cloning for Replication”.

Follow this procedure to set up replication with existing data:

  1. If you used MySQL Server's clone plugin to create a clone from an existing replica (see Section 5.6.7.7, “Cloning for Replication”), the data is already transferred. Otherwise, import the data to the replica using one of the following methods.

    1. If you used mysqldump, start the replica server, ensuring that replication does not start by using the --skip-slave-start option, or from MySQL 8.0.24, the skip_slave_start system variable. Then import the dump file:

      $> mysql < fulldb.dump
    2. If you created a snapshot using the raw data files, extract the data files into your replica's data directory. For example:

      $> tar xvf dbdump.tar

      You may need to set permissions and ownership on the files so that the replica server can access and modify them. Then start the replica server, ensuring that replication does not start by using the --skip-slave-start option, or from MySQL 8.0.24, the skip_slave_start system variable.

  2. Configure the replica with the replication coordinates from the source. This tells the replica the binary log file and position within the file where replication needs to start. Also, configure the replica with the login credentials and host name of the source. For more information on the CHANGE REPLICATION SOURCE TO | CHANGE MASTER TO statement required, see Section 17.1.2.7, “Setting the Source Configuration on the Replica”.

  3. Start the replication threads by issuing a START REPLICA (or before MySQL 8.0.22, START SLAVE) statement.

After you have performed this procedure, the replica connects to the source and replicates any updates that have occurred on the source since the snapshot was taken. Error messages are issued to the replica's error log if it is not able to replicate for any reason.

The replica uses information logged in its connection metadata repository and applier metadata repository to keep track of how much of the source's binary log it has processed. From MySQL 8.0, by default, these repositories are tables named slave_master_info and slave_relay_log_info in the mysql database. Do not remove or edit these tables unless you know exactly what you are doing and fully understand the implications. Even in that case, it is preferred that you use the CHANGE REPLICATION SOURCE TO | CHANGE MASTER TO statement to change replication parameters. The replica uses the values specified in the statement to update the replication metadata repositories automatically. See Section 17.2.4, “Relay Log and Replication Metadata Repositories”, for more information.

Note
The contents of the replica's connection metadata repository override some of the server options specified on the command line or in my.cnf. See Section 17.1.6, “Replication and Binary Logging Options and Variables”, for more details.

A single snapshot of the source suffices for multiple replicas. To set up additional replicas, use the same source snapshot and follow the replica portion of the procedure just described.

本文章首发在 LearnKu.com 网站上。

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

贡献者:2
讨论数量: 0
发起讨论 查看所有版本


暂无话题~