某日接到客户问题反馈,原来之前为客户搭建的12cR2的数据库,无法通过PLSQL连接,作为一名美创资深DBA,小编心里一惊,莫非之前装的软件有问题。
ORA-28040
为了解决客户问题,赶紧远程连接到客户的电脑,查看原因!
噢,原来是ORA-28040这个老伙计,因为当windows本地的客户端是10G,而数据库的版本是12c,版本不统一的时候,它就要出来冒泡了。
既然知道了是何方神圣,那就可以对症下药,这里在下有两招法宝,提供给在座的各位:
方法一
在甲方windows本地安装一个最简化的11g或者12c客户端:instantclient-basic-nt-11.2.0.2.0.zip,解压好之后,将之前客户端的tnsname.ora文件cp到解压的目录。
前往windows下的环境变量添加以下环境变量。
1.ORACLE_HOME
ORACLE_HOME = C:\instantclient_11_2 (解压目录)
2.TNS_ADMIN(tnsname.ora存放路径)
C:\instantclient_11_2
3.修改Path变量,在后面添加
C:\instantclient_11_2
之后进入PLSQL 选择tools 选择Preferences,填好以下两行,填写以后apply应用,退出plsql,重新登录即可。
ORACLE_HOME 为C:\instantclient_11_2
OCI library 为 C:\instantclient_11_2\oci.dll
方法二
前往新库linux环境下,前往network/admin下编辑sqlnet.ora添加一下内容
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
重启数据库即可连接,但是需要注意的是所有用户的密码都需要重置一遍。
第二种的方法更为方便,但是需要重启数据库,以及会导致之前的密码失效。因为此次数据库为新建数据库,暂时还未投入到生产使用,在下采用第二种方法更为方便。
如果是已经投入使用的数据库,还是建议评估以后,再决定采用哪种方法。
终于把这哥们给收拾了!!
看,跟ORA这些伙计们混熟了,是不是就丝毫不慌了!
美创运维中心数据库服务团队拥有Oracle ACE 1人、OCM 10余人、数十名Oracle OCP、MySQL OCP、红帽RHCA、中间件weblogic、tuxedo认证、达梦工程师 ,著有《Oracle DBA实战攻略》,《Oracle数据库性能优化方法和最佳实践》,《Oracle内核技术揭秘》等多本数据运维优化书籍。目前运维各类数据库合计2000余套,精通Oracle、MySQL、SQLServer、DB2、PostgreSQL、达梦等主流商业和开源数据库。并成为首批国内达梦战略合作伙伴之一,拥有海量经验和完善的人员培养体系。并同时提供超融合,私有云整体解决方案。
来源:freebuf.com 2020-06-05 16:01:13 by: database
请登录后发表评论
注册