HANA Cloud中的版本信息记录以及重要的HDI trace设置


前言

在使用HANA Cloud的过程中,如果不留意使用的具体版本,很容易就犯错误。有些特性更新的特别快,你可以在你的应用中直接就用上了新特性,但是目标环境可能用的还是老版本。于是就出现了悲剧。

实例

1. 关于安装版本

在某个环境中,发现部署上去的HDI脚本初始化居然是失败的,而其它环境全都能正常工作。仔细检查以后,发现:

它用的版本是上表中的下一行,2022.42.16这个老版本。而服务器端的日志也显示:"alter partition feature not support in the current release"。

于是我们只能临时进行统一版本更新。这从侧面反映,针对Cloud上的所有HANA实例,一定要有一个统一的版本历史管理。其实HANA提供了这个视图:

select * from m_database_history;

hdbsql H00=> select * from m_database_history order by install_time desc;
INSTALL_TIME,VERSION,CLOUD_VERSION
2023-07-01 12:16:17.561000000,4.00.000.00.1687867255,2023.24.0-rc.4
2023-06-16 02:32:24.972000000,4.00.000.00.1686643988,2023.22.0-rc.3
2023-06-08 06:03:39.204000000,4.00.000.00.1686047519,2023.20.0-rc.4
2023-06-05 03:50:41.170000000,4.00.000.00.1685437369,2023.20.0-rc.3
2023-05-25 10:51:02.881000000,4.00.000.00.1684838143,2023.18.0-rc.4
2023-04-03 10:41:09.438000000,4.00.000.00.1679991298,2023.10.0-rc.4
2022-11-26 10:12:52.229000000,4.00.000.00.1668503147,2022.44.0-rc.4
2022-11-26 04:39:48.263000000,4.00.000.00.1669206261,2022.42.3

有了这个结果,就能很方便的跟踪当前正运行的版本。

2.关于HDI相关的trace

HDI相关schema下的对象的初始化以及删除操作,有时候也会出错,如:

failed polling operation for instance with id xxxxx73-4c0e-9dcd-a01c4f88dccf and name CzARQyd7TdxxxxxxxxM0oqTYhm87tly0ERIXy1da2w= due to polling last operation error: Failed to drop service instance '342d3672-7973-4c0e-9dcd-a01c4f88dccf' on database 'xxxxxx-19dd-4b51-b9f5-111ecae5c908' (8a4af3a7-19dd-4b51-b9f5-111ecae5c908.hana.prod-eu12.hanacloud.ondemand.com:443), because ofFailed to drop HDI container '57D1CE953432450C8F4A72AA98AF758A', because ofCall to HANA DI failed, requestId 7871, because of: Could not delete the container "xxxxx53432450C8F4A72AA98AF758A" (8211053), because of: Could not delete the DTC "xxxxxx53432450C8F4A72AA98AF758A" (8211014), because ofDatabase error 259: invalid table name: LOCK_: line 1 col 12 (at pos 11) (8201003), because of: Destroying the container "xxxxxx53432450C8F4A72AA98AF758A"... failed (8214132)

如何更进一步得到更多的错误信息?

使用dbadmin管理员用户,进行trace开关设置:

alter system alter configuration ('indexserver.ini','SYSTEM'SET ('trace''HANA_DI') = 'debug' with reconfigure;
alter system alter configuration ('indexserver.ini','SYSTEM'SET ('trace''HANA_DI_DB') = 'debug' with reconfigure;

待生成完trace文件内容以后,可以使用下边的命令进行还原:

alter system alter configuration ('indexserver.ini','SYSTEM') UNSET ('trace''HANA_DI'with reconfigure;
alter system alter configuration ('indexserver.ini','SYSTEM') UNSET ('trace''HANA_DI_DB'with reconfigure;

设置上边的debug开关以后,重现错误,然后去hana db console里头:

然后就可以进一步定位分析了。



请使用浏览器的分享功能分享到微信等