Oracle的坑

简介: Connection Reset ORA-00942

1. Connection Reset

  • 现象

Oracle JDBC使用Linux时,老是报错SQLException("Io exception: Connection reset").

  • 原因

为了登录Oracle Server时的安全考虑,Oracle JDBC drivers 会调用Java SecureRandom生成随机数。SecureRandom依赖os底层的/dev/random,/dev/random是Linux内核提供的安全随机数生成设备;

Linux跑在有缺陷的硬件(比如,虚拟机),运气不好时,/dev/random生成随机数会非常慢。这样导致了登录进程会halt,最终导致Connection Reset。

  • 解决方案

    • 方案一,修改应用的JVM参数,使用/dev/urandom。好处,解决了随机数生成慢、阻塞调用的问题;缺点是,/dev/urandom降低了安全性。
    -Djava.security.egd=file:/dev/../dev/urandom
    • 方案二,安装部署 haveged-1.9.1 增加随机数产量。

BTW,logstash启动时也依赖/dev/random,这也是logstash在虚拟机中启动非常缓慢的原因。

2. ORA-00942

  • 现象

表,确实存在,但JDBC报错"表或视图不存在"

  • 原因

Oracle 大小写敏感,在创建和查询时,对表名、列名会自动转为大写,这样导致找不到表。

  • 解决方案

语句中对表名、列名加双引号。

create table "table_name"
select * from  "table_name"

欢迎加入橙鹰数据(据说是杭州一个很牛x很低调的大数据公司)

目录
相关文章
|
11月前
|
人工智能 算法 决策智能
CompassArena上新!JudgeCopilot与新一代Bradley-Terry模型竞技体验
2024 年 5 月,上海人工智能实验室司南 OpenCompass 团队携手魔搭 ModelScope,联合推出了大模型评测平台——CompassArena(大模型竞技场),为大模型领域引入了一种全新的竞技模式。
273 6
CompassArena上新!JudgeCopilot与新一代Bradley-Terry模型竞技体验
|
数据库 开发者
EasyCode 自动生成代码
【10月更文挑战第16天】总的来说,EasyCode 自动生成代码是一款非常有价值的工具。它为开发者们带来了便捷、高效和创新,让软件开发变得更加轻松和有趣。随着技术的不断进步,相信 EasyCode 还会不断完善和发展,为开发者们提供更多更好的服务。
209 1
|
安全 C#
在阿里云平台注册域名多少钱?域名新注、续费、转入最新收费价格表
在阿里云注册域名多少钱?阿里云可注册的域名后缀多达几百种,域名后缀不同,收费标准不同,通常用户注册比较多的是.com域名、.cn域名、.net域名等,阿里云域名价格表包括域名注册、域名续费及域名转入价格,不同时期的收费价格是不一样的,目前通过阿里云平台注册.com域名最低价格仅需1元,注册.cn域名最低仅需8.8元。下面是小编整理的最新版的阿里云域名新注、续费、转入收费价格表。
3128 0
在阿里云平台注册域名多少钱?域名新注、续费、转入最新收费价格表
|
前端开发 JavaScript API
React的Context API:全局状态管理的利器
【4月更文挑战第25天】React的Context API解决了深层组件间状态共享的难题,提供全局状态管理方案。通过`Provider`和`Consumer`组件,或结合`useContext` Hook,实现状态在组件树中的传递。最佳实践包括避免过度使用,分离逻辑,以及在必要时与Redux或MobX结合。Context API简化了数据传递,但需谨慎使用以保持代码清晰。
|
网络协议 数据可视化 测试技术
面向对象分析与设计的底层逻辑
真正掌握了面向对象分析和设计的方法,也体会到其中的益处,对理解业务、方案设计、编码开发都有好处。
988 72
面向对象分析与设计的底层逻辑
|
关系型数据库 MySQL 开发工具
Mysql 忘记密码怎么重置密码(详细步骤)
Mysql 忘记密码怎么重置密码(详细步骤)
1463 0
|
数据处理 Python
Python读取excel数据进行处理后生成新的Excel
Python读取excel数据进行处理后生成新的Excel
542 0
|
安全
视频|年最新免费注册MicroSoft365的方法!保姆级教程!!
我们平常说的版本,如:2013、2016等,是那个年份前后推出的office办公套件,我们购买(激活)后,就只能一直使用那个版本,如果想升级新版本,可能需要重新购买(激活)。
862 0
|
存储 算法 C++
详细实例说明+典型案例实现 对动态规划法进行全面分析 | C++
在上面我们通过通俗易懂的例子对动态规划法进行了理解,也用该方法的核心对斐波那契数列进行了优化。动态规划是分治法的一个延伸,它增加了记忆机制的使用,将处理过的子问题的答案记录下来,从而避免去重复计算。
803 0
详细实例说明+典型案例实现 对动态规划法进行全面分析 | C++
|
存储 Serverless 文件存储
从零入门 Serverless | Serverless 应用如何管理日志 & 持久化数据
本节课程有三部分内容,分别介绍在 SAE 上查看应用的实时日志,文件日志以及通过 NAS 进行应用数据的持久化存储。
从零入门 Serverless | Serverless 应用如何管理日志 & 持久化数据