1. 首页 > 国产数据库教程 > GoldenDB教程 > 正文

GoldenDB教程FG020-GoldenDB高可用架构

内容简介

本教程详细介绍GoldenDB数据库的高可用架构设计,帮助读者了解如何构建高可用的数据库系统。风哥教程参考GoldenDB官方文档高可用架构相关内容。

学习交流加群风哥微信: itpux-com

目录大纲

Part01-基础概念与理论知识

1.1 高可用架构概述

高可用架构是指通过冗余设计和故障转移机制,确保系统在部分组件故障时仍能持续提供服务的架构设计。GoldenDB的高可用架构通过多节点部署、数据复制和自动故障转移等技术,实现了99.99%以上的可用性。

更多视频教程www.fgedu.net.cn

1.2 高可用架构模式

GoldenDB支持的高可用架构模式包括:

  • 主从复制模式:一主多从,主节点处理写操作,从节点处理读操作
  • 多主复制模式:多个主节点,每个主节点都可以处理读写操作
  • 集群模式:多个节点组成集群,通过分片实现数据分布和负载均衡
  • 异地多活模式:在不同地域部署多个数据中心,实现异地容灾

1.3 高可用指标

衡量高可用性的关键指标:

  • 可用性(Availability):系统正常运行时间的百分比,通常要求达到99.99%或更高
  • RTO(Recovery Time Objective):恢复时间目标,指系统故障后恢复服务所需的时间
  • RPO(Recovery Point Objective):恢复点目标,指系统故障后可能丢失的数据量
  • MTBF(Mean Time Between Failures):平均故障间隔时间
  • MTTR(Mean Time To Repair):平均修复时间

风哥提示:高可用架构是保障业务连续性的关键,需要根据业务需求选择合适的高可用模式。

Part02-高可用架构设计

2.1 主从复制架构

主从复制架构的设计:

# 配置主从复制架构

# 1. 配置主节点

vi /goldendb/app/my.cnf

[mysqld]

server-id = 1

log-bin = /goldendb/fgdata/binlog/binlog

binlog-format = ROW

sync-binlog = 1

gtid-mode = ON

enforce-gtid-consistency = ON

# 2. 配置从节点

vi /goldendb/app/my.cnf

[mysqld]

server-id = 2

relay-log = /goldendb/fgdata/relaylog/relaylog

read-only = ON

gtid-mode = ON

enforce-gtid-consistency = ON

# 3. 启动复制

/goldendb/app/bin/goldendb-cli change master to \

master_host=’192.168.1.10′, \

master_port=3306, \

master_user=’repl’, \

master_password=’repl@123′, \

master_auto_position=1;

/goldendb/app/bin/goldendb-cli start slave;

2.2 多主复制架构

多主复制架构的设计:

# 配置多主复制架构

# 1. 配置主节点1

vi /goldendb/app/my.cnf

[mysqld]

server-id = 1

log-bin = /goldendb/fgdata/binlog/binlog

binlog-format = ROW

sync-binlog = 1

gtid-mode = ON

enforce-gtid-consistency = ON

log-slave-updates = ON

# 2. 配置主节点2

vi /goldendb/app/my.cnf

[mysqld]

server-id = 2

log-bin = /goldendb/fgdata/binlog/binlog

binlog-format = ROW

sync-binlog = 1

gtid-mode = ON

enforce-gtid-consistency = ON

log-slave-updates = ON

# 3. 配置双向复制

# 在主节点1上

/goldendb/app/bin/goldendb-cli change master to \

master_host=’192.168.1.11′, \

master_port=3306, \

master_user=’repl’, \

master_password=’repl@123′, \

master_auto_position=1;

/goldendb/app/bin/goldendb-cli start slave;

# 在主节点2上

/goldendb/app/bin/goldendb-cli change master to \

master_host=’192.168.1.10′, \

master_port=3306, \

master_user=’repl’, \

master_password=’repl@123′, \

