王 辉
中国石化河南油田分公司研究院,河南南阳 473132
Oracle数据库与油藏模拟的集成应用研究
王 辉
中国石化河南油田分公司研究院,河南南阳 473132
随着我国部分油田进入高含水开发后期,油藏数值模拟技术的应用也越来越深入细致,而由此需要处理的数据量也越来越大、越来越复杂。本文通过对数据库与数值模拟工作的结合应用问题加以研究探索,利用PRO*C和Oracle数据库技术在Unix平台下对两方面的结合加以研究,从而可以提高生产、科研工作效率。
油藏模拟;PRO*C;oracle数据库
如何提高油田最终采收率,寻找剩余油分布,寻求最佳布井方案,获得好的注聚效果以及最佳的蒸汽吞吐周期,得到高的投资回报率等等,这一切的一切离不开油藏数值模拟技术,它也是国内外油田开发中后期寻找剩余油分布指导方案部署通用和惯用的技术手段。油田开发数据库建设已经进行了很多年,在科研生产中的应用叶越来越多,整个系统逐渐成熟起来,将之与数值模拟技术的结合应用前景广阔。
按照传统的UNIX交互界面模型进行设计,用主菜单加多分支判断语句switch连接而成。ORACLE数据库查询程序用Pro*C语言编制,由静态数据查询、动态数据查询、生成ECLIPSE文件、生成CMG文件、数模成果建档入库、数模成果浏览查询、用户使用帮助等几个模块组成。
建立于ORACLE数据库连接的设计思路的设计过程中,采用了经典的设计方法,其设计思路与流程如下主程序与连接服务器模块数据通过输入数据库服务器名、unix用户名、ORACLE用户名、ORACLE用户口令dbasepw,连接服务器执行码以及数据查询执行码,连接到ORACLE数据库发送执行码信息,结果返回到log.msg记录中,以判定是否正确。
2.3.1 查询子模块设计
查询数据的模块,包括动态数据查询和静态数据查询以及对专门的数模成果库的查询,3个子功能的设计思路是一样的,数据查询子程序的职能是利用开发数据库系统用户sjk查询数据库的表数据。该数据查询子程序由3个独立的Pro*C程序组成,分别查询4个表:daa02、daa05、dba04、dba05。表数据由以井名为代表的数据记录组成,一口井一个记录,一个记录由表示井的与表属性相关数据组成。因此数据查询时要给出表名、井名以及数据名。
2.3.2 文件生成模块设计
文件生成模块由主程序和数据予处理子模块组成,它的职能是分别生成CMG、VIP、ECLIPSE数模软件的静态、动态输入数据文件。由于ECLIPSE等数模软件数据的特殊性,首先要对这些数据格式进行分析,,虽然3个数模软件的动态数据格式不同,但它们的数据组成规律相同,都是以井为一数据段且按顺序排列。针对各种数模软件的数据格式类型,调整转换机制,生成数模软件的静态、动态输入数据文件。虽然3个数模软件的动态数据格式不同,但它们的数据组成规律相同,都是以井为一数据段且按顺序排列。针对各种数模软件的数据格式类型,调整转换机制,生成所需的静态、动态输入数据文件。
数模成果是指应用不同数模软件完成历史拟合以及各开发方案预测的计算结果,该结果由一系列数据文件组成。针对数模成果的这种特点,确定了数模成果数据库的性质,即以软件名、数模区块名分类存放的文件库,成果数据的录入、浏览以及提取以文件组的形式进行。
利用SUN的Solaris操作系统命令创建数模成果数据库:
1)在数模成果数据库的home目录/SMSJK下创建一个成果录入记录文件;
2)建立文档说明文件;
3)在数模成果数据录入时自动将系统时间加在文件后如sh320091120,用来避免文件名重名造成的错误。
在Solaris系统终端对话框中,命令提示符下输入/usr/smpt/ bin/smjcyy弹出菜单,在其中选择功能模块,如图1所示。
在界面继续选择所需使用的功能选项,如选择1,代表生成ECLIPSE文件选项,在提示符处输入所要处理的文件名,程序查询模块会向数据库提交查询,在返回的数据中,程序控制模块会对输出数据的进行参数控制, 包括输出那些时间的数据, 那些关键字参数的数据,以及对数据的处理、挑选可用数据。输出的结果文件会保存在数模成果库中,以便查询使用。如图2所示。
图2
通过本项目的研究在一定程度上解决了长期以来油藏数值模拟的前期数据准备工作效率低下的问题,直接提高工作效率几十倍。实现了数模数据资源的高度互补与共享,使数模数据资源的再次利用更为方便快捷,这又间接提高工作效率。通过本项目的研究成果来看,对ECLIPSE 软件计算的油气田开发指标预测数据进行此类处理是非常有意义的。
[1]陈月明.油藏数值模拟基础.石油工业出版社,1989,9.
[2][美]富尔斯汀.龚波,张平,潘显俊,译.ORACLE PL/SQL最佳实践[M].1版.机械工业出版社,2008,3.
TE319
A
1674-6708(2010)24-0139-02