opengauss 高可用

2023年 10月 26日 36.1k 0

主备机

为了保证故障的可恢复,需要将数据写多份,设置主备多个副本,通过日志进行数据同步,可以实现节点故障、停止后重启等情况下,openGauss能够保证故障之前的数据无丢失,满足ACID特性。主备环境可以支持主备和一主多备两种模式。主备模式下,备机需要重做日志,可以升主。在一主多备模式下,所有的备机都需要重做日志,都可以升主。主备主要用于要求一般可靠性的OLTP系统,能够节省一定的存储资源。而一主多备提供更高的容灾能力,适合于要求更高可靠性事务处理的OLTP系统。

主备机均正常的状态下,主备机之间可以通过switchover命令进行角色切换;主机故障后可以通过failover命令对备机进行升主。

为保证failover的时间可控,可以开启日志流控功能,控制日志发往备机的速率,保证备机堆积的日志会在小于流控配置的目标时间内回放完。开启流控后因为发送给备机日志的速率被动态调整,从而整体的事务的性能会有相应的降低。

初始化安装或者备份恢复等场景中,需要根据主机重建备机的数据,此时需要build功能,将主机的数据和WAL日志发送到备机。主机故障后重新以备机的角色加入时,也需要build功能将其数据和日志与新主机拉齐。build包含全量build和增量build,全量build要全部依赖主机数据进行重建,拷贝的数据量比较大,耗时比较长,而增量build只拷贝差异文件,拷贝的数据量比较小,耗时比较短。一般情况下,优先选择增量build来进行故障恢复,如果增量build失败,再继续执行全量build,直至故障恢复。

openGauss除了流复制主备双机外,还支持逻辑复制。在逻辑复制中把主库称为源端数据库,备库称为目标端数据库。源端数据库根据预先指定好的逻辑解析规则对WAL文件进行解析,把DML操作解析成一定的逻辑变化信息(标准SQL语句),源端数据库把标准SQL语句发给目标端数据库,目标端数据库收到后进行应用,从而实现数据同步。逻辑复制只有DML操作。逻辑复制可以实现跨版本复制、异构数据库复制、双写数据库复制、表级别复制。

逻辑备份

openGauss提供逻辑备份能力,可以将用户表的数据以通用的text或者csv格式备份到本地磁盘文件,并在同构/异构数据库中恢复该用户表的数据。

物理备份

openGauss提供物理备份能力,可以将整个实例的数据以数据库内部格式备份到本地磁盘文件中,并在同构数据库中恢复整个实例的数据。

物理备份主要分为全量备份和增量备份,区别如下:全量备份包含备份时间点上数据库的全量数据,耗时时间长(和数据库数据总量成正比),自身即可恢复出完整的数据库;增量备份只包含从指定时刻点之后的增量修改数据,耗时时间短(和增量数据成正比,和数据总量无关),但是必须要和全量备份数据一起才能恢复出完整的数据库。openGauss支持全量备份和增量备份。

闪回恢复

利用回收站的闪回恢复删除的表。数据库的回收站功能类似于windows系统的回收站,将删除的表信息保存到回收站中。 利用MVCC机制闪回恢复到指定时间点或者SCN点。

极致RTO

极致RTO开关开启后,xlog日志回放建立多级流水线,提高并发度,提升日志回放速度。

当业务压力过大时,备机的回放速度跟不上主机的速度。在系统长时间的运行后,备机上会出现日志累积。当主机故障后,数据恢复需要很长时间,数据库不可用,严重影响系统可用性。开启极致RTO(Recovery Time Object,恢复时间目标),减少了主机故障后数据的恢复时间,提高了可用性。

逻辑复制

openGauss提供逻辑解码功能,将物理日志反解析为逻辑日志。通过DRS等逻辑复制工具将逻辑日志转化为SQL语句,到对端数据库回放,达到异构数据库同步数据的功能。目前支持openGauss数据库与MySQL数据库、Oracle数据库之间的单向、双向逻辑复制。DN通过物理日志反解析为逻辑日志,DRS等逻辑复制工具从DN抽取逻辑日志转换为SQL语句,到对端数据库(MySQL)回放。逻辑复制工具同时从MySQL数据库抽取逻辑日志,反解析为SQL语句之后回放至openGauss,达到异构数据库同步数据的目的。

发布订阅

发布订阅基于逻辑复制实现,其中有一个或者更多订阅者订阅一个发布者节点上的一个或者更多发布。订阅者从它们所订阅的发布拉取数据。实现集群间的数据实时同步。发布者上的更改会被实时发送给订阅者。订阅者以与发布者相同的顺序应用那些数据,这样在一个订阅中能够保证发布的事务一致性。这种数据复制的方法有时候也被称为事务性复制。

恢复到指定时间点(PITR)

时间点恢复(Point In Time Recovery)基本原理是通过基础热备 + WAL预写日志 + WAL归档日志进行备份恢复。重放WAL记录的时候可以在任意点停止重放,这样就有一个在任意时间的数据库一致的快照。即可以把数据库恢复到自开始备份以来的任意时刻的状态。openGauss在恢复时可以指定恢复的停止点位置为TID、时间和LSN。

基于Paxos协议的高可用(DCF)

DCF开关开启后,数据库节点支持基于Paxos协议的复制与仲裁,实现高可用和容灾的能力。数据库节点支持自选主及日志复制,复制过程支持压缩和流控能力,防止带宽占用过高。提供基于Paxos多种角色的节点类型,并能够进行调整。

两地三中心跨Region容灾

两地三中心,顾名思义,两地指的是两座城市,即同城和异地,三中心指的是生产中心,同城容灾中心以及异地容灾中心。近年来,国内外频繁出现自然灾害,以同城双中心加异地灾备中心的“两地三中心”的灾备模式也随之出现,这一方案兼具高可用性和灾难备份的能力。同城双中心是指在同城或邻近城市建立两个可独立承担关键系统运行的数据中心,双中心具备基本等同的业务处理能力并通过高速链路实时同步数据,日常情况下可同时分担业务及管理系统的运行,并可切换运行;灾难情况下可在基本不丢失数据的情况下进行灾备应急切换,保持业务连续运行。与异地灾备模式相比较,同城双中心具有投资成本低、建设速度快、运维管理相对简单、可靠性更高等优点。异地灾备中心是指在异地的城市建立一个备份的灾备中心,用于双中心的数据备份,当双中心出现自然灾害等原因而发生故障时,异地灾备中心可以用备份数据进行业务的恢复。

技术规格:

  • 基于流式复制的异地容灾解决方案:

    • 主数据库实例或灾备数据库实例内网络时延要求

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论