【高并发】故障转移

概述

在计算机术语中,故障转移(英语:failover),即当活动的服务或应用意外终止时,快速启用冗余或备用的服务器、系统、硬件或者网络接替它们工作。 故障转移(failover)与交换转移操作基本相同,只是故障转移通常是自动完成的,没有警告提醒手动完成,而交换转移需要手动进行。

DHCP 故障转移

通过 DHCP 故障转移功能,两个 DHCP 服务器可协同工作,共同为客户端提供 IP 地址信息。 这两个 DHCP 服务器复制彼此之间的租用信息。 如果一个 DHCP 服务器出现故障,则另一个 DHCP 服务器将继续使用范围信息向客户端提供 IP 地址。

在故障转移关系中,只能配置两个 DHCP 服务器,并且只能为 IPv4 范围配置这些服务器。

若要配置 DHCP 故障转移,请在两个 DHCP 服务器之间建立故障转移关系,并为该关系指定一个唯一的名称。 故障转移伙伴在配置期间交换此名称。

这使得一个 DHCP 服务器能够与其他 DHCP 服务器建立多个故障转移关系,只要它们都有唯一的名称。

配置 DHCP 故障转移

若要在 DHCP 管理控制台中配置故障转移,请使用“配置故障转移向导”- 通过访问 IPv4 节点或范围节点的上下文菜单来启动该向导。
在这里插入图片描述

DHCP 故障转移对时间很敏感。 如果伙伴之间的时差大于 1 分钟,故障转移过程会因关键错误而停止。

可选择下表中描述的两种模式之一来配置故障转移。

模式 特征
负载均衡 这是默认模式。 在此模式下,两个服务器同时向客户端提供 IP 配置。 哪个服务器响应 IP 配置请求取决于管理员如何配置负载分布比率。 默认比率为 50:50。
热备用服务器 在此模式下,一个服务器是主服务器,另一个是辅助服务器。 主服务器主动为范围或子网分配 IP 配置。 仅当主服务器不可用时,辅助 DHCP 服务器才担任这一角色。 DHCP 服务器可充当一个范围或子网的主服务器,同时充当另一范围或子网的辅助服务器。 热备用服务器模式最适用于灾难恢复站点位于不同位置的部署。 这样一来,DHCP 服务器将不会为客户端提供服务,除非有主服务器中断。

备用模式注意事项

作为管理员,你必须配置分配给备用服务器的范围地址的百分比。 如果主服务器关闭,这些地址在最长客户端提前期 (MCLT) 间隔期间提供。

在这里插入图片描述
默认故障转移配置保留备用服务器范围地址的 5%。 MCLT 间隔过后,辅助服务器将控制整个 IP 范围。

MCLT
配置 MCLT 参数,来指定 DHCP 服务器在伙伴不可用时,承担对地址范围的控制之前应等待的时间。 默认值为 1 小时,并且值不能为零。 如果需要,可使用 Windows PowerShell 调整 MCLT。

自动状态切换间隔

当服务器与其伙伴失去联系时,会出现通信中断状态。 由于服务器无法知道是什么原因导致通信丢失,因此在管理员手动将其更改为“伙伴关闭”状态之前,服务器仍处于此状态。 可配置自动状态切换间隔来实现自动转换到“伙伴关闭”状态。 此间隔的默认值为 60 分钟。

消息验证

通过 Windows Server,可对复制伙伴之间的故障转移消息流量进行身份验证。 管理员可在 DHCP 故障转移的“配置故障转移向导”中建立一个共享机密(类似于密码)。 这会验证故障转移消息是否来自故障转移伙伴。

防火墙注意事项

DHCP 使用 TCP 端口 647 侦听故障转移流量。 DHCP 安装创建以下入站和出站防火墙规则:

  • Microsoft-Windows-DHCP-Failover-TCP-In
  • Microsoft-Windows-DHCP-Failover-TCP-Out

mysql故障转移

主从复制

主从复制是MySQL的一个特性,可以将一个MySQL服务器设置为主服务器,其他服务器设置为从服务器。主服务器将记录的更改发送给从服务器,从服务器将这些更改应用于自己的数据库。当主服务器发生故障时,可以将其中一个从服务器提升为新的主服务器,实现故障转移。

-- 配置主服务器
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_USER='replication_user',
MASTER_PASSWORD='replication_password',
MASTER_LOG_FILE='master_log_file',
MASTER_LOG_POS=master_log_pos;

START SLAVE;

-- 配置从服务器
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_USER='replication_user',
MASTER_PASSWORD='replication_password',
MASTER_LOG_FILE='master_log_file',
MASTER_LOG_POS=master_log_pos;

START SLAVE;

MySQL集群

