GoldenGate教程FG018-集群主从架构
本文档详细介绍Oracle GoldenGate的集群主从架构,风哥教程参考GoldenGate官方文档集群相关内容,适合数据库管理员和技术人员学习和参考。更多视频教程www.fgedu.net.cn
Part01-基础概念与理论知识
1.1 集群概念
集群是指由多个服务器组成的系统,这些服务器协同工作,提供高可用性、可扩展性和负载均衡。集群的主要特点包括:
- 高可用性:当一个节点故障时,其他节点可以接管工作
- 可扩展性:可以通过添加节点来扩展系统容量
- 负载均衡:将工作负载分布到多个节点上
- 资源共享:共享存储和其他资源
- 故障恢复:自动检测和恢复故障
1.2 主从架构
主从架构是一种常见的集群架构,其中一个节点作为主节点(Master),负责处理所有的写入操作,其他节点作为从节点(Slave),复制主节点的数据。主从架构的主要特点包括:
## 1. 主节点
– 处理所有写入操作
– 维护数据的一致性
– 向从节点复制数据
– 作为系统的主要入口点
## 2. 从节点
– 复制主节点的数据
– 处理读取操作
– 作为主节点的备份
– 在主节点故障时接管工作
## 3. 数据复制
– 主节点将数据变更发送到从节点
– 从节点应用这些变更
– 确保数据的一致性
– 支持实时或近实时复制
## 4. 故障转移
– 当主节点故障时,从节点可以提升为主节点
– 确保系统的可用性
– 最小化服务中断时间
1.3 集群主从架构优势
GoldenGate集群主从架构的优势包括:
- 高可用性:当主节点故障时,从节点可以接管工作,确保系统的连续运行
- 负载均衡:可以将读取操作分布到多个从节点上,提高系统的整体性能
- 数据安全:数据在多个节点上有备份,提高数据的安全性
- 可扩展性:可以通过添加从节点来扩展系统的读取能力
- 灾难恢复:当主节点发生灾难时,可以快速切换到从节点
学习交流加群风哥微信: itpux-com
Part02-生产环境规划与建议
2.1 集群规划
制定GoldenGate集群主从架构规划时,需要考虑以下因素:
## 1. 节点数量
– 主节点:通常1个
– 从节点:根据业务需求确定,一般2-5个
– 考虑系统的可用性和性能需求
## 2. 硬件配置
– 主节点:高性能服务器,足够的CPU和内存
– 从节点:与主节点相当或略低的配置
– 存储:共享存储或独立存储
## 3. 网络配置
– 高速网络连接
– 网络冗余
– 低延迟
## 4. 存储配置
– 共享存储:使用SAN或NAS
– 独立存储:每个节点有自己的存储
– 数据备份策略
## 5. 软件配置
– Oracle Database版本
– GoldenGate版本
– 集群软件(如Oracle RAC)
2.2 架构设计
GoldenGate集群主从架构的设计包括:
- 主节点设计:配置为主数据库,处理所有写入操作
- 从节点设计:配置为从数据库,复制主节点的数据
- GoldenGate配置:配置Extract进程在主节点捕获数据,Replicat进程在从节点应用数据
- 故障转移设计:设计自动或手动故障转移机制
- 监控设计:建立完善的监控体系,及时发现和处理故障
2.3 集群建议
GoldenGate集群主从架构的建议:
## 1. 硬件建议
– 使用高性能服务器作为主节点
– 确保从节点的硬件配置足以处理复制和读取操作
– 使用高速存储设备,如SSD
## 2. 网络建议
– 使用万兆网络连接节点
– 配置网络冗余,确保网络连接的可靠性
– 优化网络配置,减少网络延迟
## 3. 软件建议
– 使用最新版本的Oracle Database和GoldenGate
– 配置Oracle RAC或其他集群软件
– 优化数据库参数和GoldenGate配置
## 4. 监控建议
– 监控主节点和从节点的状态
– 监控GoldenGate进程的状态
– 监控数据同步延迟
– 配置告警机制,及时发现和处理问题
## 5. 维护建议
– 定期备份主节点和从节点的数据
– 定期更新软件版本和补丁
– 定期测试故障转移机制
– 制定完善的维护计划
from GoldenGate视频:www.itpux.com
Part03-生产环境项目实施方案
3.1 集群搭建
集群搭建是实现GoldenGate集群主从架构的基础。以下是具体的实施方案:
## 1. 准备服务器
### 1.1 服务器配置
– 主节点:fgedu01 (Oracle Linux 8.5, 8核CPU, 16GB内存)
– 从节点1:fgedu02 (Oracle Linux 8.5, 8核CPU, 16GB内存)
– 从节点2:fgedu03 (Oracle Linux 8.5, 8核CPU, 16GB内存)
### 1.2 网络配置
$ vi /etc/hosts
192.168.1.10 fgedu01
192.168.1.20 fgedu02
192.168.1.30 fgedu03
## 2. 安装Oracle Database
### 2.1 在主节点安装Oracle Database
$ ./runInstaller
### 2.2 在从节点安装Oracle Database
$ ./runInstaller
## 3. 配置主数据库
### 3.1 创建主数据库
$ dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname fgedudb \
-sid fgedudb \
-sysPassword fgedu123 \
-systemPassword fgedu123 \
-datafileDestination /GoldenGate/fgdata \
-storageType ASM \
-asmSysPassword fgedu123 \
-characterSet AL32UTF8 \
-nationalCharacterSet AL16UTF16 \
-listenPort 1521 \
-emConfiguration NONE
### 3.2 启用归档模式
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
### 3.3 启用强制日志
SQL> ALTER DATABASE FORCE LOGGING;
### 3.4 配置 supplemental logging
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
## 4. 配置从数据库
### 4.1 创建从数据库
$ dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname fgedudb \
-sid fgedudb \
-sysPassword fgedu123 \
-systemPassword fgedu123 \
-datafileDestination /GoldenGate/fgdata \
-storageType ASM \
-asmSysPassword fgedu123 \
-characterSet AL32UTF8 \
-nationalCharacterSet AL16UTF16 \
-listenPort 1521 \
-emConfiguration NONE
### 4.2 启用归档模式
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
3.2 GoldenGate配置
GoldenGate配置是实现集群主从架构的关键。以下是具体的实施方案:
## 1. 安装GoldenGate
### 1.1 在主节点安装GoldenGate
$ ./ggs_Linux_x64_21.3.0.0.0_shiphome.bin
### 1.2 在从节点安装GoldenGate
$ ./ggs_Linux_x64_21.3.0.0.0_shiphome.bin
## 2. 配置主节点GoldenGate
### 2.1 配置Manager进程
GGSCI> edit param mgr
PORT 7809
DYNAMICPORTLIST 7810-7900
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 3
PURGEOLDEXTRACTS /GoldenGate/fgdata/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 7
GGSCI> start mgr
### 2.2 配置Extract进程
GGSCI> edit param EXT_MASTER
EXTRACT EXT_MASTER
USERID fgedu, PASSWORD fgedu123
EXTTRAIL /GoldenGate/fgdata/dirdat/em
TABLE fgedu.*;
GGSCI> add extract EXT_MASTER, sourceistable
GGSCI> add exttrail /GoldenGate/fgdata/dirdat/em, extract EXT_MASTER
GGSCI> start EXT_MASTER
### 2.3 配置Data Pump进程(到从节点1)
GGSCI> edit param DP_SLAVE1
EXTRACT DP_SLAVE1
PASSTHRU
RMTHOST fgedu02, MGRPORT 7809
RMTTRAIL /GoldenGate/fgdata/dirdat/s1
TABLE fgedu.*;
GGSCI> add extract DP_SLAVE1, exttrailsource /GoldenGate/fgdata/dirdat/em
GGSCI> add rmttrail /GoldenGate/fgdata/dirdat/s1, extract DP_SLAVE1
GGSCI> start DP_SLAVE1
### 2.4 配置Data Pump进程(到从节点2)
GGSCI> edit param DP_SLAVE2
EXTRACT DP_SLAVE2
PASSTHRU
RMTHOST fgedu03, MGRPORT 7809
RMTTRAIL /GoldenGate/fgdata/dirdat/s2
TABLE fgedu.*;
GGSCI> add extract DP_SLAVE2, exttrailsource /GoldenGate/fgdata/dirdat/em
GGSCI> add rmttrail /GoldenGate/fgdata/dirdat/s2, extract DP_SLAVE2
GGSCI> start DP_SLAVE2
## 3. 配置从节点1 GoldenGate
### 3.1 配置Manager进程
GGSCI> edit param mgr
PORT 7809
DYNAMICPORTLIST 7810-7900
AUTOSTART REPLICAT *
AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 3
PURGEOLDEXTRACTS /GoldenGate/fgdata/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 7
GGSCI> start mgr
### 3.2 配置Replicat进程
GGSCI> edit param REP_SLAVE1
REPLICAT REP_SLAVE1
USERID fgedu, PASSWORD fgedu123
ASSUMETARGETDEFS
MAP fgedu.*, TARGET fgedu.*;
GGSCI> add replicat REP_SLAVE1, exttrail /GoldenGate/fgdata/dirdat/s1, checkpointtable fgedu.gg_checkpoint
GGSCI> start REP_SLAVE1
## 4. 配置从节点2 GoldenGate
### 4.1 配置Manager进程
GGSCI> edit param mgr
PORT 7809
DYNAMICPORTLIST 7810-7900
AUTOSTART REPLICAT *
AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 3
PURGEOLDEXTRACTS /GoldenGate/fgdata/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 7
GGSCI> start mgr
### 4.2 配置Replicat进程
GGSCI> edit param REP_SLAVE2
REPLICAT REP_SLAVE2
USERID fgedu, PASSWORD fgedu123
ASSUMETARGETDEFS
MAP fgedu.*, TARGET fgedu.*;
GGSCI> add replicat REP_SLAVE2, exttrail /GoldenGate/fgdata/dirdat/s2, checkpointtable fgedu.gg_checkpoint
GGSCI> start REP_SLAVE2
3.3 故障转移配置
故障转移配置是确保集群高可用性的重要组成部分。以下是具体的实施方案:
## 1. 手动故障转移
### 1.1 监控主节点状态
$ ping fgedu01
$ sqlplus / as sysdba
SQL> SELECT status FROM v$instance;
### 1.2 当主节点故障时,提升从节点为主节点
#### 1.2.1 在从节点1上停止Replicat进程
GGSCI> stop REP_SLAVE1
#### 1.2.2 在从节点1上配置Extract进程
GGSCI> edit param EXT_NEW_MASTER
EXTRACT EXT_NEW_MASTER
USERID fgedu, PASSWORD fgedu123
EXTTRAIL /GoldenGate/fgdata/dirdat/nm
TABLE fgedu.*;
GGSCI> add extract EXT_NEW_MASTER, sourceistable
GGSCI> add exttrail /GoldenGate/fgdata/dirdat/nm, extract EXT_NEW_MASTER
GGSCI> start EXT_NEW_MASTER
#### 1.2.3 在从节点1上配置Data Pump进程
GGSCI> edit param DP_NEW_SLAVE
EXTRACT DP_NEW_SLAVE
PASSTHRU
RMTHOST fgedu03, MGRPORT 7809
RMTTRAIL /GoldenGate/fgdata/dirdat/ns
TABLE fgedu.*;
GGSCI> add extract DP_NEW_SLAVE, exttrailsource /GoldenGate/fgdata/dirdat/nm
GGSCI> add rmttrail /GoldenGate/fgdata/dirdat/ns, extract DP_NEW_SLAVE
GGSCI> start DP_NEW_SLAVE
#### 1.2.4 在从节点2上重新配置Replicat进程
GGSCI> stop REP_SLAVE2
GGSCI> delete replicat REP_SLAVE2
GGSCI> add replicat REP_NEW_SLAVE, exttrail /GoldenGate/fgdata/dirdat/ns, checkpointtable fgedu.gg_checkpoint
GGSCI> start REP_NEW_SLAVE
## 2. 自动故障转移
### 2.1 安装和配置Oracle Clusterware
$ ./runInstaller
### 2.2 配置资源
$ srvctl add database -d fgedudb -o /u01/app/oracle/product/19.3.0/dbhome_1
$ srvctl add service -d fgedudb -s fgedudb_svc -r fgedu01 -a fgedu02, fgedu03
### 2.3 配置GoldenGate资源
$ srvctl add resource -t cluster_resource -g ora.fgedudb.db -n fgedu01 -d /GoldenGate/app
### 2.4 测试自动故障转移
$ srvctl stop database -d fgedudb -i fgedu01
$ srvctl status database -d fgedudb
Part04-生产案例与实战讲解
4.1 集群搭建案例
以下是集群搭建的实战案例:
## 环境信息
主节点:fgedu01 (Oracle Linux 8.5, 8核CPU, 16GB内存)
从节点1:fgedu02 (Oracle Linux 8.5, 8核CPU, 16GB内存)
从节点2:fgedu03 (Oracle Linux 8.5, 8核CPU, 16GB内存)
Oracle Database:19c
GoldenGate版本:21.3.0.0.0
## 搭建步骤
### 1. 准备服务器
$ vi /etc/hosts
192.168.1.10 fgedu01
192.168.1.20 fgedu02
192.168.1.30 fgedu03
### 2. 安装Oracle Database
#### 2.1 在主节点安装
$ ./runInstaller
#### 2.2 在从节点安装
$ ./runInstaller
### 3. 配置主数据库
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
SQL> ALTER DATABASE FORCE LOGGING;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
### 4. 配置从数据库
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
### 5. 安装GoldenGate
#### 5.1 在主节点安装
$ ./ggs_Linux_x64_21.3.0.0.0_shiphome.bin
#### 5.2 在从节点安装
$ ./ggs_Linux_x64_21.3.0.0.0_shiphome.bin
### 6. 验证搭建
$ srvctl status database -d fgedudb
Database is running on nodes: fgedu01, fgedu02, fgedu03
### 7. 搭建结果
– 集群已搭建完成
– 主节点和从节点均已配置
– GoldenGate已安装
4.2 GoldenGate集群配置案例
以下是GoldenGate集群配置的实战案例:
## 环境信息
主节点:fgedu01
从节点1:fgedu02
从节点2:fgedu03
GoldenGate版本:21.3.0.0.0
## 配置步骤
### 1. 配置主节点
#### 1.1 启动Manager进程
GGSCI> start mgr
Manager started.
#### 1.2 配置Extract进程
GGSCI> edit param EXT_MASTER
EXTRACT EXT_MASTER
USERID fgedu, PASSWORD fgedu123
EXTTRAIL /GoldenGate/fgdata/dirdat/em
TABLE fgedu.*;
GGSCI> add extract EXT_MASTER, sourceistable
GGSCI> add exttrail /GoldenGate/fgdata/dirdat/em, extract EXT_MASTER
GGSCI> start EXT_MASTER
#### 1.3 配置Data Pump进程
GGSCI> edit param DP_SLAVE1
EXTRACT DP_SLAVE1
PASSTHRU
RMTHOST fgedu02, MGRPORT 7809
RMTTRAIL /GoldenGate/fgdata/dirdat/s1
TABLE fgedu.*;
GGSCI> add extract DP_SLAVE1, exttrailsource /GoldenGate/fgdata/dirdat/em
GGSCI> add rmttrail /GoldenGate/fgdata/dirdat/s1, extract DP_SLAVE1
GGSCI> start DP_SLAVE1
GGSCI> edit param DP_SLAVE2
EXTRACT DP_SLAVE2
PASSTHRU
RMTHOST fgedu03, MGRPORT 7809
RMTTRAIL /GoldenGate/fgdata/dirdat/s2
TABLE fgedu.*;
GGSCI> add extract DP_SLAVE2, exttrailsource /GoldenGate/fgdata/dirdat/em
GGSCI> add rmttrail /GoldenGate/fgdata/dirdat/s2, extract DP_SLAVE2
GGSCI> start DP_SLAVE2
### 2. 配置从节点1
#### 2.1 启动Manager进程
GGSCI> start mgr
Manager started.
#### 2.2 配置Replicat进程
GGSCI> edit param REP_SLAVE1
REPLICAT REP_SLAVE1
USERID fgedu, PASSWORD fgedu123
ASSUMETARGETDEFS
MAP fgedu.*, TARGET fgedu.*;
GGSCI> add replicat REP_SLAVE1, exttrail /GoldenGate/fgdata/dirdat/s1, checkpointtable fgedu.gg_checkpoint
GGSCI> start REP_SLAVE1
### 3. 配置从节点2
#### 3.1 启动Manager进程
GGSCI> start mgr
Manager started.
#### 3.2 配置Replicat进程
GGSCI> edit param REP_SLAVE2
REPLICAT REP_SLAVE2
USERID fgedu, PASSWORD fgedu123
ASSUMETARGETDEFS
MAP fgedu.*, TARGET fgedu.*;
GGSCI> add replicat REP_SLAVE2, exttrail /GoldenGate/fgdata/dirdat/s2, checkpointtable fgedu.gg_checkpoint
GGSCI> start REP_SLAVE2
### 4. 验证配置
#### 4.1 检查主节点进程
GGSCI> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT_MASTER 00:00:00 00:00:05
EXTRACT RUNNING DP_SLAVE1 00:00:00 00:00:03
EXTRACT RUNNING DP_SLAVE2 00:00:00 00:00:02
#### 4.2 检查从节点1进程
GGSCI> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP_SLAVE1 00:00:00 00:00:05
#### 4.3 检查从节点2进程
GGSCI> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP_SLAVE2 00:00:00 00:00:05
### 5. 配置结果
– 主节点GoldenGate已配置并运行
– 从节点1 GoldenGate已配置并运行
– 从节点2 GoldenGate已配置并运行
– 数据同步正常
4.3 故障转移案例
以下是故障转移的实战案例:
## 环境信息
主节点:fgedu01
从节点1:fgedu02
从节点2:fgedu03
GoldenGate版本:21.3.0.0.0
## 故障转移步骤
### 1. 模拟主节点故障
$ ssh root@fgedu01
# shutdown -h now
### 2. 检查主节点状态
$ ping fgedu01
ping: fgedu01: Name or service not known
### 3. 提升从节点1为主节点
#### 3.1 在从节点1上停止Replicat进程
GGSCI> stop REP_SLAVE1
Sending STOP request to REPLICAT REP_SLAVE1 …
REPLICAT REP_SLAVE1 stopped.
#### 3.2 在从节点1上配置Extract进程
GGSCI> edit param EXT_NEW_MASTER
EXTRACT EXT_NEW_MASTER
USERID fgedu, PASSWORD fgedu123
EXTTRAIL /GoldenGate/fgdata/dirdat/nm
TABLE fgedu.*;
GGSCI> add extract EXT_NEW_MASTER, sourceistable
EXTRACT added.
GGSCI> add exttrail /GoldenGate/fgdata/dirdat/nm, extract EXT_NEW_MASTER
EXTTRAIL added.
GGSCI> start EXT_NEW_MASTER
Sending START request to MANAGER …
EXTRACT EXT_NEW_MASTER starting
#### 3.3 在从节点1上配置Data Pump进程
GGSCI> edit param DP_NEW_SLAVE
EXTRACT DP_NEW_SLAVE
PASSTHRU
RMTHOST fgedu03, MGRPORT 7809
RMTTRAIL /GoldenGate/fgdata/dirdat/ns
TABLE fgedu.*;
GGSCI> add extract DP_NEW_SLAVE, exttrailsource /GoldenGate/fgdata/dirdat/nm
EXTRACT added.
GGSCI> add rmttrail /GoldenGate/fgdata/dirdat/ns, extract DP_NEW_SLAVE
RMTTRAIL added.
GGSCI> start DP_NEW_SLAVE
Sending START request to MANAGER …
EXTRACT DP_NEW_SLAVE starting
#### 3.4 在从节点2上重新配置Replicat进程
GGSCI> stop REP_SLAVE2
Sending STOP request to REPLICAT REP_SLAVE2 …
REPLICAT REP_SLAVE2 stopped.
GGSCI> delete replicat REP_SLAVE2
REPLICAT deleted.
GGSCI> add replicat REP_NEW_SLAVE, exttrail /GoldenGate/fgdata/dirdat/ns, checkpointtable fgedu.gg_checkpoint
REPLICAT added.
GGSCI> start REP_NEW_SLAVE
Sending START request to MANAGER …
REPLICAT REP_NEW_SLAVE starting
### 4. 验证故障转移
#### 4.1 检查新主节点进程
GGSCI> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT_NEW_MASTER 00:00:00 00:00:05
EXTRACT RUNNING DP_NEW_SLAVE 00:00:00 00:00:03
#### 4.2 检查从节点2进程
GGSCI> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP_NEW_SLAVE 00:00:00 00:00:05
### 5. 测试数据同步
#### 5.1 在新主节点插入数据
SQL> INSERT INTO fgedu.emp VALUES (3, ‘Charlie’, 7000);
SQL> COMMIT;
#### 5.2 检查从节点2数据
SQL> SELECT * FROM fgedu.emp;
ID NAME SALARY
———- ——————————————————————————– ———-
1 Alice 5000
2 Bob 6000
3 Charlie 7000
### 6. 故障转移结果
– 主节点故障已处理
– 从节点1已成功提升为主节点
– 数据同步正常
– 系统恢复运行
Part05-风哥经验总结与分享
5.1 最佳实践
根据实际经验,总结以下最佳实践:
- 架构设计:合理设计集群架构,确保高可用性和性能
- 硬件配置:使用高性能服务器,确保系统的稳定性和可靠性
- 网络配置:使用高速网络连接,减少网络延迟
- 监控到位:建立完善的监控体系,及时发现和处理故障
- 故障转移:定期测试故障转移机制,确保系统的可用性
5.2 常见问题与解决
集群主从架构中的常见问题及解决方案:
- 主节点故障:及时提升从节点为主节点,确保系统的连续性
- 数据同步延迟:优化GoldenGate配置,提高数据传输速度
- 网络问题:检查网络连接,确保网络的可靠性
- 资源不足:增加系统资源,优化资源配置
- 故障转移失败:检查故障转移配置,确保故障转移机制的可靠性
5.3 风哥经验分享
在多次GoldenGate集群主从架构实施的经验中,我总结了以下几点心得:
1. 架构规划:在实施集群主从架构前,需要充分规划系统架构,包括节点数量、硬件配置、网络配置等,确保架构设计合理。
2. 高可用性:高可用性是集群主从架构的核心目标,需要通过合理的设计和配置,确保系统在节点故障时能够快速恢复。
3. 性能优化:性能是集群主从架构的重要考虑因素,需要优化GoldenGate配置和系统参数,提高数据同步速度和系统响应时间。
4. 监控维护:建立完善的监控体系,及时发现和解决问题,确保系统的稳定运行。
5. 故障处理:制定完善的故障处理流程,定期测试故障转移机制,确保系统在故障时能够快速恢复。
更多学习教程公众号风哥教程itpux_com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
