云耀服务器L实例搭建高可用mysql测评
文章目录
- 云耀服务器L实例搭建高可用mysql测评
- 1. 华为云云耀服务器L实例介绍
- 2. 高可用环境介绍
- 3. mysql介绍
- 4. 华为云云备份CBR和主机安全HSS
- 5. 部署华为云云耀服务器L实例
- 6. mysql高可用部署
- 7. 总结
1. 华为云云耀服务器L实例介绍
华为云云耀服务器L实例是一种高性能、高可靠性的云服务器实例,适用于大规模企业级应用、大数据分析等场景。它基于华为最新一代的硬件虚拟化技术,提供了更高的计算、存储和网络性能,同时保障了数据安全和隐私保护。
云耀云服务器L实例官网:https://www.huaweicloud.com/product/hecs-light.html
华为云云耀服务器L实例拥有以下特点:
- 高性能:采用华为自研的最新一代虚拟化技术,提高了计算、存储和网络性能,使得L实例可以轻松应对大规模企业级应用和大数据分析等场景的高性能需求。
- 高可靠性:通过多重备份和快速恢复技术,保障了数据的安全性和可靠性。即使发生硬件故障或数据丢失,也能快速恢复业务,确保了业务的连续性。
- 简单易用:提供了自动化运维和智能管理平台,使得部署和管理云服务器变得简单易用。用户只需通过简单的配置和命令行工具,即可完成部署和管理任务。
- 灵活扩展:支持按需扩展资源,可根据业务需求自由调整计算、存储和网络资源,灵活应对业务增长和负载变化。
- 安全可靠:严格遵守国内外安全标准和法律法规要求,保护用户数据的安全性和隐私。同时,提供了多种安全措施,包括访问控制、漏洞扫描等,保障了云服务器的安全可靠运行。
2. 高可用环境介绍
MySQL 高可用是一个针对 MySQL 数据库的解决方案,它提供了对于故障转移、负载均衡和数据复制等功能的管理和优化。这个方案可以解决因为硬件故障、系统崩溃或者其他不可预见的问题导致的 MySQL 数据库服务中断的问题,保证 MySQL 数据库服务的高可用性。
MySQL 高可用性的实现方法有很多种,如主从复制、主主复制和中间件等。其中,主从复制是最常用的一种方法,它可以将 MySQL 数据在多个服务器上进行同步,以保证在主服务器出现故障时,可以从服务器可以无缝地接管主服务器的服务。主主复制则可以实现负载均衡,将多个 MySQL 数据库服务器的负载进行均衡分配,以提高 MySQL 数据库服务的可用性和性能。而中间件则可以将多个 MySQL 数据库服务器进行集成,以保证在任何一个服务器出现故障时,其他服务器可以接管该服务器的任务。
高可用性(High Availability)是指系统在出现故障时,可以继续运行,不会中断或丢失数据,能够保持系统的连续性和稳定性。高可用环境是指为了实现高可用性而搭建的一种计算机系统环境,这种环境通常包括硬件、网络、存储、数据库、应用等方面的高可用性技术。
以下是高可用环境的一些关键技术:
- 负载均衡:通过负载均衡技术,将网络流量分发到多个服务器上,以提高系统的处理能力和响应速度。
- 集群:通过将多台服务器组成一个集群,可以实现负载均衡和高可用性,当一台服务器出现故障时,其他服务器可以继续提供服务。
- 存储备份:对于关键数据,需要进行备份并存储在可靠的数据中心或云存储服务上,以确保数据不会丢失。
- 快速恢复:在系统出现故障时,需要快速恢复到正常运行状态。这通常需要采用一些快速恢复技术,如快速重启、自动备份恢复等。
- 监控和告警:为了及时发现系统故障并采取相应的措施,需要建立监控和告警系统。这种系统可以实时监控系统的运行状态和性能指标,当出现异常情况时,会及时发出告警信息并通知管理员进行处理。
3. mysql介绍
MySQL是一种流行的开源关系型数据库管理系统(RDBMS),广泛应用于各种应用程序和网站。它最初由瑞典公司MySQL AB开发,后来被甲骨文公司(Oracle Corporation)收购。
MySQL具有强大的性能和可靠性,可支持高并发访问、持久化存储和共享访问。它支持多种存储引擎,包括InnoDB、MyISAM、Memory等,可以满足不同的性能和可靠性需求。MySQL还提供了丰富的开发接口和工具,如PHP、Python、Java等,方便开发者进行应用程序的开发和集成。
MySQL具有灵活的数据模型,支持关系型数据、非关系型数据和半结构化数据等多种数据类型,可以进行各种复杂的查询和数据处理操作。同时,MySQL也支持各种数据备份和恢复技术,以确保数据的一致性和安全性。
MySQL还具有良好的可扩展性和可定制性,可以与其他技术进行集成,如Apache、Nginx、Drupal、WordPress等。同时,MySQL也支持各种云服务提供商,如Amazon RDS、Google Cloud SQL、Azure SQL Database等,方便用户选择适合自己的云服务方案。
4. 华为云云备份CBR和主机安全HSS
4.1 华为云云备份CBR
云备份(Cloud Backup and Recovery, CBR)为云内的弹性云服务器(Elastic Cloud Server, ECS)、云耀云服务器(Hyper Elastic Cloud Server,HECS)、裸金属服务器(Bare Metal Server, BMS)(下文统称为服务器)、云硬盘(Elastic Volume Service, EVS)、SFS Turbo文件系统、云桌面(Workspace)、云下VMware虚拟化环境和本地文件目录,提供简单易用的备份服务,当发生病毒入侵、人为误删除、软硬件故障等事件时,可将数据恢复到任意备份点。
产品架构
云备份由备份、存储库和策略组成。
备份
备份即一个备份对象执行一次备份任务产生的备份数据,包括备份对象恢复所需要的全部数据。云备份产生的备份可以分为几种类型:
- 云硬盘备份:云硬盘备份提供对云硬盘的基于快照技术的数据保护。
- 云服务器备份:云服务器备份提供对弹性云服务器和裸金属服务器的基于多云硬盘一致性快照技术的数据保护。同时,未部署数据库等应用的服务器产生的备份为服务器备份,部署数据库等应用的服务器产生的备份为数据库服务器备份。
- SFS Turbo备份:SFS Turbo备份提供对SFS Turbo文件系统的数据保护。
- 混合云备份:混合云备份提供对线下备份存储OceanStor Dorado阵列中的备份数据以及VMware服务器备份的数据保护。
- 文件备份:文件备份提供对云上服务器或用户数据中心虚拟机中的单个或多个文件的数据保护,无需再以整机或整盘的形式进行备份。
- 云桌面备份:云桌面备份提供对云桌面的数据保护。
4.2 华为云主机安全HSS
企业主机安全(Host Security Service,HSS)是以工作负载为中心的安全产品,集成了主机安全、容器安全和网页防篡改,旨在解决混合云、多云数据中心基础架构中服务器工作负载的独特保护要求。
HSS不受地理位置影响,为主机、容器等提供统一的可视化和控制能力。
HSS通过对主机、容器进行系统完整性的保护、应用程序控制、行为监控和基于主机的入侵防御等,保护工作负载免受攻击。
5. 部署华为云云耀服务器L实例
5.1 云耀服务器高可用L实例购买
进入华为云官网: https://www.huaweicloud.com/
进入控制台
搜索云耀服务器HECS
选择登录L实例控制台
如果没有应用实例,则可以选择购买资源
云耀服务组合实例在购买阶段相对于传统的华为云ECS服务器购买十分简单便捷
关于区域选择,可以按照下面规则选择合适的区域
- 地理位置就近原则。根据用户群所在位置,应就近选择区域以减少网络时延,提高访问速度。
- 不同区域价格差异。不同区域的服务器价格可能会有所不同,因此需考虑预算和成本效益。
- 备案考虑。根据所在的行业和业务需求,有些区域可能需要特定的备案或审批手续,应该提前了解和考虑。
- 多产品同区域内网互通。如果需要将多个华为云产品部署在同一区域内,以便实现内网互通,可以提高访问速度和数据传输效率。
本次我选择的是Centos7.8版本
套餐规格选择高可用套餐
关于实例规格选择,这要根据大家的实际业务需求和预算进行综合考虑
高可用服务器具有以下优势:
- 数据安全:普通的IDC机房或服务器厂商,利用云服务商部署高性能云服务器能够大幅度降低黑客攻击或DDOS攻击的风险。用户不必担忧技术规格,云服务器服务商应用市面上最好的SSD和CPU芯片来保持低ping率和高计算能力。
- 可靠性:云服务器ECS使用更严格的IDC标准、服务器准入标准以及运维标准,以保证云计算整个基础框架的高可用性、数据的可靠性以及云服务器的高可用性。每个地域都存在多可用区,当需要更高的可用性时,可以利用云的多可用区搭建自己的主备服务或者双活服务。
- 弹性:大部分云服务商提供的云产品都有一些价钱等级,在技术规格和相关服务层面普遍存在差别。
确认配置后需要支付费用
付款后返回控制台查看创建情况
等待创建完成
5.2 云耀服务器高可用L实例初始化配置
等云耀服务器高可用L实例创建完成,点击进入详细页面
可以看到高可用环境的网络拓扑图
云耀组合服务共包含两台相同规格服务器,云备份CBR,主机安全HSS
6. mysql高可用部署
mysql编译安装可以根据需要设定参数,按照需求进行定制安装,并且安装的版本可以根据项目需要灵活选择,整体可配置弹性大。其中YUM二进制方式部署配置简单,可自动解决软件包之间依赖关系问题,但YUM不能自定义软件模块和功能,不能自定义软件部署路径,增加后期维护成本。此方案提供了一键安装部署脚本,使脚本安装省去繁琐步骤,只需输入变量即可完成安装任务,也可作为资源池机器上架初始化的参考。
6.1 MySQL源码编译安装
6.1.1创建相关目录
# 创建用户
useradd -s /sbin/nologin mysql
# 创建安装目录并进入
cd /usr/local
mkdir mysql
cd mysql
# 创建数据存放目录
mkdir data
6.1.2. 下载依赖库
yum -y install initscripts wget libaio ncurses ncurses-devel bison gcc gcc-c++ openssl openssl-devel
6.1.3. 升级gcc和g++
yum install -y centos-release-scl-rh
yum install -y centos-release-scl
# 安装gcc7
yum install devtoolset-7-gcc.x86_64
yum install devtoolset-7-gcc-c++.x86_64
# 启用
scl enable devtoolset-7 bash
# 查看版本
gcc --version
g++ --version
# 防止失效方法1:修改软连接(推荐)
mv /usr/bin/gcc /usr/bin/gcc4.8.5
ln -s /opt/rh/devtoolset-7/root/usr/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++4.8.5
ln -s /opt/rh/devtoolset-7/root/usr/bin/g++ /usr/bin/g++
mv /usr/bin/cc /usr/bin/cc4.8.5
ln -s /opt/rh/devtoolset-7/root/usr/bin/cc /usr/bin/cc
mv /usr/bin/c++ /usr/bin/c++4.8.5
ln -s /opt/rh/devtoolset-7/root/usr/bin/c++ /usr/bin/c++
# 防止失效方法2:修改环境变量
echo "source /opt/rh/devtoolset-7/enable" >>/etc/profile
6.1.4. 安装最新版cmake
# 安装目录:/opt
cd /opt
# 下载
wget -c https://github.com/Kitware/CMake/releases/download/v3.20.2/cmake-3.20.2.tar.gz
# 解压
tar zxvf cmake-3.20.2.tar.gz
# 进入解压目录
cd cmake-3.20.2
# 构建
./bootstrap
# 编译
gmake
# 安装
gmake install
# 链接 目的是添加到环境变量中
ln -s /opt/bin/cmake /usr/bin/cmake
6.1.5. 下载MySQL源码并解压
cd /usr/local/mysql
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.37.tar.gz
tar -zxvf mysql-boost-5.7.37.tar.gz
6.1.6. 构建、编译、安装
cd /usr/local/mysql/mysql-5.7.37
cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost
make && make install
6.1.7. 更改配置文件
6.1.7.1. 打开配置文件
vim /etc/my.cnf
6.1.7.2. 写入如下内容
注意:将原有内容全部清除
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
pid-file = /usr/local/mysql/data/mysql.pid
socket = /tmp/mysql.sock
log_error = /usr/local/mysql/data/mysql-error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /usr/local/mysql/data/mysql-slow.log
6.1.8. 修改用户权限
cd /usr/local/
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data
6.1.9. 初始化MySQL
cd /usr/local/mysql/bin
./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
6.1.10. 复制相关文件
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysql
6.1.11. 配置环境变量
6.1.11.1. 打开环境变量文件
vim /etc/profile
6.1.11.2. 修改PATH属性,并保存退出
export MYSQL_HOME=/usr/local/mysql/
export PATH=${MYSQL_HOME}/bin:${MYSQL_HOME}/lib:$PATH
6.1.11.3. 使环境变量生效
source /etc/profile
6.1.12. 在vscode中进行构建
按下Ctrl + ,
,选择workspace
,在左侧选择extension
,再选中Cmake
,找到Configuration Args
,添加以下参数:
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/usr/local/mysql/mysql-5.7.37/boost/boost_1_59_0/
随后用vscode
打开文件夹/usr/lcoal/mysql/mysql-5.7.37
,并点击底栏中的⚙build
即可构建
6.1.13. 调试配置
在.vscode
文件夹中创建launch.json
文件,内容如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "MySQL-debug",
"type": "cppdbg",
"request": "launch",
"program": "/usr/local/mysql/bin/mysqld",
"args": ["--user=mysql --datadir=/usr/local/mysql/data"],
"stopAtEntry": true,
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "gdb",
"miDebuggerArgs": "gdb",
"linux": {
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb"
},
"logging": {
"moduleLoad": false,
"engineLogging": false,
"trace": false
},
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"cwd": "${workspaceFolder}",
}
]
}
参考断点位置:
- 文件sql_parser.cc第5438行:SQL语句的处理入口
- 文件item.cc第7522行:数据类型的解析入口
6.1.14. 虚拟机开放端口
14.1. 查看3306端口状态
firewall-cmd --zone=public --query-port=3306/tcp
如果输出no,则需要开放端口
14.2. 开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
14.3. 防火墙重载
firewall-cmd --reload
6.1.15. 修改连接权限
use mysql;
update user set Host='%' where User='root';
flush privileges;
至此,mysql高可用环境搭建完成
7. 总结
本文介绍了华为云云耀服务器L实例的特点和部署方法,包括快速恢复、监控和告警、数据安全、可靠性和弹性等优势。同时也介绍了mysql高可用部署的过程。文章指出,使用云耀服务器L实例可以在云端提供高可用性和高性能的计算服务,快速恢复和告警功能能够及时处理系统故障并保证业务的连续性,数据安全和可靠性让用户不必担忧数据安全和丢失等问题,弹性能够根据业务需求灵活扩展资源。华为云云耀服务器L实例适用于需要高可用性、连续性和共享访问的在线应用、数据分析仓库等场景