MySQL InnoDB集群部署及管理全教程(二)

news2024/11/16 19:40:42

MySQL InnoDB集群部署及管理全教程(一)_Doker 多克的博客-CSDN博客

四、 部署生产 InnoDB 集群

在生产环境中工作时,组成InnoDB集群的MySQL服务器实例作为网络的一部分在多台主机上运行,而不是在第6.8节“AdminAPI MySQL Sandboxes”中描述的单机上运行。在继续执行这些说明之前,必须将所需的软件安装到要作为服务器实例添加到集群的每台计算机上。
下图说明了您在本节中使用的场景:

1、预检查 InnoDB 集群使用情况的实例配置 

在从服务器实例创建生产部署之前,您需要检查每个实例上的MySQL是否已正确配置。dba.configureInstance()函数在配置实例时会执行此操作,但您也可以选择使用dba.checkInstanceConfiguration(实例)函数。这将检查实例是否满足第7.1节“InnoDB集群要求”中列出的要求,而不更改实例上的任何配置。这不会检查实例上的任何数据,有关详细信息,请参阅检查实例状态。
用于连接到实例的用户必须具有适当的权限,例如在手动配置InnoDB集群管理员帐户中配置的权限。以下演示了在运行的MySQL Shell中发出此命令:

mysql-js> dba.checkInstanceConfiguration('icadmin@ic-1:3306')
Please provide the password for 'icadmin@ic-1:3306': ***
Validating MySQL instance at ic-1:3306 for use in an InnoDB cluster...

This instance reports its own address as ic-1
Clients and other cluster members will communicate with it through this address by default.
If this is not correct, the report_host MySQL system variable should be changed.

Checking whether existing tables comply with Group Replication requirements...
No incompatible tables detected

Checking instance configuration...

Some configuration options need to be fixed:
+--------------------------+---------------+----------------+--------------------------------------------------+
| Variable                 | Current Value | Required Value | Note                                             |
+--------------------------+---------------+----------------+--------------------------------------------------+
| enforce_gtid_consistency | OFF           | ON             | Update read-only variable and restart the server |
| gtid_mode                | OFF           | ON             | Update read-only variable and restart the server |
| server_id                | 1             |                | Update read-only variable and restart the server |
+--------------------------+---------------+----------------+--------------------------------------------------+

Please use the dba.configureInstance() command to repair these issues.

{
    "config_errors": [
        {
            "action": "restart",
            "current": "OFF",
            "option": "enforce_gtid_consistency",
            "required": "ON"
        },
        {
            "action": "restart",
            "current": "OFF",
            "option": "gtid_mode",
            "required": "ON"
        },
        {
            "action": "restart",
            "current": "1",
            "option": "server_id",
            "required": ""
        }
    ],
    "status": "error"
}

对计划用作集群一部分的每个服务器实例重复此过程。运行dba.checkInstanceConfiguration()后生成的报告提供了在InnoDB集群部署中使用实例所需的任何配置更改的信息。报告的config_error部分中的action字段告诉实例上的MySQL是否需要重新启动才能检测到对配置文件所做的任何更改。 

2、为InnoDB集群使用配置生产实例

AdminAPI提供dba.configureInstance()函数,用于检查实例是否已针对InnoDB Cluster的使用进行了适当配置,并在发现任何与InnoDB Cluster不兼容的设置时配置实例。您对实例运行dba.configureInstance()命令,它会检查使实例能够用于InnoDB集群所需的所有设置。如果实例不需要更改配置,则无需修改实例的配置,dba.configureInstance()命令输出确认实例已准备好用于InnoDB Cluster。
如果需要进行任何更改以使实例与InnoDB Cluster兼容,则会显示不兼容设置的报告,您可以选择让命令对实例的选项文件进行更改。根据MySQL Shell连接到实例的方式以及实例上运行的MySQL版本,您可以通过将这些更改持久化到远程实例的选项文件中来使这些更改永久化,请参阅第6.2.4节“持久化设置”。
不支持自动持久化配置更改的实例要求您在本地配置该实例,请参阅使用dba.configureLocalInstance()配置实例。或者,您也可以手动更改实例的选项文件,有关详细信息,请参阅“使用选项文件”。无论您以何种方式更改配置,都可能需要重新启动MySQL以确保检测到配置更改。
dba.configureInstance()命令的语法为:

dba.configureInstance([instance][, options])

其中instance是一个实例定义,options是一个数据字典,其中包含用于配置操作的附加选项。该操作返回一条关于结果的描述性文本消息。
实例定义是实例的连接数据。例如:

dba.configureInstance('user@example:3306')

选项字典可以包含以下内容:

  • mycnfPath-实例的MySQL选项文件的路径。请注意,InnoDB Cluster只支持服务器实例的单个选项文件,不支持使用--defaults extra file选项来指定额外的选项文件。对于使用实例的选项文件的任何AdminAPI操作,必须指定主文件。
  • outputMycnfPath-用于写入实例的MySQL选项文件的替代输出路径。
  • password—连接要使用的密码。
  • clusterAdmin-要创建的InnoDB集群管理员用户的名称。支持的格式是标准MySQL帐户名格式。支持用户名和主机名的标识符或字符串。默认情况下,如果未加引号,则假定输入为字符串。请参阅第6.4节“为AdminAPI创建用户帐户”。
  • clusterAdminPassword-使用clusterAdmin创建的InnoDB集群管理员帐户的密码。尽管您可以指定使用此选项,但这是一个潜在的安全风险。如果未指定此选项,但指定了clusterAdmin选项,则会在交互式提示下提示您输入密码。
  • clearReadOnly-用于确认super_read_only应设置为off的布尔值,请参阅超级只读模式下的实例配置。此选项已弃用,并计划在将来的版本中删除。
  • interactive-一个布尔值,用于在命令执行中禁用交互式向导,这样就不会向用户提供提示,也不会显示确认提示。
  • restart—一个布尔值,用于指示应执行目标实例的远程重新启动以完成操作。

尽管连接密码可以包含在实例定义中,但这是不安全的,不建议使用。 
一旦对实例发出dba.configureInstance(),该命令就会检查实例的设置是否适合InnoDB Cluster的使用。显示一个报告,显示InnoDB集群所需的设置。如果实例不需要对其设置进行任何更改,则可以在InnoDB集群中使用它,并可以继续执行第7.4.3节“创建InnoDB集群”。如果实例的设置对于InnoDB集群的使用无效,dba.configureInstance()命令将显示需要修改的设置。在配置实例之前,系统会提示您确认表中显示的更改,其中包含以下信息: 

  • 变量-无效的配置变量。
  • 当前值-无效配置变量的当前值。
  • 必需值-配置变量的必需值。

如何进行取决于实例是否支持持久化设置,请参阅第6.2.4节“持久化设置”。当针对MySQL Shell当前运行的MySQL实例(即本地实例)发出dba.configureInstance()时,它会尝试自动配置该实例。当针对远程实例发出dba.configureInstance()时,如果该实例支持自动持久化配置更改,则可以选择执行此操作。如果远程实例不支持持久化更改以将其配置为InnoDB Cluster使用,则必须在本地配置该实例。请参阅使用dba.configureLocalInstance()配置实例。
通常,dba.configureInstance()配置选项文件后不需要重新启动实例,但对于某些特定设置,可能需要重新启动。这些信息显示在发出dba.configureInstance()后生成的报告中。如果实例支持RESTART语句,MySQL Shell可以关闭然后启动实例。这样可以确保mysqld检测到对实例的选项文件所做的更改。

dba.configureInstance()方法验证是否有合适的用户可用于集群使用,该用户用于集群成员之间的连接。
如果未指定用户来管理群集,则在交互模式下,向导允许您选择以下选项之一:

  • 为根用户启用远程连接,不建议在生产环境中使用
  • 创建新用户
  • 没有自动配置,在这种情况下,您需要手动创建用户

使用dba.configureLocalInstance()配置实例

不支持自动持久化配置更改的实例(请参阅第6.2.4节,“持久化设置”)要求您连接到服务器,运行MySQL Shell,本地连接到实例,并发出dba.configureLocalInstance()。这使MySQL Shell能够在对远程实例运行以下命令后修改实例的选项文件:

  • dba.configureInstance()
  • dba.createCluster()
  • Cluster.addInstance()
  • Cluster.removeInstance()
  • Cluster.rejoinInstance()

建议保持配置更改的方法是登录到远程计算机,例如使用SSH,以root用户身份运行MySQL Shell,然后连接到本地MySQL服务器。例如,使用--uri选项连接到本地实例:

$> sudo -i mysqlsh --uri=instance

或者使用\connect命令登录到本地实例。然后发出dba.configureInstance(instance),其中instance是到本地实例的连接信息,以保持对本地实例的选项文件所做的任何更改:

mysql-js> dba.configureLocalInstance('icadmin@ic-2:3306')

 对集群中不支持自动持久化配置更改的每个实例重复此过程。例如,如果您向一个集群添加了两个不支持自动保持配置更改的实例,则必须连接到每个服务器,并在实例重新启动之前保持InnoDB集群所需的配置更改。类似地,如果修改集群结构,例如更改实例数量,则需要对每个服务器实例重复此过程,以相应地更新集群中每个实例的InnoDB集群元数据。

超级只读模式下的实例配置

每当组复制停止时,super_read_only变量都会设置为ON,以确保不会对实例进行写入。当您尝试将此类实例与以下AdminAPI命令一起使用时,您可以选择在实例上设置super_read_only=OFF:

  • dba.configureInstance()

  • dba.configureLocalInstance()

  • dba.dropMetadataSchema()

当AdminAPI遇到super_read_only=ON的实例时,在交互模式下,您可以选择将super_read_only设置为OFF。例如:

mysql-js> var myCluster = dba.dropMetadataSchema()
Are you sure you want to remove the Metadata? [y/N]: y
The MySQL instance at 'localhost:3310' currently has the super_read_only system
variable set to protect it from inadvertent updates from applications. You must
first unset it to be able to perform any changes to this instance.
For more information see:
https://dev.mysql.com/doc/refman/en/server-system-variables.html#sysvar_super_read_only.

Do you want to disable super_read_only and continue? [y/N]: y

Metadata Schema successfully removed.

将显示实例的当前活动会话数。您必须确保任何应用程序都不会无意中写入实例。通过回答“是”,您确认AdminAPI可以写入实例。如果列出的实例有多个打开的会话,请在允许AdminAPI将super_read_only设置为OFF之前格外小心。


五、 配置 InnoDB 集群


六、 保护 InnoDB 集群


七、 监控 InnoDB 集群


八、 还原和重新启动 InnoDB 集群


九、修改或解散 InnoDB 集群


十、升级 InnoDB 集群

📢文章下方有交流学习区!一起学习进步!也可以前往官网,加入官方微信交流群💪💪💪
📢首发CSDN博客,创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒
📢你的支持和鼓励是我创作的动力❗❗❗ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/642411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unsupervised Learning(无监督学习)