MySQL集群是由多个MySQL服务器组成的组群,共享同一个数据库。当一个服务器发生故障时,集群中的其他服务器会接管其工作负载,确保数据库的可用性。MySQL集群使用了群集和共享存储技术,可实现高可用性和可伸缩性。

-- 创建集群
CREATE CLUSTER my_cluster;

-- 向集群添加服务器
ADD INSTANCE 'node1' AT 'server1:port';
ADD INSTANCE 'node2' AT 'server2:port';
ADD INSTANCE 'node3' AT 'server3:port';

-- 启动集群
START CLUSTER;

-- 监控集群状态
SHOW CLUSTER STATUS;

数据库代理

数据库代理是一种位于应用程序和数据库之间的中间层,用于管理数据库连接和负载均衡。当一个数据库服务器发生故障时,数据库代理可以自动将连接转发到另一个可用的服务器,实现故障转移。

-- 配置数据库代理
SET PROXY mysql_proxy_address;

-- 监控数据库代理状态
SHOW PROXY STATUS;

Oracle故障转移

数据库备份和恢复

数据库备份和恢复是实现高可用性和故障转移的基础。通过定期备份数据库,可以在发生故障时快速恢复数据。Oracle数据库提供了多种备份和恢复工具,如RMAN(Recovery Manager)和Data Pump。以下是备份和恢复的主要步骤:

数据库备份

数据库备份是将数据库的数据和日志文件复制到一个安全的位置,以便在发生故障时进行恢复。可以使用RMAN工具执行全量备份、增量备份或归档日志备份。以下是一个备份数据库的示例代码:

RMAN> BACKUP DATABASE;

数据库恢复

数据库恢复是将备份的数据和日志文件应用到数据库中,以恢复到故障发生前的状态。可以使用RMAN工具执行完全恢复或不完全恢复。以下是一个恢复数据库的示例代码:

RMAN> RECOVER DATABASE;

Oracle Data Guard

Oracle Data Guard是一种提供数据库级别的高可用性和故障转移解决方案。它通过将主数据库的数据同步到一个或多个辅助数据库来实现故障转移。以下是使用Oracle Data Guard实现高可用性和故障转移的主要步骤:

配置主数据库

在主数据库上启用归档日志模式,并将归档日志传输到辅助数据库。以下是启用归档日志模式的示例代码:

SQL> ALTER DATABASE ARCHIVELOG;

配置辅助数据库

在辅助数据库上创建一个物理备份,并将其恢复到与主数据库相同的状态。然后,将辅助数据库设置为物理备用数据库。以下是创建辅助数据库的示例代码:

RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE;

启动Data Guard

启动Data Guard以将主数据库的变更传输到辅助数据库。可以使用Data Guard Broker或命令行工具来管理Data Guard配置。以下是启动Data Guard的示例代码:

DGMGRL> START OBSERVER; DGMGRL> START CONFIGURATION;

Oracle Real Application Clusters (RAC)

Oracle RAC是一种提供服务器级别的高可用性和故障转移解决方案。它通过在多个服务器上运行数据库实例来实现故障转移。以下是使用Oracle RAC实现高可用性和故障转移的主要步骤:

配置共享存储

配置共享存储以便多个服务器可以访问相同的数据库文件。可以使用共享存储技术如ASM(Automatic Storage Management)或NFS(Network File System)。以下是配置共享存储的示例代码:

SQL> CREATE DISKGROUP data EXTERNAL REDUNDANCY DISK '/dev/sdb1';

安装Oracle Grid Infrastructure

安装Oracle Grid Infrastructure以管理集群环境。Grid Infrastructure包括Clusterware和ASM组件。以下是安装Grid Infrastructure的示例代码:

$ ./runInstaller -silent -responseFile /path/to/response/file

创建RAC数据库

在每个服务器上创建一个数据库实例,并将它们配置为RAC集群的一部分。以下是创建RAC数据库的示例代码:

SQL> CREATE DATABASE racdb

    MAXINSTANCES 4

    MAXLOGHISTORY 100

    MAXLOGFILES 16

    MAXLOGMEMBERS 3

    MAXDATAFILES 100

    DATAFILE '/shared/data/racdb/system01.dbf' SIZE 100M

    SYSAUX DATAFILE '/shared/data/racdb/sysaux01.dbf' SIZE 100M

    DEFAULT TEMPORARY TABLESPACE temp TEMPFILE '/shared/data/racdb/temp01.dbf' SIZE 100M;

来源

实现 DHCP 故障转移
mysql故障转移 原创
Oracle高可用性和故障转移的方法

猜你喜欢

转载自blog.csdn.net/weixin_44231544/article/details/134263200
今日推荐