通过使用 SAP LT Replication Server 应用日志记录和 Google Cloud 日志查看错误和日志消息,您可以排查 BigQuery Connector for SAP 2.7 版(最新版)的问题。
BigQuery Connector for SAP 会将所有错误发送到标准 SAP LT Replication Server 应用日志。
您还可以使用 SAP LT Replication Server 调试来找出问题。
问题排查概览
排查 BigQuery Connector for SAP 的问题时,您可能需要注意多个不同方面,具体取决于您调查的问题领域或范围:
- 基础架构,例如网络、硬件或操作系统。
- SAP 软件,包括源服务器和 SAP LT Replication Server。
- BigQuery Connector for SAP。
- BigQuery(包括 BigQuery API 和目标表)。
涉及合适的团队
在排查问题时,您需要做的第一件事是确定问题的领域和范围。
要解决问题,您可能需要与多个团队合作,例如 Basis 管理员、SAP LT Replication Server 管理员、DBA 或 Google Cloud 安全管理员。
尽早联系相应的团队以及准备好相应的技能可以帮助您更快地解决问题。
确定根本原因
您需要确定问题的根本原因,并确保您认为可能的原因实际上不是其他问题的根本原因。
SAP 系统紧密集成,但可以将日志和跟踪记录写入多个不同位置的文件。排查问题时,您需要确定要查看的正确日志和跟踪记录文件。
检查软件要求和前提条件
确保所有系统软件都在所需的最低版本上运行,并且满足 BigQuery Connector for SAP 的所有前提条件。
如需了解 BigQuery Connector for SAP 安装前提条件,请参阅:
如果 SAP LT Replication Server 在 Compute Engine 虚拟机上运行,请参阅前提条件。
如果 SAP LT Replication Server 运行在 Google Cloud 外部的主机上,请参阅前提条件。
如需了解 BigQuery Connector for SAP 软件要求,请参阅软件要求。
如果您使用的是旧版 ECC 软件,请确保 SAP LT Replication Server 版本与您的 ECC 版本兼容。如需了解详情,请参阅 SAP 说明 2577774 - 源和目标系统的版本兼容性 - SLT。
对于 SAP 源系统和 SAP LT Replication Server,请确保为基于 ABAP 的迁移和复制技术实施所有更正说明。如需了解详情,请参阅 SAP 说明 3016862 - DMIS 说明分析器,其中包含基于 ABAP 的迁移和复制技术的隔离场景。
阅读 SAP 支持文档
如果您拥有 SAP 用户账号,则可以通过阅读 SAP ONE Support Launchpad 中提供的 SAP 说明和 SAP 知识库文章,找到许多 SAP 软件问题的解决方法。
日志记录
BigQuery Connector for SAP 将其日志消息发送到 SAP LT Replication Server,您可以在其中的 SAP LT Replication Server 应用日志里查看这些日志消息。
这些消息包括 BigQuery Connector for SAP 从 BigQuery API 接收的消息。
您可以在 Google Cloud 控制台中查看常规 BigQuery 日志消息。
SAP LT Replication Server 应用日志
所有错误消息都会保存到标准 SAP LT Replication Server 应用日志。检查应用日志以分析问题的根本原因并进行问题排查。
您可以通过运行事务 LTRC
、打开配置并选择应用日志来显示特定于 SAP LT Replication Server 配置的应用日志。
显示日志后,选择一个表行,然后可以点击按钮来显示任何错误消息。如果点击某复制的应用日志标签页,则可以过滤该复制的相关运行时日志消息。
BigQuery Connector for SAP 生成的消息
在系统将记录发送到 BigQuery 之前,BigQuery Connector for SAP 中出现的任何错误都会添加 /GOOG/SLT
前缀。
从 BigQuery API 返回的任何错误都以 /GOOG/MSG
为前缀。其中包括所有 HTTP 错误。
如果错误没有以上述任何值作为前缀,则说明错误是由 SAP LT Replication Server 发出的。
BigQuery 日志
BigQuery 会将各种日志条目写入 Google Cloud 控制台中的 Cloud Logging。
如需查看 BigQuery 日志条目,请执行以下操作:
在 Google Cloud 控制台控制台中,打开“日志记录”:
在查询编辑器中,指定 BigQuery 资源。例如:
resource.type="bigquery_dataset"
如需详细了解 BigQuery 日志,请参阅日志。
HTTP 跟踪记录
排查错误时,您可以在事务 SMICM
或 ST05
中启用 HTTP 跟踪记录。
为了限制对性能的影响,请在完成后立即停用 HTTP 跟踪记录。
调试
如果您拥有所需的授权,则可以调试 BigQuery Connector for SAP 的业务插件 (BAdI) 代码。
如需调试 BAdI 代码,请执行以下操作:
如果您还没有调试 BAdI 代码所需的 SAP 授权,请向 SAP 管理员申请。
如需启用调试,请在 SAP GUI 的事务条目字段中输入
/h
,然后按Enter
。在设置菜单中,选择更改 Debugger 配置文件/设置 (Change Debugger Profile/Settings)。
在 Debug Modes(调试模式)下,确保选中 System Debugging(系统调试)。
根据需要在代码中设置外部断点。
监控
您可以监控从 SAP 数据源到目标 BigQuery 表的数据路径中的几个不同点,包括:
- 基础架构 - 网络、硬件和操作系统
- SAP 数据库层
- SAP 应用层
- BigQuery Connector for SAP
- BigQuery
如需详细了解每个点的监控,请参阅 BigQuery Connector for SAP 操作指南。
数据协调
您可以在以下三个点检查记录计数:
- 源表
- 事务
LTRC
中的 SAP LT Replication Server 加载或复制统计信息 - BigQuery 目标表
您可以使用复制验证工具来检查和比较记录计数,也可以通过执行 SQL 查询来自行检索记录。
如需详细了解数据协调,请参阅 BigQuery Connector for SAP 操作指南。
常见的配置问题
本部分介绍在 BigQuery Connector for SAP 的初始设置和配置期间可能出现的常见问题的解决方法。
SAP LT Replication Server 对数据库数据类型的支持
根据 SAP 软件版本,SAP LT Replication Server 可能不支持源数据库中的某些数据类型。如需了解详情,请参阅 SAP 说明 1605140 - SAP Landscape Transformation Replication Server (SLT) 的“重要注意事项”部分。
问题:访问令牌的操作系统命令在 OS LT Replication Server 中无法运行
问题:您创建了一条操作系统 (OS) 命令来输出访问令牌,但它无法在 SAP LT Replication Server 上运行。
原因:此问题可能由多个问题导致的,但最可能的原因是未正确配置操作系统命令所需的环境变量。
解决方法:确认操作系统命令已正确配置。
尝试以 SID_LCadm
身份从操作系统以及从 SAP 事务 SM69
运行 printenv
命令,并比较输出。如果事务 SM69
中返回的变量不完整,请尝试重启 SAP LT Replication Server 来注册变量。
问题:/GOOG/MSG: 400 - Bad Request Request contains an invalid argument
问题:数据转移失败,并显示错误消息 /GOOG/MSG: 400 - Bad
Request Request contains an invalid argument
。
原因:对于在 Google Cloud 上运行的 SAP 工作负载,客户端密钥表 /GOOG/CLIENT_KEY
中使用的访问权限范围无效。
解决方法:要解决此问题,请按以下步骤操作:
在 SAP GUI 中,输入以
/n
开头的/GOOG/SLT_SETTINGS
事务:/n/GOOG/SLT_SETTINGS
对于在事务
LTRC
中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。输入事务
SM30
,然后打开表/GOOG/CLIENT_KEY
。对于您在前面的步骤中记下的 Google Cloud Key Name 值,请确保 Scope 字段的值与在
/GOOG/CLIENT_KEY
中指定访问权限设置中提到的访问权限范围匹配。 确保该字段中未输入空格。重新运行复制。
问题:/GOOG/MSG : 400 - ICM_HTTP_CONNECTION_FAILED
问题:数据转移失败,并显示错误消息 /GOOG/MSG : 400 - ICM_HTTP_CONNECTION_FAILED
。
原因:在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,路径前缀的值或目标主机字段不正确。
解决方法:要解决此问题,请按以下步骤操作:
在 SAP GUI 中,输入以
/n
开头的/GOOG/SLT_SETTINGS
事务:/n/GOOG/SLT_SETTINGS
对于在事务
LTRC
中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。输入事务
SM30
,然后打开表/GOOG/SERVIC_MAP
。对于您在前面的步骤中记下的 Google Cloud Key Name 值,请记下 RFC 目标名称。
输入
SM59
事务,然后完成以下步骤:对于连接到 BigQuery 的 RFC 目标,请确保路径前缀字段值为
/bigquery/v2/
。对于连接到 BigQuery 的 RFC 目标,请确保目标主机字段值为
bigquery.googleapis.com
。对于连接到 IAM 的 RFC 目标,请确保路径前缀字段值为
/v1/
。对于连接到 IAM 的 RFC 目标,请确保目标主机字段值为
iamcredentials.googleapis.com
。
重新运行复制或初始加载。
问题:/GOOG/MSG : 401 - Unauthorized Request is missing required authentication credential. Expected OAuth 2 access to ken, login coo
问题:数据转移失败,并显示错误消息 /GOOG/MSG : 401 -
Unauthorized Request is missing required authentication credential. Expected
OAuth 2 access to ken, login coo
。
原因:HTTP 端口配置缺失。
解决方法:您必须在 SAP 系统中创建并激活 HTTP 和 HTTPS 端口。
虚拟机元数据存储在元数据服务器上,该元数据服务器只能通过 HTTP 端口访问。因此,您必须确保 HTTP 端口以及 HTTPS 端口均已创建并且处于活跃状态,才能访问虚拟机元数据。
如需解决此问题,请完成以下步骤:
在 SAP GUI 中,输入事务代码
SMICM
。在菜单栏上,点击转到 > 服务。
确保 HTTP 和 HTTPS 端口已创建且处于活跃状态。Actv 列中的绿色对勾标记表示 HTTP 和 HTTPS 端口处于活跃状态。
重新运行复制。
如需了解如何配置 HTTP 和 HTTPS 端口,请参阅 ICM 中的 HTTP(S) 设置。
问题:/GOOG/MSG : 401 - ICM_HTTP_CONNECTION_BROKEN
问题:在初始加载或复制期间,在 LTRC 事务中,数据传输失败并显示错误消息 /GOOG/MSG : 401 - ICM_HTTP_CONNECTION_BROKEN
。
原因:对于在 Google Cloud 上运行的 SAP 工作负载,在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,SSL 未激活。
解决方法:要解决此问题,请按以下步骤操作:
在 SAP GUI 中,输入以
/n
开头的/GOOG/SLT_SETTINGS
事务:/n/GOOG/SLT_SETTINGS
对于在事务
LTRC
中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。输入事务
SM30
,然后打开表/GOOG/SERVIC_MAP
。对于您在前面的步骤中记下的 Google Cloud Key Name 值,请记下 RFC 目标名称。
输入事务
SM59
,然后对您在上一步中记下的 RFC 目标执行以下步骤:进入 Logon and Security(登录和安全)标签页。
对于 SSL Certificate(SSL 证书)字段,请确保已选中 DFAULT SSL Client (Standard)(默认 SSL 客户端 [标准])选项。
对于 Service No.(服务编号)字段,确保指定了值
443
。
重新运行复制。
问题 /GOOG/MSG: 110 - HTTPIO_PLG_CANCELED
问题:在初始加载或复制期间,在 LTRC 事务中,数据传输失败并显示错误消息 /GOOG/MSG: 110 - HTTPIO_PLG_CANCELED
。
原因:HTTP 端口配置缺失。
解决方法:您必须在 SAP 系统中创建并激活 HTTP 和 HTTPS 端口。
虚拟机元数据存储在元数据服务器上,该元数据服务器只能通过 HTTP 端口访问。因此,您必须确保 HTTP 端口以及 HTTPS 端口均已创建并且处于活跃状态,才能访问虚拟机元数据。
如需解决此问题,请完成以下步骤:
在 SAP GUI 中,输入事务代码
SMICM
。在菜单栏上,点击转到 > 服务。
确保 HTTP 和 HTTPS 端口已创建且处于活跃状态。Actv 列中的绿色对勾标记表示 HTTP 和 HTTPS 端口处于活跃状态。
重新运行复制。
如需了解如何配置 HTTP 和 HTTPS 端口,请参阅 ICM 中的 HTTP(S) 设置。
问题:/GOOG/MSG: 403 - SSL is required to perform this operation
问题:数据转移失败,并显示错误消息 /GOOG/MSG: 403 - SSL is
required to perform this operation
。
原因:对于在 Google Cloud 上运行的 SAP 工作负载,在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,SSL 未激活。
解决方法:要解决此问题,请按以下步骤操作:
在 SAP GUI 中,输入以
/n
开头的/GOOG/SLT_SETTINGS
事务:/n/GOOG/SLT_SETTINGS
对于在事务
LTRC
中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。输入事务
SM30
,然后打开表/GOOG/SERVIC_MAP
。对于您在前面的步骤中记下的 Google Cloud Key Name 值,请记下 RFC 目标名称。
输入事务
SM59
,然后对您在上一步中记下的 RFC 目标执行以下步骤:进入 Logon and Security(登录和安全)标签页。
对于 SSL Certificate(SSL 证书)字段,请确保已选中 DFAULT SSL Client (Standard)(默认 SSL 客户端 [标准])选项。
对于 Service No.(服务编号)字段,确保指定了值
443
。
重新运行复制。
问题:/GOOG/MSG: 403 - Request had insufficient authentication scopes
问题:数据转移失败,并显示错误消息 /GOOG/MSG: 403 - Request
had insufficient authentication scopes
。
原因:对于在 Google Cloud 上运行的 SAP 工作负载,在表 /GOOG/CLIENT_KEY
中,指定的服务账号没有访问 BigQuery 所需的范围。
解决方法:要解决此问题,请按以下步骤操作:
在 SAP GUI 中,输入以
/n
开头的/GOOG/SLT_SETTINGS
事务:/n/GOOG/SLT_SETTINGS
对于在事务
LTRC
中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。输入事务
SM30
,然后打开表/GOOG/CLIENT_KEY
。对于您在前面的步骤中记下的 Google Cloud Key Name 值,请确保为 Service Account Name 字段指定的值为
default
。在 Google Cloud 控制台中,前往 Compute Engine 虚拟机实例页面。
点击托管 SAP LT Replication Server 的虚拟机实例。
点击停止,然后按照说明停止虚拟机实例。
点击修改,修改服务账号访问权限范围,以启用对 BigQuery 的访问权限,然后点击保存。
点击启动/恢复以重启虚拟机实例。
确保您的 SAP LT Replication Server 正在运行。
重新运行复制。
问题:/GOOG/MSG: 403 - Access Denied: Dataset PROJECT_ID:DATASET_NAME: Permission bigquery.tables.created denied on dataset
问题:数据转移失败,并显示错误消息 /GOOG/MSG: 403 -
Access Denied: Dataset PROJECT_ID:DATASET_NAME: Permission
bigquery.tables.created denied on dataset
。
原因:对于在 Google Cloud 上运行的 SAP 工作负载,在表 /GOOG/CLIENT_KEY
中,指定的服务账号没有访问 BigQuery API 所需的权限。
解决方法:要解决此问题,请按以下步骤操作:
在 SAP GUI 中,输入以
/n
开头的/GOOG/SLT_SETTINGS
事务:/n/GOOG/SLT_SETTINGS
对于在事务
LTRC
中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。输入事务
SM30
,然后打开表/GOOG/CLIENT_KEY
。对于您在前面的步骤中记下的 Google Cloud Key Name 值,请记下为 Service Account Name 字段指定的值。
在 Google Cloud 控制台中,转到 Identity and Access Management 服务账号页面。
选择您在前面的步骤中记下的服务账号。
确保服务账号具有 BigQuery Connector for SAP 访问 BigQuery 所需的 IAM 角色,如 Google Cloud Identity and Access Management 中所述。
重新运行复制。
问题:/GOOG/MSG: 404 - Not Found
问题:数据转移失败,并显示错误消息 /GOOG/MSG: 404 - Not
Found
。
原因:在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,路径前缀不正确。
解决方法:要解决此问题,请按以下步骤操作:
在 SAP GUI 中,输入以
/n
开头的/GOOG/SLT_SETTINGS
事务:/n/GOOG/SLT_SETTINGS
对于在事务
LTRC
中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。输入事务
SM30
,然后打开表/GOOG/SERVIC_MAP
。对于您在前面的步骤中记下的 Google Cloud Key Name 值,请记下 RFC 目标名称。
输入
SM59
事务,然后完成以下步骤:- 对于连接到 BigQuery 的 RFC 目标,请确保路径前缀字段值为
/bigquery/v2/
。 - 对于连接到 IAM 的 RFC 目标,请确保路径前缀字段值为
/v1/
。
- 对于连接到 BigQuery 的 RFC 目标,请确保路径前缀字段值为
重新运行复制。
问题:/GOOG/MSG: 404 - Table PROJECT_ID:DATASET_NAME.TABLE_NAME not found
问题:数据转移失败,并显示错误消息 /GOOG/MSG: 404 -
Table PROJECT_ID:DATASET_NAME.TABLE_NAME not
found
。
原因:在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,您为 Target Host 字段指定的值与 Cloud DNS 中的任何 DNS 名称都不匹配。
解决方法:要解决此问题,请按以下步骤操作:
在 SAP GUI 中,输入事务代码
SE38
,然后打开报告/GOOG/R_SLT_SETTINGS
。对于运行的
LTRC
事务,请打开批量传输 ID,然后记下 Google Cloud Key Name(Google Cloud 键名称)列中的值。输入事务
SM30
,然后在显示模式下打开表/GOOG/CLIENT_KEY
。使用您在前面的步骤中记下的 Google Cloud Key Name 搜索表
/GOOG/SERVIC_MAP
,然后记下指定的 RFC 目标名称。输入事务代码
SM59
。对于用于连接到 BigQuery 和 IAM API 的 RFC 目标,请记下为 Target Host 字段指定的值。
在 Google Cloud 控制台中,转到网络服务 Cloud DNS 页面。
点击包含 Private Service Connect 端点的 DNS 记录的专用可用区,您创建的这些端点允许 BigQuery Connector for SAP 以私密方式连接到 BigQuery 和 IAM API。
确保您在前面的步骤中记下的每个目标主机值都有一条 DNS 记录,其中包含匹配的 DNS 名称。
重新运行复制。
问题:/GOOG/MSG: 404 - Not Found Requested entity was not found
问题:数据转移失败,并显示错误消息 /GOOG/MSG: 404 - Not Found Requested entity was not found
。
原因:对于在 Google Cloud 上运行的工作负载,客户端密钥表 /GOOG/CLIENT_KEY
中使用的服务账号无效。
解决方法:要解决此问题,请按以下步骤操作:
在 SAP GUI 中,输入以
/n
开头的/GOOG/SLT_SETTINGS
事务:/n/GOOG/SLT_SETTINGS
对于在事务
LTRC
中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。输入事务
SM30
,然后打开表/GOOG/CLIENT_KEY
。对于 Service Account Name 字段,请确保指定的值是创建服务账号步骤中为 BigQuery Connector for SAP 创建的服务账号的电子邮件地址。
重新运行复制。
问题:/GOOG/MSG: 418
- 数据传输失败,并显示来自 SAP 的错误消息
问题:数据传输失败,并显示来自 SAP 的错误消息,例如 No OS command defined for the key
。
原因:对于不在 Google Cloud 上运行的 SAP 工作负载,此问题可能由以下情况引起:
输出访问令牌的操作系统命令未正确配置
原因:此问题可能由以下情况引起:
您已创建操作系统 (OS) 命令以输出访问令牌,但尚未将其添加到客户端密钥表
/GOOG/CLIENT_KEY
的访问权限设置中。您在事务
SM69
中创建的操作系统命令无法从 Google Cloud 检索访问令牌。
解决方法:在客户端键表 /GOOG/CLIENT_KEY
中,对于字段命令名称,确保输入的值与您创建的用于打印访问令牌的命令的名称匹配。
RFC 未正确配置
原因:对于在 Google Cloud 上运行的 SAP 工作负载,在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,Target Host 字段值不正确。
解决方法:如需解决此问题,请执行以下操作:
在 SAP GUI 中,输入事务
SE38
,然后打开报告/GOOG/R_SLT_SETTINGS
。对于运行的
LTRC
事务,请打开批量传输 ID 并记下 Google Cloud Key Name(Google Cloud 键名称)的值。输入事务
SM30
,然后在显示模式下打开表/GOOG/CLIENT_KEY
。使用您在前面的步骤中记下的 Google Cloud Key Name 搜索表
/GOOG/SERVIC_MAP
,然后记下指定的 RFC 目标名称。输入事务代码
SM59
,然后打开您在前面的步骤中记下的 RFC 目标。对于 Target Host 字段,请更正指定的网址。
重新运行复制。
问题:/GOOG/MSG: 413 - Request Entity Too Large
问题:数据转移失败,并显示错误消息 /GOOG/MSG: 413 - Request
Entity Too Large
。
原因:当 BigQuery Connector for SAP 发送的区块的字节大小超过 BigQuery 接受的 HTTP 请求的最大字节大小时,就可能出现此问题。如果表记录的大小或记录包含的数据量导致区块的字节大小超过 BigQuery 限制,则可能会出现此问题。
解决方法:减小 BigQuery Connector for SAP 为您的表发送的区块的大小。您可以通过运行事务 /GOOG/SLT_SETTINGS
来调整数据块大小,也可以启用动态数据块大小以自动调整数据块大小。如需了解详情,请参阅以下主题:
问题:/GOOG/MSG: 503 - HTTP Communication Failure - SSL client SSL Client (Standard)
问题:数据转移失败,并显示错误消息 /GOOG/MSG: 503 - HTTP
Communication Failure - SSL client SSL Client (Standard)
。
原因:对于在 Google Cloud 上运行的 SAP 工作负载,在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,Target Host 字段值不正确。
解决方法:如需解决此问题,请参阅 RFC 未正确配置中的解决步骤。
问题:/GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the request sending
问题:数据转移失败,并显示错误消息 /GOOG/MSG: 503 - HTTP
Communication Failure exception occurred during the request sending
。
原因:此问题可能是由连接或网络问题引起的。
解决方法:验证您的连接,并确保网络设置正确、没有运行错误并且没有拥塞。
问题:/GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the response receiving
问题:数据转移失败,并显示错误消息 /GOOG/MSG: 503 - HTTP
Communication Failure exception occurred during the response receiving
。
此问题可能由以下情况引起:
您的 RFC 目标中未激活 SSL
原因:在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,使用 SSL 证书的安全选项未激活。
解决方法:如需解决此问题,请参阅“问题:/GOOG/MSG: 403
- 需要使用 SSL 来执行此操作”中的解决步骤。
SSL 握手失败
原因:SAP LT Replication Server 主机和 BigQuery API 端点之间的 SSL 握手失败。如果 TLS 服务器提供的证书对 SAP LT Replication Server 提供的目标主机名无效(可能因为您的 NetWeaver 内核上未实现客户端发送可选 TLS 扩展 SNI),则可能会出现此问题。
解决方法:在事务 SMICM
中,查找返回代码 SSLERR_SERVER_CERT_MISMATCH
。如果您发现返回代码 SSLERR_SERVER_CERT_MISMATCH
,则需要启用发送 TLS 扩展 SNI。此外,请确保您的 NetWeaver 内核实现了客户端发送可选 TLS 扩展 SNI。
如要启用发送 TLS 扩展 SNI,请将配置文件参数 icm/HTTPS/client_sni_enabled
或 ssl/client_sni_enabled
设置为 TRUE
,具体取决于您的 NetWeaver 内核版本。如需查看更多由 SAP 提供的信息,请参阅:
- SAP 说明 510007 - 在应用服务器 ABAP 上设置 SSL 的其他注意事项
- SAP 说明 2582368 - 通过 saphttp、sandroidprotp 对客户端发送 TLS 扩展 SNI 进行 SAPpSSL 更新
- SAP 说明 2124480 - ICM/Web Dispatcher:TLS 扩展服务器名称指示 (SNI) 作为客户端
区块的字节大小超过 BigQuery 接受的 HTTP 请求的最大字节大小
原因:BigQuery Connector for SAP 发送的区块的字节大小超过 BigQuery 接受的 HTTP 请求的最大字节大小。如果表记录的大小或记录包含的数据量导致区块的字节大小超过 BigQuery 限制,则可能会出现此问题。
解决方法:减小 BigQuery Connector for SAP 为此表发送的区块的大小。您可以通过运行事务 /GOOG/SLT_SETTINGS
来调整数据块大小,也可以启用动态数据块大小以自动调整数据块大小。如需了解详情,请参阅以下主题:
问题:/GOOG/MSG: 404 - Not found: Dataset DATASET_NAME
问题:尝试验证 Google Cloud 安全性或将数据加载到 BigQuery 表时,您收到消息 /GOOG/MSG: 404 - Not found: Dataset DATASET_NAME
。
原因:此问题可能由以下情况引起:
- 尚未创建 BigQuery 数据集。
- 数据集名称未在大规模转移作业配置中正确指定。
- 需要激活 SAP LT Replication Server 中的复制配置。
解决方法:尝试以下解决方法:
- 确认已在 BigQuery 中创建数据集。
- 检查大规模转移作业配置中的数据集名称是否与 BigQuery 中的数据集名称相同。
- 运行
LTRC
事务,然后停用并重新激活复制配置。
问题:Mass Transfer Key can not be found for Mass Transfer ID XXX
问题:您收到错误 /GOOG/SLT: Mass Transfer Key can not
be found for Mass Transfer ID XXX
。
原因:此问题可能由以下情况引起:
- 指定的大规模转移作业 ID 不存在大规模转移作业配置。
- 相应的复制配置未处于活动状态。
解决方法:如需解决此问题,请执行以下操作之一:
- 运行
/GOOG/SLT_SETTINGS
事务,确认已正确指定批量传输 ID。 - 运行
LTRC
事务,然后停用并重新激活复制配置。
问题:/GOOG/SLT : Unable to interpret VALUE as a BOOLEAN
问题:加载或复制记录失败,并显示消息 /GOOG/SLT : Unable to interpret VALUE as a BOOLEAN
。
原因:此问题是由源表中的字段映射到 BigQuery 数据类型 BOOLEAN
,但源字段中的数据无法解析为布尔值导致的。
解决方法:如需解决此问题,请使用事务 /GOOG/SLT_SETTINGS 更改源字段映射到的数据类型,或移除数据类型映射并接受默认数据类型。
问题:/GOOG/SLT: Failed to convert field SAP_FIELD_NAME value to field BIGQUERY_FIELD_NAME: ERROR_DETAILS
问题:加载或复制记录失败,并显示消息 /GOOG/SLT: Failed to convert field SAP_FIELD_NAME value
to field BIGQUERY_FIELD_NAME: ERROR_DETAILS
。
原因:源字段包含无效的值,或者源字段映射到的 BigQuery 数据类型不是源字段包含的数据的有效映射。
解决方法:要解决此问题,请使用事务 /GOOG/SLT_SETTINGS
更改源字段映射到的数据类型,或移除数据类型映射并接受数据类型的默认映射。
问题:/GOOG/MSG : Client key is not found in /GOOG/CLIENT_KEY table
问题:加载或复制无法启动,并显示消息 /GOOG/MSG:
Client key is not found in /GOOG/CLIENT_KEY table
。
原因:客户端密钥不存在,或者在事务 /GOOG/SLT_SETTINGS
的大规模转移作业配置中未正确指定。
解决方法:要解决此问题,请使用事务 SM30
创建客户端密钥,或使用事务 /GOOG/SLT_SETTINGS
更正大规模转移作业配置中的客户端密钥值。
问题:/GOOG/MSG: DESCRIPTION_OF_ISSUE error occurred in chunk ranging START_INDEX_OF_FAILED_CHUNK - END_INDEX_OF_FAILED_CHUNK
问题:数据块的复制失败,并显示错误消息 /GOOG/MSG: DESCRIPTION_OF_ISSUE error occurred in chunk
ranging START_INDEX_OF_FAILED_CHUNK -
END_INDEX_OF_FAILED_CHUNK
。
原因:这可能有多个原因,包括 Invalid JSON Payload
、Quota Exceeded
、Request Entity Too Large
或 HTTP Communication Failure
。无法复制到 BigQuery 的数据块的错误消息会显示该数据块的起始和结束索引。
如果您尚未在事务 /GOOG/SLT_SETTINGS
中设置 BREAK
标志,则会显示此错误消息。如果未设置 BREAK
标志,则即使发生错误,BigQuery Connector for SAP 也会通过发送下一个数据块来继续向 BigQuery 发送记录。
解决方法:尝试以下解决方法:
对于
Quota Exceeded
、Request Entity Too Large
或HTTP Communication Failure
问题,请按照相应的问题排查步骤操作:停止当前加载,从 BigQuery 中删除目标表,然后重启全新加载。
如需停止向 BigQuery 发送数据,并在遇到错误数据块时终止复制作业,请设置
BREAK
标志(建议在生产环境中使用)。如需了解如何配置
BREAK
标志,请参阅:- 如果 SAP LT Replication Server 在 Compute Engine 虚拟机上运行,请参阅指定表创建和其他常规特性。
- 如果 SAP LT Replication Server 在 Google Cloud 外部的主机上运行,请参阅指定表创建和其他常规特性。
问题:DESCRIPTION_OF_ISSUE while signing JWT using profile KEY_FILE_NAME.pse. Check JWT config in STRUST
STRUST
问题:您收到错误 DESCRIPTION_OF_ISSUE while
signing JWT using profile KEY_FILE_NAME .pse. Check JWT config in
。STRUST
原因:STRUST
中的 JWT 配置和服务账号密钥设置未正确配置。
解决方法:确认已按照使用 JWT 获取访问令牌来进行身份验证部分所述配置 JWT 配置和服务账号密钥。
问题:Bad Request invalid_grant. Invalid JWT Signature
问题:您收到错误 Bad Request invalid_grant.
Invalid JWT Signature
。
原因:导入 STRUST
的 PSE 或 P12 密钥文件不属于用于对 JWT 签名的服务账号。
解决方法:确保将正确的服务账号密钥文件导入 STRUST
。如需了解如何将服务账号密钥导入到 STRUST
中,请参阅将服务账号密钥导入 STRUST。
问题:/GOOG/MSG : 400 - Bad Request invalid_grant Invalid grant: account not found
问题:您无法连接到 Google Cloud APIs。
原因:用于 JWT 签名的服务账号不正确或没有所需的权限。
解决方法:确保您为基于 JWT 的令牌检索指定的服务账号已根据表 /GOOG/BQ_PARAM
中的参数 JWT_SERVC_ACCT
正确维护。如需了解详情,请参阅在 SAP LT Replication Server 主机上为服务账号启用 JWT 签名。
问题:OAuth RFC HTTP Destination not maintained in /GOOG/SERVIC_MAP
/GOOG/SERVIC_MAP
问题:您收到错误 OAuth RFC HTTP Destination not maintained
in
。/GOOG/SERVIC_MAP
原因:服务映射表 /GOOG/SERVIC_MAP
中未提供 OAuth 2.0 的 RFC 目标。
解决方法:在服务映射表 /GOOG/SERVIC_MAP
中更新 OAuth 2.0 的 RFC 目标,然后重新运行负载。如需了解如何指定 RFC 目标,请参阅在 /GOOG/SERVIC_MAP
中指定 RFC 目标。
问题:对于非英语登录语言,使用 CSV 文件上传数据时,字段说明出现乱码
问题:对于非英语登录语言,当您使用文件上传选项上传 BigQuery 目标表字段类型和字段说明时,CSV 文件中的字段说明无法准确上传。您会在上传的说明中找到乱码字符和符号。
原因:对于非英语登录语言,文件上传实用程序无法准确解读 CSV 文件中的字符。
解决方法:如需上传非英语语言的 BigQuery 目标表字段类型和字段说明,请对 CSV 文件使用具有字节顺序标记 (BOM) 的 UTF-8 编码格式。以具有 BOM 的 UTF-8 格式保存 CSV 文件,然后上传该文件。
常见的操作问题
本部分介绍在初始设置 BigQuery Connector for SAP 之后可能出现的常见问题的解决方法。
问题:未在 BigQuery 数据集中创建 SAP 中的空源表
问题:未在 BigQuery 数据集中创建 SAP 中的空源表。
原因:对于 SAP 中的空源表,SAP SLT 会阻止在 BigQuery 中创建目标表。
解决方法:如需在 BigQuery 数据集中为 SAP 中的空源表创建目标表,您可以使用创建表工具。如需了解如何运行创建表工具,请参阅创建表工具。
问题:BigQuery 中的写入次数不正确
问题:写入 BigQuery 的记录数量大于 SAP LT Replication Server 日志中显示的记录数量。
原因:这可能有多个原因,包括导致 SAP LT Replication Server 多次发送记录的暂时性连接问题,或者 BigQuery 表只接受插入,并且对源中单条记录的每次更改都作为单独的条目插入到目标表中。
解决方法:如果记录计数的差异不是特别大,并且 BigQuery 中的记录数不比源表中的记录数少,则这是预期行为,不是问题。
要准确地调整 BigQuery 中的记录数与源表中的记录数,请按照记录计数的 SQL 查询中的说明查询 BigQuery 表。
如需详细了解此问题的可能原因,请参阅有关 HANA 上 ABAP 源/目标的特殊注意事项。
问题:/GOOG/MSG : 400 - Schema mismatch for table TABLE_NAME
问题:您收到错误消息 /GOOG/MSG : 400 - Schema mismatch
for table TABLE_NAME. Please delete the table from BigQuery and
try again.
原因:对现有 BigQuery 表输入了以下某项更改:
- 删除字段
- 重命名字段
- 字段的数据类型的更改
- 表的分区类型的更改
无法将上述更改应用于现有 BigQuery 表。
解决方法:如果您需要更改现有表中的这些字段特性中的任何特性,则需要删除现有表并将记录重新加载到新表中。
如果更改有误,请在 SAP LT Replication Server 中撤消更改。
如需详细了解如何在目标 BigQuery 表中配置字段和分区,请参阅 BigQuery 复制配置。
问题:与无效数据相关的错误消息
问题:在应用日志中,您会收到错误消息:/GOOG/MSG/: DESCRIPTION_OF_INVALID_DATA error
occurred in FIELD_NAME in record
RECORD_KEYS
。
原因:在将任何包含无效数据的记录插入目标表时,BigQuery 会发出此错误消息。数据无效的原因可能是以下之一:
- 特定记录的字段中的数据与 BigQuery 中的数据类型不兼容。例如,BigQuery 在以下情况下会生成错误消息:
- 在
DATE
、INTEGER
或BOOLEAN
类型的字段中保存字符串。 - 在类型为
DATE
的字段中保存无效日期 (00/00/0000
)。
- 在
- 在事务
/GOOG/SLT_SETTINGS
中的字段映射中保存不正确的目标数据类型。
BigQuery 会为包含无效数据字段的每条记录发出错误消息。
解决方法:分析错误消息 DESCRIPTION_OF_INVALID_DATA
,以了解无效数据的可能原因。要识别包含无效数据字段的记录,请使用 RECORD_KEYS
,其中包含记录的前五个字段的内容。如果表包含的字段不超过 5 个,则所有字段的内容都将包含在 RECORD_KEYS
中。
- 如果字段中的数据与 BigQuery 中的数据类型不兼容,请更正源表中的数据。
- 如果错误是由于数据与数据类型不匹配所致,请使用事务
/GOOG/SLT_SETTINGS
指定适当的数据类型。如需详细了解数据类型映射,请参阅数据类型映射。
问题:事务 SE16
或 SE16N
中显示的字段的值与 BigQuery 中显示的值不同
问题:在某些情况下,事务 SE16
或 SE16N
中显示的字段的值与 BigQuery 中显示的值不同。
原因:在 SAP S/4HANA 源系统中,MARD
、MARC
、MBEW
和 MBEWH
等表具有兼容性视图,而这些视图会在事务 SE16
或 SE16N
中显示值。对于此类表,事务 SE16
或 SE16N
中显示的值是使用联接条件在兼容性视图内计算的,其中包括几个其他底层表。
当在 SLT 中配置具有兼容性视图的表以复制到 BigQuery 时,SLT 不会从兼容性视图复制数据。相反,SLT 会分别从每个基础表复制数据,因此您可能会注意到,与 BigQuery 中显示的值相比,某些字段在 SE16
或 SE16N
中具有不同的值。这是标准的 SLT 行为。
解决方法:如需解决此问题,请按以下步骤操作:
- 在 SAP GUI 中,输入事务代码
LTRS
。 - 为 BigQuery 复制功能选择批量传输设置。
- 依次转到 Advanced Replication Settings(高级复制设置)> Table Settings(表设置)。
- 选择使用兼容性视图的表。如果所需表未列出,请添加该表。
在 Processing Settings(处理设置)部分中,为以下字段输入值:
- View for Initial Load(初始加载视图):来自
SE16
或SE16N
的表的兼容性视图值。 - View for Replication(复制视图):来自
SE16
或SE16N
的表的兼容性视图值。
- View for Initial Load(初始加载视图):来自
保存设置。
或者,将兼容性视图的所有底层表都复制到 BigQuery。在 BigQuery 中,使用与兼容性视图相同的联接条件联接这些表。
如需详细了解 SAP 提供的有关一些已知表及其兼容性视图的信息,请参阅 SAP 说明 2595627 - 从 SE16/SE16N 访问表会向 SAP HANA 数据库显示不同结果。
获取支持
如果您需要帮助以解决复制问题和 BigQuery Connector for SAP 问题,请收集所有可用的诊断信息,并与 Cloud Customer Care 联系。
如需详细了解如何与 Cloud Customer Care 联系,请参阅获取 SAP on Google Cloud 支持。