jjx5373 2017-08-24 06:17 采纳率: 0%
浏览 584

SSIS 读取ORACLE数据时崩溃

OS:WIN 2012

源DB:ORACLE

目标 DB: SQL SERVER 2012 SP1

工作需求:将ORACLE的数据导入到SQL SERVER数据库

SSIS:部署在目标DB服务器,ORACLE驱动安装的是11G R2.

能过WINDOWS TASK调用BAT,DTEXEC.EXE命令执行SSIS包。

问题:运行SSIS包时,不定时SSIS不定时崩溃。

就是说,有时候能运行成功,有时候失败。

下面是程序崩溃时的信息

Problem signature:
Problem Event Name: APPCRASH
Application Name: DtsDebugHost.exe
Application Version: 2011.110.2100.60
Application Timestamp: 4f35e2b2
Fault Module Name: StackHash_97d8
Fault Module Version: 6.1.7601.23796
Fault Module Timestamp: 59028db3
Exception Code: c0000374
Exception Offset: 000ce8fb
OS Version: 6.1.7601.2.1.0.272.7
Locale ID: 2052
Additional Information 1: 97d8
Additional Information 2: 97d830191a6407d78190d75d0421a6ea
Additional Information 3: cd1f
Additional Information 4: cd1f13051307b1c0b20893a3dd0951f6

  • 写回答

1条回答 默认 最新

  • JJJ69 2024-03-05 16:31
    关注

    当使用SQL Server Integration Services (SSIS) 从Oracle数据库读取数据时,如果出现崩溃现象,这可能是由多种原因导致的。以下是一些可能的问题及其解决方法:

    1. 驱动程序问题

      • 确保使用的Oracle客户端驱动(如ODBC或OLE DB)是最新版本,并且与所用SSIS版本兼容。
      • 驱动配置不正确,例如TNS服务名设置错误或环境变量ORA_HOME、TNS_ADMIN等未正确设置。
    2. 权限问题

      • 确保运行SSIS包的服务账户或当前登录用户具有访问Oracle数据库的足够权限。
    3. 内存溢出

      • 当处理大量数据时,如果分配给SSIS或Oracle驱动程序的内存不足,可能导致崩溃。需要检查并适当增加可用内存资源。
    4. 连接超时或网络故障

      • 网络不稳定或者连接超时也可能造成读取过程中崩溃,需要确保网络通畅,并在连接字符串中设置合理的超时值。
    5. 并发限制

      • Oracle服务器端可能设置了并发连接数上限,超过此限制时会导致新连接失败。
    6. 数据类型映射问题

      • 在SSIS和Oracle之间进行数据类型转换时,如果存在不支持的数据类型或者转换规则设定不当,可能会引发异常。
    7. 软件冲突

      • 某些情况下,与其他软件或组件可能存在兼容性问题,比如操作系统更新后破坏了旧版驱动的兼容性。
    8. 缓冲区大小问题

      • SSIS默认的数据缓冲区大小可能不足以处理大块数据,可以尝试调整缓冲区大小或分批次处理数据以减少内存压力。
    9. 预编译计划缓存问题

      • 对于特定查询,如果Oracle优化器生成的执行计划不适用于实际数据分布,可能导致性能瓶颈甚至崩溃。

    针对上述问题,解决方案通常包括:

    • 更新和配置正确的Oracle客户端驱动程序
    • 检查和修正连接字符串、身份验证和权限设置
    • 调整SSIS包的执行参数和数据流任务属性,如增大缓冲区大小、设置适当的延迟验证策略
    • 对于数据类型映射问题,确认数据源字段和目标字段之间的数据类型是否匹配或已添加合适的数据转换组件
    • 监控和优化Oracle服务器端的性能指标和资源限制

    具体问题需要结合日志文件中的错误信息进行排查,以便找到根本原因并针对性地采取措施修复。

    评论

报告相同问题?

悬赏问题

  • ¥15 Stata 面板数据模型选择
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用