PDF下载
民航空管局气象数据库高可用性部署方案

​刘彬卿

民航新疆空中交通管理局气象中心信息室,新疆乌鲁木齐,830001

摘要: 本文通过阐述民航空管局气象中心信息维护的民用航空气象数据库系统的规范要求、当前状况,并根据系统高可用性、大数据支持性的要求,对气象数据库系统进行了重新的构建,本文使用Oracle的RAC工作模式,将数据库部署在Linux集群中,临时数据和归档数据存放于专用NAS存储中,实现系统和数据的分离,从而提高数据库的安全性、稳定性。
关键词: 航空气象数据;高可用;Oracle;RAC
DOI:10.12721/ccn.2021.157109
基金资助:
文章地址:

1. 当前状况

当前,中国民航空中交通管理局气象中心(简称“民航气象中心”)却是有负责信息维护的民用航空气象数据库系统。该系统在民航气象业务中扮演着核心角色,民航气象数据库系统是一个分级数据交换的网络系统,由民航气象中心以及7个地区分中心所组成。该系统负责存储、交换以及备供等飞行气象信息,是民航气象业务的重要基础。每天24小时不间断运行,需要专人值守,因此对系统的可靠性要求较高。

在数据库还部署在IBM的Power510时,该系统并未实现数据与应用的分离,数据存储的安全性与服务质量的保证还有提升的空间。基于此系统为单系节点,硬件投入较低,管理维护成本低,可用性不高,无法进行横向扩展,只能进行纵向扩展。当应用对性能有更高的要求时,只能进行增加硬件配置等纵向扩展,且扩展性有局限。

本文,充分考虑该模式是否满足应用未来一段时间的需求。考虑应用民航气象数据的庞大性,搭建数据库RAC实现不间断服务,保证换季、单个服务器宕机时服务的正常保障。

2. Oracle数据库

1.1. 数据要求

民用航空气象数据库系统的资料保存期限中包括有临时库、实时库、历史库等。按规定,信息室每周将民用航空气象数据库中需要长期和永久保存的气象资料存储到磁带或光盘等机读载体上,并定期检查、更换或更新机读载体。因此数据库设计时需要考虑临时数据的处理和存储,以及归档数据的存储。归档数据是便于后期数据的分析利用。

1.2. Oracle数据库处理方式

Oracle数据库的处理方式多样化,涵盖了数据的存储、查询、修改、优化以及备份恢复等多个方面。以下是关于Oracle数据库处理方式的详细阐述:

 1. 数据存储与管理

Oracle数据库使用表空间来组织数据的物理存储,表空间是数据库的逻辑单位,由一个或多个数据文件组成。数据文件是存储数据的物理文件,包含了用户数据和系统数据,如表、索引等。

2. 数据查询

Oracle数据库支持SQL(Structured Query Language)作为数据查询和操作的标准语言。用户可以通过SQL语句实现数据的查询、更新、删除等操作。其中Oracle的查询优化器负责分析SQL语句,并为其生成一个高效的执行计划。优化器会根据统计信息、索引、表的大小等因素来选择最优的执行路径,以提高查询效率。

 3. 数据修改

DML操作包括INSERT、UPDATE、DELETE等语句,用于向数据库表中添加、修改或删除数据。Oracle支持事务处理,确保DML操作的一致性和完整性。对于需要处理大量数据的情况,Oracle提供了批量数据处理功能,如SQL*Loader、外部表等,可以高效地加载、转换和导出数据。

4. 性能优化

索引:创建索引可以加快查询速度,Oracle支持多种类型的索引,如B树索引、位图索引等。

并行处理:Oracle支持并行查询和DML操作,可以利用多个CPU和I/O资源来同时执行数据库操作,显著提高性能。

内存与I/O优化:调整SGA(System Global Area)和PGA(Program Global Area)的大小,优化缓冲区命中率和共享池命中率,减少磁盘I/O需求,提升SQL执行效率。

SQL优化:编写高效的SQL语句,避免使用低效的SQL操作,如全表扫描等。同时,通过执行计划分析找出性能瓶颈,并进行相应的优化。

 5. 数据备份与恢复

Oracle的RMAN(Recovery Manager)是一个功能强大的备份和恢复工具,支持多种备份策略,如全库备份、增量备份等,并提供了灵活的恢复选项;Oracle还提供了闪回技术,如闪回查询、闪回表等,允许用户查看过去某个时间点的数据库状态,甚至可以将表恢复到该时间点的状态。

6. 数据处理模式

Row-by-Row(逐行处理):适用于处理少量数据,每次处理一行数据。

Arrays(数组处理):相比逐行处理,数组处理一次处理一组数据,效率更高。在OLTP场景中,应尽量使用数组处理方式。其中数据处理方式大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)与联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 

