【MySQL Shell】9.5 采用一个现有的复制设置

作为从头开始创建复制集的替代方案,您可以使用 dba.createReplicaSet() 中的 adoptFromAR 选项采用现有的复制设置。复制设置将被扫描,如果它与 InnoDB ReplicaSet 限制 兼容,AdminAPI 将创建必要的元数据。采用复制设置后,您只能使用 AdminAPI 来管理 InnoDB ReplicaSet。

要将现有复制设置转换为 InnoDB ReplicaSet, 请连接到主复制设置(也称为源复制设置)。从 MySQL Shell 全局会话连接到实例开始,复制拓扑将自动扫描和验证。在采用过程中检查所有实例的配置,以确保它们与 InnoDB ReplicaSet 用法兼容:

  • 所有复制通道都必须处于活动状态,并且通过 GTID 集验证的事务集必须一致。
  • 假设实例具有相同的状态或能够趋同。

    注意
    从 8.0.32 开始,所有新的复制通道都是在启用 SSL 的情况下创建的。对于 MySQL Shell 8.0.32 采用的复制组,情况并非如此。它们的复制通道保持未加密。

从 MySQL Shell 的全局会话连接到的实例开始,复制拓扑将自动扫描和验证。此操作对采用的 ReplicaSet 所做的唯一更改是元数据架构的创建。现有复制通道在采用过程中不会更改,但您可以在后续的切换主(实例)操作中更改它们。

例如,将由 example1example2 上的 MySQL 服务器实例组成的复制拓扑应用于 InnoDB ReplicaSet。

连接到在 example1 上的主服务器并执行:

mysql-js> rs = dba.createReplicaSet('testadopt', {'adoptFromAR':1})
A new replicaset with the topology visible from 'example1:3306' will be created.

* Scanning replication topology...
** Scanning state of instance example1:3306
** Scanning state of instance example2:3306

* Discovering async replication topology starting with example1:3306
Discovered topology:
- example1:3306: uuid=00371d66-3c45-11ea-804b-080027337932 read_only=no
- example2:3306: uuid=59e4f26e-3c3c-11ea-8b65-080027337932 read_only=no
    - replicates from example1:3306
	source="localhost:3310" channel= status=ON receiver=ON applier=ON

* Checking configuration of discovered instances...

This instance reports its own address as example1:3306
example1:3306: Instance configuration is suitable.

This instance reports its own address as example2:3306
example2:3306: Instance configuration is suitable.

* Checking discovered replication topology...
example1:3306 detected as the PRIMARY.
Replication state of example2:3306 is OK.

Validations completed successfully.

* Updating metadata...

ReplicaSet object successfully created for example1:3306.
Use rs.addInstance() to add more asynchronously replicated instances to
this replicaset and rs.status() to check its status.

一旦采用了 InnoDB ReplicaSet ,您就可以以与创建的 ReplicaSet 相同的方式使用它。

警告
此时,您必须仅使用 AdminAPI 管理 InnoDB ReplicaSet 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MySQL ShellMySQL 官方提供的一款基于 Python 和 JavaScript 开发的交互式 Shell 工具,可以用于管理 MySQL 数据库、执行 SQL 语句、监控 MySQL 实例等。在 MySQL Shell 中,可以使用内置的 ReplicationShell 插件来搭建主从复制。 以下是在 MySQL Shell 中搭建主从复制的步骤: 1. 安装 MySQL Shell 首先需要安装 MySQL Shell。可以在 MySQL 官网下载对应平台的安装包,或者使用操作系统自带的包管理器进行安装。安装完成后,可以通过以下命令启动 MySQL Shell: ``` $ mysqlsh ``` 2. 连接到主服务器 在 MySQL Shell 中,可以通过以下命令连接到主服务器: ``` mysql-js> \connect root@localhost:3306 ``` 其中,`root` 是连接到主服务器的用户名,`localhost` 是主服务器的地址,`3306` 是主服务器的端口号。连接成功后,可以使用以下命令检查主服务器的配置: ``` mysql-js> \sql mysql-sql> SHOW MASTER STATUS; ``` 该命令将显示当前主服务器的二进制日志文件和位置,用于后续配置从服务器。 3. 连接到从服务器 在 MySQL Shell 中,可以通过以下命令连接到从服务器: ``` mysql-js> \connect root@localhost:3307 ``` 其中,`root` 是连接到从服务器的用户名,`localhost` 是从服务器的地址,`3307` 是从服务器的端口号。连接成功后,可以使用以下命令配置从服务器的复制: ``` mysql-js> \sql mysql-sql> CHANGE MASTER TO MASTER_HOST='localhost', MASTER_PORT=3306, MASTER_USER='root', MASTER_PASSWORD='password', MASTER_LOG_FILE='[主服务器的二进制日志文件名]', MASTER_LOG_POS=[主服务器的二进制日志位置]; mysql-sql> START SLAVE; ``` 其中,`localhost` 和 `3306` 分别是主服务器的地址和端口号,`root` 和 `password` 分别是连接到主服务器的用户名和密码,`[主服务器的二进制日志文件名]` 和 `[主服务器的二进制日志位置]` 是主服务器当前二进制日志的文件名和位置。执行以上命令后,从服务器就会开始复制主服务器的数据。 4. 检查主从复制状态 可以使用以下命令检查主从复制状态: ``` mysql-sql> SHOW SLAVE STATUS\G ``` 如果显示 `Slave_IO_Running` 和 `Slave_SQL_Running` 都为 `YES`,则表示主从复制配置成功。 希望以上步骤对您有所帮助!如有任何疑问,欢迎随时追问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独上西楼影三人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值