我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用InnoDB Cluster解决MySQL数据库高可用方案

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用InnoDB Cluster解决MySQL数据库高可用方案

下文主要给大家带来使用InnoDB Cluster解决MySQL数据库高可用方案,希望这些内容能够带给大家实际用处,这也是我编辑使用InnoDB Cluster解决MySQL数据库高可用方案这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。

MySQL InnoDB Cluster为MySQL提供了一个完整的高可用解决方案。MySQL Shell包含AdminAPI,能够轻松地配置和管理至少三个MySQL云服务器实例组,以作为InnoDB集群。每个MySQL云服务器实例都运行MySQL Group Replication,它提供了在innodb集群中复制数据的机制,并内置故障转移。MySQL Router可以根据您部署的集群自动配置自己,将客户端应用程序透明地连接到云服务器实例。如果云服务器实例发生意外故障,群集将自动重新配置。在默认的单主模式下,InnoDB集群有一个读写云服务器实例——主云服务器。多个辅助云服务器实例是主云服务器的副本。如果主云服务器出现故障,辅助云服务器将自动提升为主云服务器的角色。MySQL Router检测到这一点,并将客户端应用程序转发到新的主云服务器。

[root@wallet01 ~]# mysql -uroot -p
Enter password:

mysql> grant all privileges on *.* to 'root'@'wallet01' identified by 'abcd@1234';
Query OK, 0 rows affected, 1 warning (0.05 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)

[root@wallet01 ~]# yum install -y mysql-shell

[root@wallet01 ~]#  mysqlsh --log-level=DEBUG3
MySQL Shell 8.0.18

Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type '\help' or '\?' for help; '\quit' to exit.

 MySQL  JS > shell.connect('root@wallet01:3306')
Creating a session to 'root@wallet01:3306'
Please provide the password for 'root@wallet01:3306': *********
Save password for 'root@wallet01:3306'? [Y]es/[N]o/Ne[v]er (default No): y
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 290
Server version: 5.7.27-log MySQL Community Server (GPL)
No default schema selected; type \use <schema> to set one.
<ClassicSession:root@wallet01:3306>

 MySQL  wallet01:3306  JS > var cluster = dba.createCluster('walletCluster', {adoptFromGR: true})
A new InnoDB cluster will be created based on the existing replication group on instance 

'wallet01:3306'.

Creating InnoDB cluster 'walletCluster' on 'wallet01:3306'...

Adding Seed Instance...
Adding Instance 'wallet03:3306'...
Adding Instance 'wallet01:3306'...
Adding Instance 'wallet02:3306'...
Resetting distributed recovery credentials across the cluster...
Cluster successfully created based on existing replication group.

 MySQL  wallet01:3306  JS > cluster.status();
{
    "clusterName": "walletCluster", 
    "defaultReplicaSet": {
        "name": "default", 
        "primary": "wallet01:3306", 
        "ssl": "DISABLED", 
        "status": "OK", 
        "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.", 
        "topology": {
            "wallet01:3306": {
                "address": "wallet01:3306", 
                "mode": "R/W", 
                "readReplicas": {}, 
                "role": "HA", 
                "status": "ONLINE"
            }, 
            "wallet02:3306": {
                "address": "wallet02:3306", 
                "mode": "R/O", 
                "readReplicas": {}, 
                "role": "HA", 
                "status": "ONLINE"
            }, 
            "wallet03:3306": {
                "address": "wallet03:3306", 
                "mode": "R/O", 
                "readReplicas": {}, 
                "role": "HA", 
                "status": "ONLINE"
            }
        }, 
        "topologyMode": "Single-Primary"
    }, 
    "groupInformationSourceMember": "wallet01:3306"
}

 MySQL  wallet01:3306  JS > \quit
Bye!
[root@wallet01 ~]# yum install -y mysql-router 
[root@wallet01 ~]# mysqlrouter --bootstrap root@wallet01:3306 --user=mysqlrouter --name=router01
Please enter MySQL password for root: 
WARNING: The MySQL server does not have SSL configured and metadata used by the router may be 

transmitted unencrypted.
# Reconfiguring system MySQL Router instance...

- Checking for old Router accounts
  - No prior Router accounts found
- Creating mysql account 'mysql_router1_a8933v9tcn8v'@'%' for cluster management
- Storing account in keyring
- Adjusting permissions of generated files
- Creating configuration /etc/mysqlrouter/mysqlrouter.conf

# MySQL Router 'router01' configured for the InnoDB cluster 'walletCluster'

After this MySQL Router has been started with the generated configuration

    $ /etc/init.d/mysqlrouter restart
or
    $ mysqlrouter -c /etc/mysqlrouter/mysqlrouter.conf

the cluster 'walletCluster' can be reached by connecting to:

## MySQL Classic protocol

- Read/Write Connections: localhost:6446
- Read/Only Connections:  localhost:6447

## MySQL X protocol

- Read/Write Connections: localhost:64460
- Read/Only Connections:  localhost:64470

Existing configuration backed up to '/etc/mysqlrouter/mysqlrouter.conf.bak'

[root@wallet01 ~]# /etc/init.d/mysqlrouter start
Starting mysqlrouter:                                      [  OK  ]

[root@wallet01 ~]# /etc/init.d/mysqlrouter status
mysqlrouter (pid  24451) is running...

[root@wallet02 ~]# yum install -y mysql-router 
[root@wallet02 ~]# mysqlrouter --bootstrap root@wallet01:3306 --user=mysqlrouter --name=router02 

