Oracle数据库 加入小组

59个成员 56个话题 创建时间:2021-01-15

【故障处理】使用Oracle透明网关,tmp目录大量生成文件

发表于2021-03-25 10551次查看

【故障描述】

客户遇到一个问题,在hpunix环境下部署了连接sqlserver的透明网关,但在/var/tmp总生成文件   需要隔一段时间清理一下空间。截图如下

而生成的这些文件也都是二进制的文件

相关进程截图如下:

【故障分析】

再遇到复杂查询时,ODBC会生成临时文件,如果没有用于指定tmp文件位置的连接参数。这些文件的位置由OS环境变量控制。
 
在Windows上,ODBC驱动程序将使用 GetTempPath() 来获取文件的目录。

连接:
http://msdn.microsoft.com/zh-CN/library/aa364992(v=VS.85).aspx
 
GetTempPath函数按以下顺序检查是否存在环境变量,并使用找到的第一个路径:
1. TMP环境变量指定的路径。
2. TEMP环境变量指定的路径。
3. USERPROFILE环境变量指定的路径。
4. Windows目录。
GetTempFileName用于创建前缀为“ qe”的文件名
 
 在UNIX上,ODBC驱动程序将使用 tempnam() 创建前缀为'qe'的临时文件。如果设置了环境变量QE_TMPDIR,则将在此目录中创建文件(如果适用)。否则,该功能将选择放置文件的位置。
 
链接:
Linux上的手册页
 
tempnam() 函数允许用户控制目录的选择。 dir参数指向要在其中创建文件的目录的名称。如果dir是空指针或指向不是适当目录名称的字符串,则应使用在<stdio.h>标头中定义为P_tmpdir的路径前缀。如果该目录不可访问,则可以使用实现定义的目录。

例如该目录可以是/ usr / var或/ tmp ...

【故障解决】

Oracle发布了一个Patch来解决这个BUG,Patch 15842952: HEAVY USAGE OF /TMP FILES RUNNING COMPLEX QUERIES,针对 12.1.0.1.0

【参考文档】

Oracle Database Gateway For SQL Server Writing To /tmp (Doc ID 2318917.1)

Heavy Usage of /TMP Space with DG4MQL 11.2 (Doc ID 1606928.1)

https://knowledgebase.progress.com/articles/Article/000024815?q=%2Ftmp&l=en_US&c=Product_Group%3ADataDirect&type=Article__kav,Critical_Alert__kav,Product_Alert__kav,Support_Information__kav&fs=Search&pn=1

发表回复
你还没有登录,请先 登录或 注册!