Loading [MathJax]/jax/output/SVG/jax.js
  • 查询稿件
  • 获取最新论文
  • 知晓行业信息
官方微信 欢迎关注

Oracle12C RAC节点损坏恢复方案研究

王健, 王启明

王健, 王启明. Oracle12C RAC节点损坏恢复方案研究[J]. 铁路计算机应用, 2019, 28(5): 31-36.
引用本文: 王健, 王启明. Oracle12C RAC节点损坏恢复方案研究[J]. 铁路计算机应用, 2019, 28(5): 31-36.
WANG Jian, WANG Qiming. Scheme of Oracle 12C RAC node damage recovery[J]. Railway Computer Application, 2019, 28(5): 31-36.
Citation: WANG Jian, WANG Qiming. Scheme of Oracle 12C RAC node damage recovery[J]. Railway Computer Application, 2019, 28(5): 31-36.

Oracle12C RAC节点损坏恢复方案研究

详细信息
    作者简介:

    王健,高级工程师;王启明,高级工程师。

  • 中图分类号: U29;TP39

Scheme of Oracle 12C RAC node damage recovery

  • 摘要: 针对Windows平台下Oracle12C RAC集群节点损坏问题进行方案研究,通过对Oracle RAC原理及易伸缩特性进行深入研究,多方查阅Oracle技术文档,成功解决了实施过程中的各类问题,最终实现在不停集群即保证现场业务连续性的情况下,在线恢复集群原有架构,保证核心系统的高可用性,为Windows平台下的数据库系统运维积累了宝贵经验。
    Abstract: Aiming at the problem of Oracle 12C RAC cluster node damage under Windows platform, the scheme research and implementation were carried out. Through in-depth study of Oracle RAC's principle and scalability characteristics, consulting Oracle technical documents from various sources, various problems in the implementation process were successfully solved. Finally, under the condition of continuous cluster and business continuity, the original cluster architecture was restored online, and the high availability of the core system was guaranteed, which accumulated valuable experience for the operation and maintenance of database system under Windows platform.
  • 对轨道交通来说,车辆段是车辆停放、检修、运行及管理的中心,也是车辆安全运行的基本保障[1]

    车辆段信号设备平面布置图是能正确反映道岔直向位置、列车和调车信号机的布置情况及设置地点、轨道电路区段划分及股道运用情况的重要技术图纸,其图形复杂,内容繁多,例如,某车辆段总图中的道路由410条多段线组成,另含36组道岔及170条股道等[2]。通用AutoCAD软件仅提供基础的绘图命令,不适用于复杂图形、多元化图形的绘制。如果不进行二次开发,完成一项设计将耗费大量的时间,并且增加出现人为差错的可能,设计效率低下[3]。此外,车辆段信号设备平面布置图纸局部调整难度大、出图需求量大,迫切需要提高该图的绘制质量与效率。

    目前,在国内铁路领域,利用ObjectARX开发软件包进行AutoCAD开发的应用较少,赵宜芳[4]基于ObjectARX完成了站场数据表的批量自动导入,站场表格数据的批量自动标注。本文基于ObjectARX创建自定义实体及其他开发功能,对AutoCAD进行二次开发[5],生成辅助设计平台,实现车辆段信号设备平面布置图的快速准确绘制,为车辆段信号设备平面布置图的设计提供新的途径,解决设计效率低下的问题。

    车辆段信号设备平面布置图辅助设计平台架构,按功能划分为信号设备自定义实体设计、信号平面布置图辅助绘制、数据交互3大模块,如图1所示。

    图  1  平台架构

    ObjectARX 是针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C++为基础的面向对象的开发环境及应用程序接口,能真正快速的访问AutoCAD图形数据库。本模块采用Microsoft Visual Studio 2017、ObjectARX对AutoCAD进行二次开发,使用C++语言的面向对象编程机制,进行信号机、道岔、道路及其他数10种自定义实体设计及属性设置,根据铁路工程制图标准对各信号设备的外观进行设计。

    (1)信号机自定义实体包含11种平台自带的信号机和实时由用户指定灯位配列类型的信号机,全面满足不同厂商对信号机样式的需求,并能实现绘图中更改信号机朝向与高矮柱型等功能。

    (2)道岔自定义实体覆盖单动道岔、双动道岔、交叉渡线[6],可实现绘图中灵活移动道岔各支,更改道岔分支末端绝缘节类型,在无绝缘节、普通绝缘节、超限绝缘节、尽头绝缘节间自由切换,更改道岔开口方向与尖轨朝向等功能。

    (3)道路自定义实体包括直线型和曲线型,绘图中可以灵活切换两端绝缘节类型。以上实体均能设置所有联锁系统需要的属性,同时,能完成绘图中移动、删除、复制、镜像功能。

    (4)其他自定义实体包括计轴、绝缘节、应答器、警冲标、库所、转辙机、停车位置标、车档、文本等。自定义实体的设计结构,如图2所示。

    图  2  自定义实体设计结构

    本文前面创建了信号机、道岔和道路等数10种自定义实体,但要在AutoCAD 平台完成信号平面布置图的快速绘制,需要进行进一步的辅助绘图设计。该模块主要完成2部分内容:(1)设计友好人机交互界面,展示各实体并提示操作信息,实现人机交互辅助绘制;(2)设计数据处理算法,解析从外部输入的实体信息集合,进一步实现以秒为单位的一键自动绘制。

    本模块提供对外接口,与外部软件进行数据交互,包括1个输入端和1个输出端。输入端:站场图识别软件输出的站场信息,该信息作为自定义实体设计的数据源和自动绘制功能实现的实体信息集合输入源。输出端:输出的站场数据和联锁数据作用于其他联锁软件。本平台与各外部软件的关系,如图3所示。

    图  3  平台与外部软件关系

    设计信号机基类XcySignal,信号机自定义实体类需兼具XcySignal类中和AutoCAD中实体应具备的成员属性与函数。因此每种类型的信号机自定义实体类均从XcySignal类和 AcDbEntity类中派生。派生后,依次完成相关属性成员初始化 、绘图属性初始化、功能函数的设计与实现。分别由以下函数完成。

    (1)InitialAttribution:属性初始化函数,实现所有从父类继承和派生属性的初始化。如信号机种类、初始朝向、高矮柱形、常态点灯颜色等。

    (2)InitialDraw:绘图属性初始化函数,完成信号机实体绘图组成元素属性初始化,设计绝缘节、灯柱、底柱、各个信号灯、信号灯内部填充等绘图元素。在函数中完成各绘图元素属性设置,如绝缘节和灯柱长度、信号灯半径、内部填充样式等。同时,各绘图元素之间需依赖具体坐标才能按要求组织在一起,因此函数将传入基点坐标并设计各元素间的逻辑邻接关系。

    (3)为实体封装大量函数,实现其复杂功能,如SetHighOrLow函数实现高矮柱变化,SetDirection函数实现朝向变换,SetNormalLight设置常态显示灯光,subGetOsnapPoints设置捕捉点,subGetGripPoints设置夹点,subMoveGripPointsAt实现夹点移动,TransformBy进行绘图元素坐标变换等。

    这样,再添加其他功能,就完成一个信号机自定义实体的设计与创建。本文共设计11种不同类型的信号机自定义实体。

    额外增设实时由用户产生指定灯位配列的信号机自定义实体,真正实现信号机自定义实体自由,下面描述其主要设计思想。

    (1)设计XcySignalSet类代表用户自定义信号机实体类,封装9种独立信号灯绘图元素类作为其成员变量。

    (2)为XcySignalSet类提供2种灯位排列选择(单列或双列)和5个灯位选择,每个信号机可自由选择灯位排列,每个灯位又可自由选择9种信号灯,灯位排列和每个灯位选择结果均单独开辟成员变量标记。

    (3)根据灯位排列与5个灯位选择结果的6个标记变量组合出自定义信号机。理论上会产生多达2×95种信号机,全面考虑类的存储空间与状态爆炸问题,约束限制每种信号灯最多允许被选择2次,减轻了程序负担且不失信号机实体的多样性。

    (4)设计友好的可视化交互界面,简化用户复杂的选择过程。

    与信号机自定义实体的设计与创建相似,各自定义实体均需逐一完成相关属性成员初始化 、绘图属性初始化、功能函数设计与实现。难点在于不同类型实体属性设计与初始化、功能函数设计与实现的差异性很大。这里不再详细展开。

    选择MFC[7](Microsoft Foundation Classes)中的工具选项板进行人机交互辅助绘制设计。本文构建了基于绘图工具选项板和属性工具选项板的双重人机交互界面。前者负责展示与选择自定义实体,后者负责修改与完善实体属性,从而完善站场与联锁数据。

    人机交互辅助绘制的主要流程如下:

    (1)根据绘图工具栏各类可视化实体展示,选择拟绘制的实体;

    (2)根据提示在AutoCAD界面拾取屏幕任意一点,将实体布置于指定位置;

    (3)单击已布置实体,编辑反应器实时监控并创建与该实体类型关联的属性工具选项板;

    (4)在属性工具栏的交互界面上,完成对实体属性的修改与完善。

    人机交互辅助绘制流程,如图4所示。

    图  4  人机交互辅助绘制流程

    通过读取外部输入的自定义实体数据,解析并定位到特定类型自定义实体,创建该类型实体,经逻辑处理实现外部数据与实体数据实时联动,为实体配置属性。要解析外部数据,须设计数据处理算法,算法实现的关键在于外部文件输入的数据格式,即定义各类自定义实体的数据模型。

    各类数据模型定义的关键是获取相应自定义实体关键节点信息,几个重要信号设备的节点分布情况,如图5所示。

    图  5  设备节点分布示意

    几个重要数据模型定义的具体描述如下。

    定义1:信号机数据模型Signal由一个七元组<ID, Point, Direction, Column, Prefix, Num, Name>表示,其中:

    (1)ID表示信号机类型;

    (2)Point由一个三元组<X, Y, Z>组成,表示信号机基点坐标,X, Y, Z代表其在图形空间X, Y, Z轴方向的坐标值;

    (3)Direction表示信号机朝向,0代表向右,1代表向左;

    (4)Column表示信号机机柱类型,1代表高柱,2代表矮柱;

    (5)Prefix、Num、Name分别表示信号机名称前缀、数字编号、名称。

    定义2:道岔数据模型Switch由一个十元组<ID, Point1, Point2, Point3, Name, J1, J2, J3, RailFace, TurnoutFace>表示,其中:

    (1)ID表示道岔类型;

    (2)Point1、Point2、Point3分别表示道岔在图形空间中岔前直股节点坐标、岔后直股节点坐标、岔后弯股节点坐标,每个又是由三元组<X, Y, Z>表示;

    (3)Name代表道岔名称;

    (4)J1、J2、J3分别表示岔前直股、岔后直股、岔后弯股的绝缘节类型,0代表无绝缘节,1、2、3分别表示普通绝缘节、超限绝缘节、尽头绝缘节;

    (5)RailFace表示道岔尖轨朝向,0代表尖轨朝向向左,1表示向右;

    (6)TurnoutFace代表道岔开向,0代表道岔开向向左,1表示向右。

    定义3:道路数据模型Section1由一个六元组<ID, Point1, Point2, Name, J1, J2>表示,Section2由七元组<ID, Point1, Point2, Point3, Name, J1, J2>表示,其中:

    (1)ID表示道路类型,31代表直线型,32代表曲线型;

    (2)2种模型Point1、Point2都分别储存道路起点、终点坐标,Point3是曲线型道路增设的弧上一点坐标,Name均代表道路名称;

    (3)J1、J2均分别代表道路起点、终点绝缘节类型,绝缘节类型含义同道岔,除此之外,为道路两端增设车档选择。

    输入上述数据模型集合的实体信息文件,生成数据解析处理算法,循环遍历单个数据模型,解析并定位到待绘制的自定义实体类型,创建特定类型实体并按解析数据逐一为其配置属性,最后将其添加到模型空间,实现车辆段信号平面布置图的自动绘制,详细算法流程,如图6所示。

    图  6  自动绘制算法流程

    采用对象连接与嵌入(OLE,Object Linking and Embedding)方式输出本平台产生的站场及联锁数据到Excel。利用Excel提供的Com对象模型,使用OLE跨进程的方式给Excel发出指令并在2个进程之间进行数据交互,其实现步骤如下:

    (1)在程序的InitApplication和UnloadApplication添加初始化、销毁 COM动态链接库的代码;

    (2)设计实体数据处理算法,算法实现的核心编写在函数ExportToExcel中;

    (3)注册数据导出到Excel数据页的执行命令XCYExportData,将处理函数ExportToExcel链接到命令,执行命令时调用该函数进行实体数据提取;

    (4)在AutoCAD命令行执行XCYExportData,即可将信号平面布置图中不同类型的道路、道岔、信号机、文本、警冲标、应答器、超限绝缘节、停车位置标等自定义实体数据分别导出到 Excel中。

    上述步骤的关键在于(2)中核心函数ExportToExcel的实现,即数据处理与生成算法的具体实现。需自定义以下函数:RunExcelApp函数,用于启动Excel程序,若Excel程序已经运行,则自动连接到正在运行的Excel进程中;NewWorkBook、NewWorkSheet函数,分别用于新建空白的 WorkBook、WorkSheet;GetAllEntityIds函数,用于获取所有自定义实体集合[8]。处理时,遍历实体集合,逐一打开实体,根据实体类型设计并调用不同数据处理方法,生成不同实体的不同数据,同时,控制生成不同的数据输出格式。该数据生成流程,如图7所示。

    图  7  数据生成流程

    信号机自定义实体的实现由平台自定义信号机实体和用户自定义信号机实体2部分构成,两者的绘图及属性实现,如图8所示。包含11种平台自带的信号机实体和系列实时由用户随意指定生成的信号机实体,并能实现图形与属性数据的实时联动。经验证,所有信号机实体均具备前面设计的复杂功能。

    图  8  信号机自定义实体

    实现了单动道岔、双动道岔、交叉渡线道岔自定义实体的设计且相应道岔各项复杂功能均通过测试。单动道岔的应用广泛,其他2种道岔均可由单动道岔组合得到。因此下面展示单动道岔自定义实体的绘图与属性实现,如图9所示。

    图  9  单动道岔自定义实体

    实现了直线型与曲线型2种道路自定义实体的设计,其绘图及属性实现分别如图10图11所示。实体的各项设计功能均已通过测试。

    图  10  直线型道路自定义实体
    图  11  曲线型道路自定义实体

    实现了诸如库所、警冲标、计轴、车档、应答器、超限绝缘节、信号设备室、转辙机、停车位置标、轨旁无线设备(TRE,Trackside Radio Equipment)等其他自定义实体的设计,实体的各项设计功能均已通过测试。

    本文设计的自定义实体种类繁多,每类实体均有绘图选择界面及其子界面,每个实体又配备属性操作界面及功能操作界面,界面体系庞大而复杂。

    以某车辆段信号平面布置图为实例,外部导入多达599个自定义实体数据模型集合文件,其中覆盖5种不同类型信号机、2种类型道路、4种类型计轴器、2种类型应答器、警冲标、TRE、库所、信号设备室等数10种自定义实体信息。经测试,用时在2 s内实现了该复杂车辆段信号平面布置图的一键自动生成,绘制准确无误,其生成效果,如图12所示。

    图  12  用户自定义信号机实体交互界面

    通过遍历某车辆段信号平面布置图模型空间的自定义实体,平台自动输出带文本格式的站场及联锁数据。

    本文介绍车辆段信号设备平面布置图辅助设计平台,该平台实现了车辆段信号设备平面布置图的快速人机交互辅助绘制及自动绘制,并实现相关数据与联锁软件的交互,使数据的二次利用更加便捷。平台的人机交互界面友好,操作简便,对某复杂车辆段信号平面布置图的设计结果表明,辅助设计平台能够在2 s的时间内快速实现该复杂车辆段信号平面布置图的一键自动生成,绘制准确无误,大幅提升了车辆段信号平面布置图的设计质量与效率。

  • [1] 高斌.Oracle RAC核心技术详解[M]. 北京:机械工业出版社, 2015.
    [2] 刘炳林. 构建最高可用Oracle数据库系统[M]. 北京:机械工业出版社, 2012.
    [3] 荣伟铭.Oracle RAC技术概述及应用[J]. 中国科技信息, 2008(6):111-113.
    [4] 张晓明. 大话Oracle RAC集群、高可用性、备份与恢复[M]. 北京:人民邮电出版社, 2009.
    [5]

    Syed.Jaffar.Hussain. Expert Oracle RAC 12c[M]. Apress, 2013, 8.

    [6] 袁勇,简岩,孙小林. 基于Oracle RAC的数字校园平台架构分析[J]. 江苏科技信息, 2017(8):42-44.
    [7] 王启明,王健,杨小林. 企业级核心应用跨平台无缝迁移[J]. 铁路计算机应用, 2017, 26(1):43-46.
    [8] 吕元海,孙江辉,马龙. 基于Oracle RAC的校园网数据库集群系统设计与实现[J]. 现代电子技术, 2016, 39(4):72-74.
    [9] 陈正举.ORACLERAC在共享数据库平台系统里的应用[J]. 计算机光盘软件与应用, 2014, 17(21):95-97.
    [10] 徐曼.Oracle数据库的备份与恢复[J]. 铁路计算机应用, 2016, 25(3):46-49.
    [11] 闫黎. 基于Oracle RAC的数据库架构分析与企业应用[J]. 计算机系统应用, 2013, 22(11):200-203.
  • 期刊类型引用(1)

    1. 张金良,甄文杰. 1853—2024年印度铁路网络通达性格局时空演变研究. 测绘科学. 2025(02): 103-113 . 百度学术

    其他类型引用(0)

计量
  • 文章访问数:  87
  • HTML全文浏览量:  1
  • PDF下载量:  10
  • 被引次数: 1
出版历程
  • 收稿日期:  2018-06-20

目录

/

返回文章
返回