博客
关于我
dblink 不走索引 查询_dblink查询一直卡那
阅读量:488 次
发布时间:2019-03-07

本文共 1860 字,大约阅读时间需要 6 分钟。

为了排查在运行"@ORACLE_HOME/rdbms/admin/caths.sql"后仍然卡顿的问题,我们需要先检查Oracle Transparent Gateway版本是否与数据库版本不兼容。这种情况下通常是gateway和数据库版本不一致引发的。

可能的原因分析:

  • Gateway版本与数据库版本不匹配

    导致无法正常初始化异构功能,无法连接到目标数据库。

  • HS_AUTOREGISTER配置不正确

    如果该参数设置为FALSE,可能会导致无法自动注册HS组件。

  • 具体错误提示:

    • ORA-28522: error initializing heterogeneous capabilities

      表明在尝试初始化异构功能时遇到了问题。

    • ORA-24274: no row exists in the HS$_BASE_CAPS table for these parameters

      表示在HS$_BASE_CAPS表中找不到对应的记录。

    • ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86

      该错误表明某些高层函数(如DBMS_SYS_ERROR)在尝试访问底层API时失败。

    逐步解决方法:

  • 检查HS_AUTOREGISTER参数:

    • 连接到数据库,使用DBA权限执行以下命令:
    show parameter HS_AUTOREGISTER;

    如果参数值是FALSE,请执行:

    alter system set HS_AUTOREGISTER=True scope=spfile;

    重启数据库后,参数将生效。

  • 检查HS组件的字典问题:

    • 如果问题依旧,可能与HS$_BASE_CAPS字典中的数据有关。

    • 如果Oracle数据库版本较旧,而Oracle Transparent Gateway版本是9.2.0.5:

      connect system/manager

      然后执行更新脚本:

      exec dbms_hs.replace_base_caps(531, 531, 'First/Last function');

      注意:这一步骤通常会显示错误如ORA-00054: resource busy,可尝试以仅读取模式启动数据库后重复执行。

  • 处理HS_FDS_CLASS字典问题:

    • 使用类似的方式更新HS_FDS_CLASS表中的数据:

      select * from all_catalog@;

      如果在执行过程中遇到如下错误:

      ORA-28559: FDS_CLASS_NAME is MSSQL10.2.0.1.0_200, FDS_INST_NAME is tg4msql

      可能需要手动调整相关参数。

  • 验证HMEMORY设置:

    • 检查SQLNet.inotalocSQLNet LHOP超时参数是否设置合理,避免网络连接问题导致无法初始化异构会话。
  • 升级数据库和Gateway版本:

    • 最优解是将Oracle数据库和Oracle Transparent Gateway同时升级到最新的支持版本。这可以通过catnohs.sqlcaths.sql去_cipher工具来完成。

    • 如果无法升级,使用diff比对不同版本的caths.sql,手动添加差异部分到旧版本脚本运行。

  • 需要注意的事项:

    • 在执行caths.sql时,建议在后台运行(使用&命令),防止AE-终端登录卡顿。

    • 不要混淆HS_AUTOREGISTER和`.ualfiles的自动注册设置。

    • 如果catnohs/caths在执行过程中出现ORA-00054错误,建议临时关闭数据库日志或其他非关键业务,重新运行修复脚本。

    验证解决方案:

  • 重新启动相关服务:

    • 重启OracleTransparentGateway服务。

    • 确认lsnrconf设置是否正确,目标数据库名和HS组件名称是否匹配。

  • 测试网关连接:

    sqlplus "/as"

    输入目标用户名和密码,尝试连接数据库。如果能成功显示.oracle.com,问题通常已解决。

  • 监控错误日志:

    • 定期查看sql(errlog)来排查新的错误,找到异常点并消除。

    • 出现ORA-02063: preceding 3 lines from ...的错误时,应查看前三行之前的SQL语句,以确认是否有异常存储过程或 触发器。

  • 通过以上步骤,通常可找到导致卡顿的具体原因并进行修复。如果问题依旧存在,请参考Oracle Document ID 234517.1或与支持团队联系,进一步诊断潜在问题。

    转载地址:http://whvcz.baihongyu.com/

    你可能感兴趣的文章
    Spring事务的两种常用传播方式
    查看>>
    配置SpringMVC中的视图解析器
    查看>>
    Redis6大基础数据结构以及在spring中的常用命令
    查看>>
    【OpenGL】蓝宝书第十章——片段操作:管线的终点
    查看>>
    杭电OJ-2034(C)
    查看>>
    npm run dev提示“sh: 1: webpack-dev-server: not found”
    查看>>
    力扣-26题(Java)
    查看>>
    力扣-81题(Java)
    查看>>
    windows快捷键隐藏桌面所有窗口——“老板键”
    查看>>
    微信自定义分享ios无效
    查看>>
    this.$router.push不起作用(this指向错误)
    查看>>
    Sublime安装px转rem插件
    查看>>
    retrofit --post请求
    查看>>
    IDEA上传Jar
    查看>>
    SpringBoot工程临时加一个分页的yml文件没有生效
    查看>>
    搭建的SpringMVC项目,404错误,确保代码正确的前提,可能是jar包没导进去
    查看>>
    flume使用中的一些常见错误解决办法 (地址已经使用)
    查看>>
    基于递归的全排列
    查看>>
    前端笔试题总结(三) - CSS篇
    查看>>
    C语言字符型、整型和变量的长度
    查看>>