Oracle 连接错误故障排除产品:Tableau Desktop, Tableau Server版本:All上次修改日期:24 Aug 2015Oracle 驱动程序需要具有唯一格式的特定连接语句。
然而,可能并不总是需要TNSNames.ora 文件。
例如,如果仅安装了 Tableau 提供的 Oracle 文件,且不具有独立的 Oracle 客户端。
Oracle 错误消息涉及 TNSNames.ora 文件。
通常,纠正“高级 Oracle 连接”对话框中的路由或命名语法,或者使用 .WORLD 数据库全名,即可解决大部分 Oracle 连接问题。
如果连接错误需要进一步进行故障排除,请参阅下面列出的 4 种常见连接错误。
•ORA-03113:通信信道上的文件结尾•ORA-12154:TNS:无法解决指定的连接标识符 HOST 值不正确或者全局名称不正确或未知的问题•ORA-12514:TNS 侦听器当前无法识别连接描述符中请求的服务SERVICE 值不正确•ORA-12541:TNS:无侦听器PORT 值不正确•ORA-00932:数据类型不一致ORA-03113:通信信道上的文件结尾ORA-03113 是任何干扰 Oracle 会话的问题的全捕获类型错误。
造成该错误的原因可能有很多。
请参阅下表,了解故障排除指南。
•请参阅特定于此错误的 Oracle 文档:我的 Oracle 支持。
o请参阅 Oracle 的 B 常见错误故障排除页面。
•Oracle 建议您检查网络问题并审查 SQL*Net 设置。
•如果连接到 Oracle 9.2.0.5,则在很多情况下,造成此错误的主要原因是 Oracle 错误 3010227。
请要求 Oracle 数据库管理员应用 Oracle修补程序 9.2.0.6 或适合您服务器的另一个修补程序。
•将 Oracle 初始化参数“STAR_TRANSFORMATION_ENABLED”设置为FALSE。
•或者,如果您想进一步测试此问题,请遵循下面列出的可选过程。
Step 1从 Tableau Desktop 开始页面,选择“连接到数据”。
Step 2对于 Tableau Desktop 8.2 及更高版本,请在“连接”页面,单击“Oracle”。
对于 Tableau Desktop 8.1 及更早版本,请在“连接到数据”页面,单击“Oracle”。
Step 3对于 Tableau Desktop 8.2 及更高版本,请连接到 Oracle 服务器,然后单击“确定”。
对于 Tableau Desktop 8.1 及更早版本,请遵循“Oracle 连接”对话框中的步骤完成连接。
有关完成连接步骤的更多信息,请参阅 Desktop 帮助中的Oracle 数据库主题。
Step 4对于 Tableau Desktop 8.2 及更高版本,请执行以下操作:1.在联接区域,悬停在自定义 SQL 表上,直到显示编辑图标,然后单击该图标。
2.复制“编辑自定义SQL”对话框中的查询。
对于 Tableau Desktop 8.1 及更早版本,请执行以下操作:1.在步骤 5 下,从构架中选择一个表或视图,然后选择“自定义SQL”。
2.复制步骤 5 文本框中显示的查询。
Step 5在连接到此数据库的 SQL 会话中,粘贴并运行查询。
预期响应为错误ORA-7445:遭遇异常:核心转储,确认问题为预期的 ORA-3113。
ORA-12154:TNS:无法解析指定的连接标识符透明网络底层 (TNS) 无法解析服务名称时,出现 ORA-12154。
服务名称在TNSNames.ora 文件中指定,该文件位于 %ORACLE_HOME%\network\admin\ 文件夹下。
通常,TNSNames.ora 文件中的信息不正确时会出现此错误。
例如:•数据库名称不包含 .world 扩展名。
•SERVICE_NAME 或 HOST 变量不正确。
要解决此问题,请按照下面列出的顺序,尝试以下 3 种故障排除选项中的其中一种。
•选项 1:编辑 TNSNames.ora•选项 2:确保 Tableau Server 运行身份用户帐户具有访问TNSNames.ora 的权限(仅限 Tableau Server)•选项 3:验证 TNSNames.ora 中的所有信息是否正确无误选项 1:编辑 TNSNames.ora提供数据库全名,包括位于以下两个位置的 .world 扩展名:•TNSNnames.ora 文件。
以及•(Tableau Desktop 8.2 及更高版本)“连接”页面的“服务器”文本框。
•(Tableau Desktop 8.1 及更早版本)当您连接到 Tableau 中的数据源时,位于“Or acle 连接”对话框的“步骤1”文本框中。
选项 2:确保 Tableau Server 运行身份用户帐户具有访问 TNSNames.ora 的权限(仅限 Tableau Server)如果安装了 Tableau Server,请完成以下过程以确保 Tableau Server 运行身份用户帐户具有访问 TNSNames.ora 文件位置的权限。
如果运行身份用户帐户不具有权限,则 Tableau Server 无法访问 Oracle 数据源详细信息。
Step 1验证计算机上 TNSNames.ora 文件或者等效的 SQLNET.ora 或 LDAP.ora 文件的位置。
注意:默认情况下,TNSNames.ora 文件位于 <oracle 目录>\network\admin 目录下。
例如,C:\Oracle_Client\network\admin。
Step 2确认 TNS_ADMIN 变量指向步骤 1 中描述的一个或多个文件的位置。
注意:要检查 TNS_ADMIN 变量,请单击“开始”按钮,然后选择“控制面板”>“系统”。
单击“高级系统设置”,单击“高级”标签,然后单击“环境变量”按钮。
Step 3在Windows“开始”按钮上,选择“Tableau Server <版本>”>“配置Tableau Server”。
Step 4在服务器运行身份用户下,复制“用户”文本框中的信息。
Step 5转到 TNSNames.ora 文件所在的文件夹。
Step 6右键单击文件夹并选择“属性”。
单击“安全”标签,然后单击“编辑”按钮。
Step 7在组或用户名称下,单击“添加”按钮。
Step 8在“输入要选择的对象名称”文本框中,粘贴在步骤 6 中复制的运行身份用户帐户的详细信息。
Step 9完成后,单击“确定”。
Step 10在“权限”区域,确保选中“完全控制”和“修改”复选框。
Step 11单击“确定”以关闭对话框。
有关此错误的更多信息,可参阅以下外部资源:•ORA-12154•Sqlnet.ora选项 3:验证 TNSNames.ora 中的所有信息是否正确无误如果以上故障排除步骤未解决问题,请继续阅读并完成过程,以验证TNSNames.ora 文件中的其他信息是否正确提供。
TNSNames.ora 文件如下所示:QAORCL10.world =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = MY_HOST_NAME)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = MY_SERVICE_NAME)))文件中的三个变量分别是HOST、PORT和SERVICE_NAME。
从 TNSNames.ora 文件中复制这些变量,并保持它们处于可用状态。
这些变量区分大小写。
以下步骤描述如何为您的连接提供这些变量。
Step 1从 Tableau Desktop 开始页面,选择“连接到数据”。
Step 2对于 Tableau Desktop 8.2 及更高版本,请在“连接”页面,单击“Oracle”。
对于 Tableau Desktop 8.1 及更早版本,请在“连接到数据”页面,单击“Oracle”。
Step 3(Tableau Desktop 8.1 及更早版本)在“Oracle 连接”对话框中,单击“高级”。
Step 4对于 Tableau Desktop 8.2 及更高版本,请提供 TNSNames.ora 文件中的以下信息:•在服务器名称文本框中,键入 HOST 名称。
•在服务文本框中,键入 SERVICE_NAME。
•在端口文本框中,键入 PORT 编号。
•指定是使用 Windows 身份验证还是特定的用户名和密码,然后单击“连接”。
对于 Tableau Desktop 8.1 及更早版本,请在“高级 Oracle 连接”对话框中,提供 TNSNames.ora 文件中的以下信息:•在服务器名称文本框中,提供 HOST 名称。
•在服务名称文本框中,提供 SERVICE_NAME。
•在端口文本框中,提供 PORT 编号。
•完成后,单击“确定”。
注意:变量区分大小写。
Step 5对于 Tableau Desktop 8.2 及更高版本,请从“构架”下拉列表中选择一个构架,将表拖到联接区域,然后单击“转到工作表”。
对于 Tableau Desktop 8.1 及更早版本,请遵循“Oracle 连接”对话框中的其他步骤,以完成连接。
•在步骤 5 下,保持选择“单个表”,然后从构架中选择一个表或视图。
•在步骤 6 下,您可以编辑默认的连接名称。
•完成后,单击“确定”。
Step 6完成设置 Oracle 连接以使用 TNSNames.ora一文中的步骤。
重要信息:•确保以 ASCII 编码保存您使用的 TNSNames.ora 文件。
使用除 ASCII 之外的任何其他编码(例如 UTF-8 或 Unicode)会导致 ORA-12154 错误消息。
•即使已在计算机上安装 Oracle 软件,通常也需要进行这些步骤。
Step 7从 Tableau 驱动程序页面下载适当的 Oracle 驱动程序并安装。
即使您的计算机安装了其他 Oracle 驱动程序,也可能与 Tableau 不兼容并且需要“驱动程序”页面上指定的版本。
ORA-12514:TNS 侦听器当前无法识别连接描述符中请求的服务通常,SERVICE 值不正确时出现此错误。
要解决此问题,需找出正确的 SERVICE 值,打开位于 %ORACLE_HOME%\network\admin\ 文件夹下的 TNSNames.ora 文件。
必要时,参阅 ORA_12154 下的步骤。