master_auto_position=1;

/goldendb/app/bin/goldendb-cli start slave;

2.3 集群架构

集群架构的设计:

# 配置集群架构

# 1. 配置集群节点

vi /goldendb/app/conf/cluster.conf

[cluster]

name = fgedu_ha_cluster

node_count = 5

[node1]

host = 192.168.1.10

port = 3306

role = master

[node2]

host = 192.168.1.11

port = 3306

role = slave

[node3]

host = 192.168.1.12

port = 3306

role = slave

[node4]

host = 192.168.1.13

port = 3306

role = slave

[node5]

host = 192.168.1.14

port = 3306

role = arbiter

# 2. 启动集群

/goldendb/app/bin/goldendb-cli cluster start

学习交流加群风哥QQ113257174

Part03-故障转移机制

3.1 自动故障检测

自动故障检测的配置:

# 配置故障检测

vi /goldendb/app/conf/ha.conf

[ha]

enabled = true

check_interval = 5

timeout = 10

failure_threshold = 3

[detector]

type = heartbeat

interval = 2

timeout = 5

# 查看故障检测状态

/goldendb/app/bin/goldendb-cli ha status

HA Status: enabled

Detector: heartbeat

Check Interval: 5s

Timeout: 10s

Failure Threshold: 3

3.2 自动故障转移

自动故障转移的配置:

# 配置自动故障转移

vi /goldendb/app/conf/ha.conf

[failover]

auto_failover = true

failover_timeout = 30

priority = 1

[recovery]

auto_rejoin = true

rejoin_timeout = 300

# 查看故障转移状态

/goldendb/app/bin/goldendb-cli failover status

Failover Status: enabled

Auto Failover: true

Failover Timeout: 30s

Current Master: 192.168.1.10:3306

3.3 手动故障转移

手动故障转移的操作:

# 手动故障转移

# 1. 检查当前主节点

/goldendb/app/bin/goldendb-cli cluster status

Cluster: fgedu_ha_cluster

Status: running

Nodes:

192.168.1.10:3306 [master] – online

192.168.1.11:3306 [slave] – online

192.168.1.12:3306 [slave] – online

# 2. 执行手动故障转移

/goldendb/app/bin/goldendb-cli failover to 192.168.1.11:3306

Initiating failover to 192.168.1.11:3306…

Stopping current master…

Promoting 192.168.1.11:3306 to master…

Reconfiguring slaves…

Failover completed successfully.

# 3. 验证故障转移结果

/goldendb/app/bin/goldendb-cli cluster status

Cluster: fgedu_ha_cluster

Status: running

Nodes:

192.168.1.10:3306 [slave] – online

192.168.1.11:3306 [master] – online

192.168.1.12:3306 [slave] – online

更多学习教程公众号风哥教程itpux_com

Part04-生产案例与实战讲解

4.1 高可用架构部署实战

高可用架构部署的实战操作:

# 部署高可用架构

#!/bin/bash

# deploy_ha.sh

# from:www.itpux.com.qq113257174.wx:itpux-com

# web: `http://www.fgedu.net.cn`

# 1. 部署主节点

echo “Deploying master node…”

ssh 192.168.1.10 “cd /goldendb && ./install.sh && ./configure_master.sh”

# 2. 部署从节点

echo “Deploying slave nodes…”

ssh 192.168.1.11 “cd /goldendb && ./install.sh && ./configure_slave.sh –master=192.168.1.10”

ssh 192.168.1.12 “cd /goldendb && ./install.sh && ./configure_slave.sh –master=192.168.1.10”

# 3. 配置高可用

echo “Configuring HA…”

./configure_ha.sh –nodes=192.168.1.10,192.168.1.11,192.168.1.12

# 4. 验证部署

echo “Verifying deployment…”

/goldendb/app/bin/goldendb-cli cluster status

4.2 故障转移演练实战

故障转移演练的实战操作:

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息