场景:ERP的Oracle数据库做了备份库之后,之前的数据库连接没有问题,新库连接不上
猜想一:数据库版本不一致
1、首先在数据集查询里面查看数据库版本
select * from v$version
查看结果:
有用Navicat连接也连接不上,情况一样,搜索了半天说是oci.dll的问题
于是去下载高版本dll
https://www.oracle.com/database/technologies/instant-client/downloads.html
下载又需要账号,于是又百度了好心人的账号
2696671285@qq.com
密码:Oracle123
下载对应的版本,这里我没有下载最新版本,原因是我怕不稳定,又有新的坑
一切准备就绪,换了dll之后就OK了
小结:到底是什么问题导致的呢?
还是没能解决,oci.dll其实是一个微型的客户端,所以说改变了客户端的版本就可以了
猜想二:帆软为什连接不上
1、尝试连接还是连接不上,于是我又打开kettle去连接,因为我记得它也是JDBC的连接方式,试过之后,可以连上
2、找到JDBC的jar包,替换原来帆软的jar包版本,测试没有问题
3、想到问题解决了,于是到服务器上把jar换了之后测试,仍然连接不上
4、最后想到替换的jar可能还未生效,于是重启服务器就解决了
总结:为什么会出现这种情况
因为连接Oracle数据库是通过客户端去访问数据库的,虽然是相同的数据库版本,但是客户端的服务不一样,对用户连接的要求也不一样,所以导致这种貌似连接一同个库但是却连接不上的问题。