flash网站的优缺点,wordpress.org移除,个人网站免费空间,一个完整的工程项目流程1. 架构 PolarDB-X 采用 Shared-nothing 与存储计算分离架构进行设计#xff0c;系统由4个核心组件组成。
计算节点#xff08;CN, Compute Node#xff09;
计算节点是系统的入口#xff0c;采用无状态设计#xff0c;包括 SQL 解析器、优化器、执行器等模块。负责数据…1. 架构 PolarDB-X 采用 Shared-nothing 与存储计算分离架构进行设计系统由4个核心组件组成。
计算节点CN, Compute Node
计算节点是系统的入口采用无状态设计包括 SQL 解析器、优化器、执行器等模块。负责数据分布式路由、计算及动态调度负责分布式事务 2PC 协调、全局二级索引维护等同时提供 SQL 限流、三权分立等企业级特性。
存储节点DN, Data Node
存储节点负责数据的持久化基于多数派 Paxos 协议提供数据高可靠、强一致保障同时通过 MVCC 维护分布式事务可见性。
元数据服务GMS, Global Meta Service
元数据服务负责维护全局强一致的 Table/Schema, Statistics 等系统 Meta 信息维护账号、权限等安全信息同时提供全局授时服务即 TSO。
日志节点CDC, Change Data Capture
日志节点提供完全兼容 MySQL Binlog 格式和协议的增量订阅能力提供兼容 MySQL Replication 协议的主从复制能力。
2. 安装
2.1. 环境规划 操作系统 ip 主机名 华为欧拉Euler 192.168.50.56 db01 Leader 华为欧拉Euler 192.168.50.57 db02 Follower 华为欧拉Euler 192.168.50.58 db03 Follower
2.2. RPM 包下载
官方下载地址Releases · polardb/polardbx-engine · GitHub
百度网盘
通过网盘分享的文件t-polardbx-engine-8.4.19-20241112.el7.x86_64.rpm
链接: 百度网盘 请输入提取码 提取码: vbdi
[rootdb01 opt]# ls -lst t*
651356 -rw-r--r-- 1 root root 666980944 2月 5 14:55 t-polardbx-engine-8.4.19-20241112.el7.x86_64.rpm
[rootdb01 opt]#
2.3. RPM 包安装root 用户,三个节点执行
2.3.1. yum 配置root 用户,三个节点执行
mount /dev/cdrom /mnt
cd /etc/yum.repos.d
mkdir bk
mv *.repo bk/
echo [EL] /etc/yum.repos.d/hefei.repo
echo name Linux 7.x DVD /etc/yum.repos.d/hefei.repo
echo baseurlfile:///mnt /etc/yum.repos.d/hefei.repo
echo gpgcheck0 /etc/yum.repos.d/hefei.repo
echo enabled1 /etc/yum.repos.d/hefei.repo
cat /etc/yum.repos.d/hefei.repo
2.3.2. 执行安装root 用户,三个节点执行
[rootdb01 opt]# yum install -y t-polardbx-engine-8.4.19-20241112.el7.x86_64.rpm
无法连接BC-Linux的YUM源服务器。
上次元数据过期检查0:01:30 前执行于 2025年02月05日 星期三 14时59分33秒。
依赖关系解决。
Package Architecture Version Repository Size安装:t-polardbx-engine x86_64 8.4.19-20241112.el7 commandline 636 M事务概要安装 1 软件包总计636 M
安装大小2.8 G
下载软件包
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务准备中 : 1/1运行脚本: t-polardbx-engine-8.4.19-20241112.el7.x86_64 1/1安装 : t-polardbx-engine-8.4.19-20241112.el7.x86_64 1/1运行脚本: t-polardbx-engine-8.4.19-20241112.el7.x86_64 1/1
Copying /u01/xcluster80_20241112_current to /u01/xcluster80
Copying /u01/xcluster80_20241112_current to /u01/xcluster80_20241112验证 : t-polardbx-engine-8.4.19-20241112.el7.x86_64 1/1已安装:t-polardbx-engine-8.4.19-20241112.el7.x86_64完毕
[rootdb01 opt]#
2.3.3. 启动 DNroot 用户,三个节点执行注意server_id 不能一样
# 创建并切换到 polarx 用户
useradd -ms /bin/bash polarx
echo polarx:polardb2025 | chpasswd
echo polarx ALL(ALL) NOPASSWD: ALL /etc/sudoers
su - polarx# 创建必要目录
mkdir polardbx-engine
cd polardbx-engine mkdir log mysql run data tmp# 准备一份 my.cnf 文件可以参考末尾的模板放置于当前目录
vi my.cnf###### my.cnf 模板
[mysqld]
basedir /opt/polardbx_engine
log_error_verbosity 2
default_authentication_plugin mysql_native_password
gtid_mode ON
enforce_gtid_consistency ON
log_bin mysql-binlog
binlog_format row
binlog_row_image FULL
master_info_repository TABLE
relay_log_info_repository TABLE
# 忽略大小写
lower_case_table_names1# change me if needed
datadir /home/polarx/polardbx-engine/data
tmpdir /home/polarx/polardbx-engine/tmp
socket /home/polarx/polardbx-engine/tmp.mysql.sock
log_error /home/polarx/polardbx-engine/log/alert.log
port 4886
cluster_id 1234
cluster_info 127.0.0.1:148861
server_id 2712347955[mysqld_safe]
pid_file /home/polarx/polardbx-engine/run/mysql.pid
###### my.cnf 模板注意如果以三副本模式运行my.cnf 中的 server_id 参数在三个副本节点需要配置为不同的值---单节点执行这里是集群不执行下面只是记录
----# 初始化如果 my.cnf 不在当前目录请将下述命令的 my.cnf 改成绝对路径
----/opt/polardbx_engine/bin/mysqld --defaults-filemy.cnf --initialize-insecure----# 启动
---/opt/polardbx_engine/bin/mysqld_safe --defaults-filemy.cnf
2.4. 高可用部署
在 3 台机器上按前述步骤安装 RPM 后准备好 my.cnf 和目录 如果有任何步骤失败请完全清理 log mysql run data tmp 等目录重新创建。。 然后在 3 个机器上分别按如下方式启动
su - polarx
cd polardbx-engine# 192.168.50.56 上执行
/opt/polardbx_engine/bin/mysqld --defaults-filemy.cnf \
--cluster-info192.168.50.56:14886;192.168.50.57:14886;192.168.50.58:148861 \
--initialize-insecure/opt/polardbx_engine/bin/mysqld_safe --defaults-filemy.cnf \
--cluster-info192.168.50.56:14886;192.168.50.57:14886;192.168.50.58:148861 \
# 192.168.50.57 上执行
/opt/polardbx_engine/bin/mysqld --defaults-filemy.cnf \
--cluster-info192.168.50.56:14886;192.168.50.57:14886;192.168.50.58:148862 \
--initialize-insecure/opt/polardbx_engine/bin/mysqld_safe --defaults-filemy.cnf \
--cluster-info192.168.50.56:14886;192.168.50.57:14886;192.168.50.58:148862 \
# 192.168.50.58 上执行
/opt/polardbx_engine/bin/mysqld --defaults-filemy.cnf \
--cluster-info192.168.50.56:14886;192.168.50.57:14886;192.168.50.58:148863 \
--initialize-insecure/opt/polardbx_engine/bin/mysqld_safe --defaults-filemy.cnf \
--cluster-info192.168.50.56:14886;192.168.50.57:14886;192.168.50.58:148863 \稍等片刻即可登录数据库。如果直接使用本文的 my.cnf 模板可以用mysql -h127.0.0.1 -P4886 -uroot 登录数据库。 需要预先在机器上安装 mysql 客户端centos 系统可以使用 yum install -y mariadb安装。
[rootdb01 ~]# mysql -h127.0.0.1 -P4886 -uroot
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.0.32-X-Cluster-8.4.19-20241112 Source distributionCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type help; or \h for help. Type \c to clear the current input statement.MySQL [(none)]
数据库启动完成后我们登录数据库验证一下集群的状态。需要在 Leader 节点执行
MySQL [(none)] SELECT * FROM INFORMATION_SCHEMA.ALISQL_CLUSTER_GLOBAL;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SERVER_ID | IP_PORT | MATCH_INDEX | NEXT_INDEX | ROLE | HAS_VOTED | FORCE_SYNC | ELECTION_WEIGHT | LEARNER_SOURCE | APPLIED_INDEX | PIPELINING | SEND_APPLIED |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 1 | 192.168.50.56:14886 | 2 | 0 | Leader | Yes | No | 5 | 0 | 1 | No | No |
| 2 | 192.168.50.57:14886 | 2 | 3 | Follower | Yes | No | 5 | 0 | 2 | Yes | No |
| 3 | 192.168.50.58:14886 | 2 | 3 | Follower | Yes | No | 5 | 0 | 2 | Yes | No |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
3 rows in set (0.001 sec)MySQL [(none)]
MySQL [(none)] SELECT * FROM INFORMATION_SCHEMA.ALISQL_CLUSTER_LOCAL \G
*************************** 1. row ***************************SERVER_ID: 1CURRENT_TERM: 127CURRENT_LEADER: 192.168.50.56:14886COMMIT_INDEX: 2LAST_LOG_TERM: 127LAST_LOG_INDEX: 2ROLE: LeaderVOTED_FOR: 1LAST_APPLY_INDEX: 1
SERVER_READY_FOR_RW: YesINSTANCE_TYPE: Normal
1 row in set (0.001 sec)
2.4.1. 指定IP切换Leader
call dbms_consensus.change_leader(192.168.50.57:14886);MySQL [(none)] SELECT * FROM INFORMATION_SCHEMA.ALISQL_CLUSTER_GLOBAL;
ERROR 2013 (HY000): Lost connection to MySQL server during query --- 需要在 Leader 节点执行
MySQL [(none)]--Leader 节点执行 192.168.50.57上执行
MySQL [(none)] SELECT * FROM INFORMATION_SCHEMA.ALISQL_CLUSTER_GLOBAL;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 21
Current database: *** NONE ***--------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SERVER_ID | IP_PORT | MATCH_INDEX | NEXT_INDEX | ROLE | HAS_VOTED | FORCE_SYNC | ELECTION_WEIGHT | LEARNER_SOURCE | APPLIED_INDEX | PIPELINING | SEND_APPLIED |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 1 | 192.168.50.56:14886 | 3 | 4 | Follower | Yes | No | 5 | 0 | 3 | Yes | No |
| 2 | 192.168.50.57:14886 | 3 | 0 | Leader | Yes | No | 5 | 0 | 2 | No | No |
| 3 | 192.168.50.58:14886 | 3 | 4 | Follower | Yes | No | 5 | 0 | 3 | Yes | No |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
3 rows in set (0.003 sec)MySQL [(none)]
2.5. 数据库操作
2.5.1. 数据插入测试
CREATE DATABASE db1;
USE db1;
CREATE TABLE tb1 (id int);
INSERT INTO tb1 VALUES (0), (1), (2);MySQL [db1] select * from tb1;
------
| id |
------
| 0 |
| 1 |
| 2 |
------
3 rows in set (0.001 sec)
2.5.2. 修改数据库的密码 alter user rootlocalhost identified by 123456;[rootdb01 ~]# mysql -h127.0.0.1 -P4886 -uroot
ERROR 1045 (28000): Access denied for user rootlocalhost (using password: NO)[rootdb01 ~]# mysql -h127.0.0.1 -P4886 -uroot -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 23
Server version: 8.0.32-X-Cluster-8.4.19-20241112 Source distributionCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type help; or \h for help. Type \c to clear the current input statement.MySQL [(none)]
安装的虚拟机
百度网盘 请输入提取码 提取码: grgi