在OLAP系统中,常使用分区技术、并行技术。分区技术在OLAP系统中的重要性主要体现在数据库管理上,如数据库加载,可以通过分区交换的方式实现,在Oracle 中,与RAC结合实现多节点的同时扫描,可把一个任务,如select的全表扫描,平均地分派到多个RAC的节点上去。民航气象数据库,除了数据存储外,还应用于气象大数据分析,比较侧重于决策支持,对事务处理的要求比较低。

Manual Parallelism(手动并行处理):允许用户手动分配工作负载给多个线程/进程,实现并行处理。但需要注意多线程对数据库对象执行相同操作时可能出现的争用问题。

Set-Based(集合处理):是Oracle数据库中处理数据最高效的方法之一。它按组或行集来处理数据,并使用SQL定义结果,让数据库决定如何执行。集合处理可以直接在数据库内部处理数据,不需要在网络上进行移动,同时可以利用Hash joins、并行查询等高效操作。

1.3. 部署方式

本设计鉴于成本节约,以及后期的可扩展性,因此采纳Linux集群,构建Oracle的RAC工作模式,数据库服务器采用RAC模式,多个数据库实例运行在不同的物理节点上,但共享同一个数据库和存储系统,来满足对高可用性要求高的应用类型,该模式具有以下几个优点:

1. 需要多个硬件服务器。根据节点的个数,相应的需要多个硬件服务器。通常至少需要两个节点,但建议使用奇数节点以避免脑裂(Split-Brain)问题,硬件成本较高。

2. 某些数据库版本需要HA软件的支持。该模式下,某些数据库版本需要配合HA软件才可以实现。

3. 安装配置复杂。该模式比起单实例模式,安装配置相对复杂,每个节点应具备高性能的CPU、充足的内存和高速的存储系统(如SAN、SSD或NVMe)。其具备较高的可用性,多服务器,多实例,满足民航气象报文的大吞吐量、大数据量、高可用性的需求。

4. 考虑到民航气象数据库对最大业务中断时间和最大数据丢失数量的需求,本文采用RAC集群方式构建数据库系统,数据库的临时数据文件存放于本地磁盘,历史归档数据存放于NAS设备中。

5. RAC集群中的所有节点必须能够访问共享存储系统,以读取和写入相同的数据库文件。通常使用ASM(Automatic Storage Management)来管理共享存储,ASM提供了数据的自动平衡、冗余和恢复功能。在ASM中创建磁盘组,用于存放OCR(Oracle Cluster Registry)、Voting Disks(表决磁盘)和数据库数据文件等。确保磁盘组具有足够的冗余和容量,以支持高可用性和高性能需求。

1741156729731091.png

图2-1 Oracle 的RAC体系结构图

3. 规划地址

1.4. 网络规划

Oracle的每一个节点,至少需要两套物理上隔离的网络,都有一个公有IP(公网IP,用于客户端的访问和对外服务),也就是VIP,与公网IP在同一个网段。VIP是浮动的,而公网IP是固定的,当节点正常运行时,每个结点的VIP会被分配到NIC上,因此在Linux下该网卡会有两个IP地址,当该节点故障时,VIP会被转移到其他运行的节点,以实现故障转移和负载均衡。

1741156751755121.png

图3-1 Oracle的RAC的体系结构

私网IP(配置专用的私有IP,用于节点间通信)应用于心跳信号和数据同步,用于保障每一个数据库节点的同步,是RAC集群内部的通信的桥梁,私网IP与公有IP绝不能在同一个IP段。同时也确保节点间的低延迟和高可靠性通信。

Scan-IP应用于客户端与数据库之间,相当处于连接层的位置,当有Client连接时,就会连接到Scan-IP的监听,Scan-IP会根据LBA算法将该连接转交给私网地址,如图3-1为民航气象数据库网络规划方案。

表3-1网络规划方案

1741156767835740.png

1.5. 磁盘规划

为了让 RAC 中的所有实例能够访问数据库,所有的 datafiles、control files、PFILE/Spfile 和 redo log files 必须保存在共享磁盘上,并且要都能被所有节点同时访问,就涉及到裸设备和集群文件系统等。

本设计使用RAID存储数据,磁盘阵列可以提供一个有容错能力的I/O系统,当系统中某一个盘丢失数据时,系统具有容错能力,本设计的解决方案是较大限度使用RAID1和RAID10,操作系统和Oracle使用RAID1,数据文件使用RAID10,归档日志文件使用RAID5。

4. 结语

民航气象数据库使用RAC工作方式 ,部署ASM磁盘类型, I/O 高性能和集群文件系统易管理等优点,在各个节点之间同步 SGA 中的缓存信息达到提高访问速度的效果,也保证了数据的一致性,为气象数据的充分利用、系统稳定运行打下基础。