[root@wallet02 ~]# /etc/init.d/mysqlrouter start
Starting mysqlrouter:                                      [  OK  ]

[root@wallet02 ~]# /etc/init.d/mysqlrouter status
mysqlrouter (pid  6906) is running...

[root@wallet03 ~]# yum install -y mysql-router 
[root@wallet03 ~]# mysqlrouter --bootstrap root@wallet01:3306 --user=mysqlrouter --name=router03

[root@wallet03 ~]# /etc/init.d/mysqlrouter start
Starting mysqlrouter:                                      [  OK  ]

[root@wallet03 ~]# /etc/init.d/mysqlrouter status
mysqlrouter (pid  18081) is running...

对于以上关于使用InnoDB Cluster解决MySQL数据库高可用方案,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用InnoDB Cluster解决MySQL数据库高可用方案

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL INSERT锁与数据库高可用方案

MySQL INSERT锁是指在向数据库中插入新数据时,会对相关表进行加锁操作,防止其他操作对该表进行修改或插入操作。这种锁可以保证数据的一致性和完整性,但有可能会导致性能下降,特别是在高并发的情况下。对于数据库高可用方案,可以考虑以下几
MySQL INSERT锁与数据库高可用方案
2024-08-18

阿里云新数据库高性能、高可用的新一代数据库解决方案

随着大数据时代的到来,数据量的爆炸式增长使得传统的数据库解决方案已经无法满足日益复杂的应用需求。阿里云新数据库,作为新一代的数据库解决方案,以高性能、高可用为特点,为用户提供了一种全新的数据库体验。阿里云新数据库是阿里云推出的一款高性能、高可用的新一代数据库解决方案,它基于阿里云自研的数据库引擎和优化算法,具有出
阿里云新数据库高性能、高可用的新一代数据库解决方案
2023-11-01

阿里云MySQL数据库中间件高效、安全、可扩展的数据库解决方案

阿里云MySQL数据库中间件是阿里云推出的一款集成了MySQL数据库服务和云计算服务的数据库解决方案。它提供了高性能的数据库服务,同时支持大规模的数据处理和存储。本文将详细介绍阿里云MySQL数据库中间件的特点、优势以及使用场景。阿里云MySQL数据库中间件的特点:高性能:阿里云MySQL数据库中间件基于阿里云的
阿里云MySQL数据库中间件高效、安全、可扩展的数据库解决方案
2023-12-13

阿里云数据库组高效、安全、可靠的数据库解决方案

阿里云数据库组是阿里巴巴集团旗下的数据库产品和服务提供商,致力于提供高效、安全、可靠的数据库解决方案,满足客户在数据存储、数据处理、数据分析等多方面的需求。其产品涵盖了关系型数据库、NoSQL数据库、分布式数据库、云数据库等多种类型,可以满足不同行业和业务场景的需求。详细说明:1.关系型数据库:阿里云提供了多种关
阿里云数据库组高效、安全、可靠的数据库解决方案
2023-12-15

阿里云织梦数据库构建高效可靠的数据库解决方案

本文将介绍阿里云织梦数据库,一款高效可靠的数据库解决方案。我们将深入探讨其特点、优势以及在实际应用中的表现。1.阿里云织梦数据库的特点阿里云织梦数据库是阿里云推出的一款高性能、高可用性的数据库产品。它采用了分布式架构,具备强大的扩展性和容错能力。同时,织梦数据库还支持多种数据类型和存储引擎,满足不同业务场景的需求
阿里云织梦数据库构建高效可靠的数据库解决方案
2024-01-29

如何在Oracle数据库中实施容灾和高可用性解决方案

在Oracle数据库中实施容灾和高可用性解决方案通常使用以下方法:数据库备份和恢复:定期备份数据库,并确保备份数据可恢复。可以使用Oracle的RMAN工具来管理数据库备份和恢复。数据库复制:使用Oracle的数据复制功能来将数据库数据复制
如何在Oracle数据库中实施容灾和高可用性解决方案
2024-03-02

pyqt5数据库使用教程(打包解决方案)

7.关于pyinstaller打包生成exe的方法 安装pip 、 pyinstaller在pycharm 的Terminal窗口中输入pyinstaller -F -w main.py注:输入参数的含义-F 表示生成单个可执行文件-w 表示去掉控制台窗口,
pyqt5数据库使用教程(打包解决方案)
2017-04-09

深度解析阿里云 SQL 服务器高性能、高可用的数据库解决方案

阿里云SQL服务器是阿里云推出的一款云端数据库产品,旨在为企业提供高效、安全的数据库服务。本文将深入解析阿里云SQL服务器,包括其性能特点、高可用性设计以及适用场景等。一、性能特点阿里云SQL服务器采用先进的分布式数据库技术,具备强大的计算能力和存储能力。其数据处理能力超过5000TPS,并且能够支持大规模并发读
深度解析阿里云 SQL 服务器高性能、高可用的数据库解决方案
2023-12-15

阿里云的云端数据库高效、安全、可靠的数据库解决方案

阿里云的云端数据库是阿里云推出的一款云端数据库解决方案,旨在帮助用户更加便捷、高效地管理其数据。它结合了阿里云的云技术,提供了一款可扩展、安全可靠的云端数据库服务。无论是中小型企业还是大型企业,都能够从中获益。阿里云的云端数据库主要提供了以下几大特性:首先,阿里云的云端数据库具有高度的可扩展性。通过阿里云的云计算
阿里云的云端数据库高效、安全、可靠的数据库解决方案
2023-12-16

编程热搜

目录