目录 Introduction Clustering(聚类) Dimension Reduction(降维) PCA(Principle component analysis,主成分分析) Word Embedding(词嵌入) Matrix Factorization(矩…

Linux之用户管理

目录 Linux之用户管理 添加新用户 --- useradd命令 语法格式 常用选项 案例 为用户账号设置密码 -- passwd 语法格式 选项及作用 案例 修改用户属性 --- usermod命令 语法格式 选项及作用 案例 删除用户账号 --- userdel命令 语法格式 选项及作用 案例 用户切换 …

imu绘制轨迹

本文作者感谢武汉大学卫星导航定位技术研究中心多源智能导航实验室(i2Nav)牛小骥教授团队开源的KF-GINS软件平台。 首先声明,仅仅是实现,实际应用意义不大 这套算法利用EKF更新误差并且补偿到状态更新,如果没有gps信号时,利用im…

jetpack compose —— Card

jetpack compose Card 组件提供了一种简单而强大的方式来呈现卡片式的用户界面。 一、什么是 Card 组件 二、基本用法 三、属性和修饰符 四、嵌套使用和复杂布局 一、什么是 Card 组件 Card 是 Jetpack Compose 中的一个常用组件,用于呈现卡片式的用户界面。它…

量化投资 现代投资组合理论(MPT)

量化投资 现代投资组合理论(MPT) 问题:构建投资组合,达到目标收益率的同时拥有最小的 risk exposure. 有 J J J 个可交易证券,期望收益率为 R [ R 1 , ⋯ , R j ] T R[R_1,\,\cdots,\,R_j]^T R[R1​,⋯,Rj​]T&…

小红书数据洞察!父亲节将临,3大种草方式打动消费者

父亲节即将来临,各大社交平台陆陆续续开始讨论。品牌自然也不会错过此机,走心宣传。那么,今年的父亲节,有哪些热门内容呢?品牌如何点燃消费热情、提升形象?通过小红书数据和关键词分析,我们进一…

基于阿里云 Serverless 容器服务轻松部署企业级 AI 应用

作者:元毅、坤仑 数禾科技 AI 模型服务基于云原生架构,为不同业务环节提供智能决策支持。随着业务的快速发展,摆在数禾面前的难题是支撑模型计算的底层应用资源无法根据请求量来调整机器资源支持运算能力。同时,随着模型在线推理…

医疗行业的新选择:智能医疗管理模板

随着社会的发展,医疗行业也在不断地进步与发展,信息化已经成为医疗行业的重要一环。智能医疗管理应用作为新型医疗管理工具,已经成为中小型医院、门诊、美容机构等企业的必备软件之一。该应用包括患者管理、预约管理、诊断管理、住院管理、财…

Qt推荐的多线程的理解

目的 在Qt4.8之后,Qt多线程的写法最好还是通过QObject来实现,和线程的交互通过信号和槽(实际上其实是通过事件)联系。 用QObject来实现多线程有个非常好的优点,就是默认就支持事件循环(Qt的许多非GUI类也需要事件循环支持&#x…

js执行顺序:

这篇笔记摘录来源: 👉我是javascript,2分钟彻底弄懂我的执行机制?【JavaScript教程】_哔哩哔哩_bilibili 👉js执行顺序_前端小白,请多指教的博客-CSDN博客 目录 面试题: 一、单线程 二、…

十年软件测试经验,我的成长之道

有很多小伙伴问,测试职业的天花板是不是很低? 在回答这个问题之前,我想请大家先想一下,当初自己为什么会选择测试这个职业?入门门槛低?不需要写代码?工作比开发轻松?还是其他。这个…

科技政策 | 工业和信息化部办公厅关于组织申报2023年跨行业跨领域工业互联网平台的通知

原创 | 文 BFT机器人 6月1日工业和信息化部办公厅发布关于组织申报2023年跨行业跨领域工业互联网平台的通知;旨在贯彻《国务院关于深化“互联网先进制造业”发展工业互联网的指导意见》,落实《工业互联网创新发展行动计划(2021-2023年&#…

还有多少公司在使用H5?不怕被破解吗?

H5还有人在用吗 近几天,老板让我调查一下现在市面上H5的使用现状。粗略地调查了一下,发现现在使用H5的真不多了,但是还是有人在用H5的,原因无非一是成本低,相比户外广告,H5制作费用根本不值一提&#xff1…

Delta 一个新的 git diff 对比显示工具

目录 介绍git diff 介绍delta介绍 一、安装1.下载 Git2.下载 delta3.解压4.修改配置文件5. 修改主题6.其他配置和说明 二、对比命令1.在项目中 git diff 常用命令2.对比电脑上两个文件3.对比电脑上的两个文件夹 三、在Git 命令行中使用效果四、在idea 的Terminal命令行中使用效…

展览展会邀请媒体现场报道需要注意什么?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 真开心今天与大家分享展览展会邀请媒体的一些经验,行业复苏,各行各业都充满了活力,每天胡老师都会接到大大小小展会邀请媒体报道的需求,那…

终端数据防泄漏

场景描述 科技研发类公司在日常工作中,存在员工对源代码数据有意或者无意的传播。软件企业作为以源代码数据为核心资产的行业,如果数据安全管理不规范,会出现员工把核心数据一锅端,使企业失去竞争力,造成不可估计的损…

代码随想录算法训练营第五十六天|583. 两个字符串的删除操作|72. 编辑距离

LeetCode583. 两个字符串的删除操作 动态规划五部曲: 1,确定dp数组(dp table)以及下标的含义:dp[i][j]:以i-1为结尾的字符串word1,和以j-1位结尾的字符串word2,想要达到相等&#…

自己尝试在springboot2.0微服务中内嵌一个FTP Server

1.pom.xml添加依赖 <dependency><groupId>org.apache.ftpserver</groupId><artifactId>ftpserver-core</artifactId><version>1.2.0</version></dependency> 2.yml文件添加Ftp服务参数 3.增加apache.ftpserver专用配置文件 文…

OWASO 之认证崩溃基础技能

文章目录 一、burp爆破用法1.Attack type爆破方式设置2.payload处理3.请求引擎设置4.攻击结果设置5.grap匹配设置 二、常见端口与利用1、文件共享2、远程连接3、Web应用4、数据库 三、爆破案例经验1、暴力破解攻击产生的5个原因或漏洞2、猜测用户名方法3、猜测密码方法 四、实验…

第七十三天学习记录:计算机硬件技术基础:微型计算机基础

一、微型计算机的组成&#xff1a; 微型计算机由硬件和软件两大部分组成&#xff0c;硬件是指构成微型计算机的物理实体或物理装置&#xff0c;包括微型计算机的微处理器、储存器、总线接口电路和外部设备&#xff0c;以及电源和机械构件等。软件是指微型计算机所使用的各种程…