【故障处理】ORA-12545: Connect failed because target host

【故障处理】ORA-12545: Connect failed because target host or object does not exist

 BLOG文档结构图

 

wpsD0F7.tmp 

 

 前言部分

2.1  导读和注意事项

各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~

① 错误ORA-12545: Connect failed because target host or object does not exist的一种问题解决

  Tips:

① 本文在ITpubhttp://blog.itpub.net/26736162)、博客园(http://www.cnblogs.com/lhrbest)和微信公众号(xiaomaimiaolhr)有同步更新

② 文章中用到的所有代码,相关软件,相关资料请前往小麦苗的云盘下载(http://blog.itpub.net/26736162/viewspace-1624453/

③ 若文章代码格式有错乱,推荐使用搜狗360QQ浏览器,也可以下载pdf格式的文档来查看,pdf文档下载地址:http://blog.itpub.net/26736162/viewspace-1624453/,另外itpub格式显示有问题,可以去博客园地址阅读

④ 本篇BLOG中命令的输出部分需要特别关注的地方我都用灰色背景和粉红色字体来表示,比如下边的例子中,thread 1的最大归档日志号为33thread 2的最大归档日志号为43是需要特别关注的地方;而命令一般使用黄色背景和红色字体注;对代码或代码输出部分的注释一般采用蓝色字体表示

  List of Archived Logs in backup set 11

  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time

  ---- ------- ---------- ------------------- ---------- ---------

  1    32      1621589    2015-05-29 11:09:52 1625242    2015-05-29 11:15:48

  1    33      1625242    2015-05-29 11:15:48 1625293    2015-05-29 11:15:58

  2    42      1613951    2015-05-29 10:41:18 1625245    2015-05-29 11:15:49

  2    43      1625245    2015-05-29 11:15:49 1625253    2015-05-29 11:15:53

 

[ZHLHRDB1:root]:/>lsvg -o

T_XDESK_APP1_vg

rootvg

[ZHLHRDB1:root]:/>

00:27:22 SQL> alter tablespace idxtbs read write;

 

====》2097152*512/1024/1024/1024=1G 

 

本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力。

 

 

 故障分析及解决过程

 

3.1  故障环境介绍

 

项目

source db

db 类型

RAC

db version

11.2.0.3

db 存储

ASM

OS版本及kernel版本

AIX 64位 6.1.0.0

 

3.2  故障发生现象及报错信息

同事过来找我说数据库不能连接,如下情况:

cssp@ZFZHLHRDB1:/csspsqlplus tacc/tacc

 

SQL*Plus: Release 11.2.0.3.0 Production on Fri Aug 12 16:35:42 2016

 

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

 

ERROR:

ORA-12545: Connect failed because target host or object does not exist

 

 

Enter user-name:

ERROR:

ORA-12545: Connect failed because target host or object does not exist

 

注意:以上的连接方式采用了TWO_TASK这个环境变量,在UnixLinux环境下,可以设置TWO_TASK环境变量,当用户连接数据库且没有指定服务名时,会自动利用TWO_TASK的设置作为环境变量连接数据库。有关这个环境变量的更多内容可以参考:http://blog.itpub.net/26736162/viewspace-2112274/ 和 http://blog.itpub.net/26736162/viewspace-2112277/

 

 

3.3  故障分析及解决过程

我采用了tnsping、用tnsnames连接和检查3大网络配置文件,都没有问题,如下:

cssp@ZFZHLHRDB1:/cssptnsping oratacc1

 

TNS Ping Utility for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production on 12-AUG-2016 16:36:14

 

Copyright (c) 1997, 2011, Oracle.  All rights reserved.

 

Used parameter files:

/oracle/app/oracle/product/11.2.0/db/network/admin/sqlnet.ora

 

 

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ZFtaccDB-scan)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 22.188.173.15)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 22.188.173.16)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oratacc1)))

OK (80 msec)

cssp@ZFZHLHRDB1:/csspsqlplus tacc/tacc@oratacc1

 

SQL*Plus: Release 11.2.0.3.0 Production on Fri Aug 12 16:36:25 2016

 

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

 

SQL> exit

 

cssp@ZFZHLHRDB1:/csspoerr ora 12545

12545, 00000, "Connect failed because target host or object does not exist"

// *Cause: The address specified is not valid, or the program being

// connected to does not exist.

// *Action: Ensure the ADDRESS parameters have been entered correctly; the

// most likely incorrect parameter is the node name.  Ensure that the

// executable for the server exists (perhaps "oracle" is missing.)

// If the protocol is TCP/IP, edit the TNSNAMES.ORA file to change the

// host name to a numeric IP address and try again.

 

查看环境变量的设置:

cssp@ZFZHLHRDB1:/csspmore .profile

#For CICS

export CICS=/usr/lpp/cics

#export LANG=zh_CN.UTF-8

export LANG=en_US

 

#For ORACLE

ORACLE_BASE=/oracle/app/oracle

ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db

TWO_TASK=oratacc1

ORACLE_SID=oratacc1

ORACLE_TERM=vt100

ORACLE_OWNER=oracle

export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_TERM ORACLE_OWNER

 

 

LD_LIBRARY_PATH=/oracle/app/oracle/product/11.2.0/db/lib:/oracle/app/oracle/product/11.2.0/db/lib32

#LD_LIBRARY_PATH=/oracle/app/oracle/product/11.2.0/db/lib32

#export LIBPATH=$LIBPATH:/oracle/app/oracle/product/11.2.0/db/lib

 

NLS_LANG=American_America.ZHS16GBK

ORA_NLS33=/oracle/app/oracle/product/11.2.0/db/nls/data

export PATH=/usr/java5/bin:/cssp/jscs

export PATH=$PATH:/oracle/app/oracle/product/11.2.0/db/OPatch:/oracle/app/oracle/product/11.2.0/db/bin:/bin:/usr/ccs/bin:/usr/bin/X11:/sharebkup/data/peij

 

OPATCH_PLATFORM_ID=212

export LD_LIBRARY_PATH NLS_LANG ORA_NLS33 PATH TMP TMPDIR OPATCH_PLATFORM_ID

export AIXTHREAD_SCOPE=S

umask 022

export DBCA_RAW_CONFIG=/oracle/dbname_raw.conf

export PS1='LOGNAME@′‘hostname‘:′LOGNAME@′‘hostname‘:′PWD''$ '

export ORA_NL10=$ORACLE_HOME/nls/data

set -o vi

export EDITOR=vi

 

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export NLS_DATE_FORMAT=YYYY-MM-DD

 

export PATH=$PATH:/usr/vac/bin:/var/ifor:/usr/opt/ifor/ls/conf:/usr/lib/cobol/bin:/usr/lpp/cics/bin:/usr/lpp/cics/etc:/usr/lpp/dce/bin:/usr/lpp/mqm/bin:/usr/lpp/mqm/sa

mp/bin:/usr/mqm/samp/bin:HOME/bin:HOME/bin:ORACLE_HOME/bin:/csspd05u/test/bin:.:/usr/mqm/samp/bin

export LIBPATH=/usr/mqm/lib:ORACLEHOME/lib32:ORACLEHOME/lib32:COBDIR/coblib:/usr/lib:/lib:/usr/lpp/cics/lib:/usr/lpp/encina/lib:/usr/lpp/dce/lib:.

export NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lpp/cics/msg/%L/%N:/usr/lpp/nls/msg/en_US/%N:/usr/lpp/encina/msg/%L/%N:/usr/lpp/dce/lib/nls/msg/%L/%N

 

#For cssp

export JAVA_HOME=/usr/java5_64

export cssp_HOME=$HOME

export CLASSPATH=/csspd05u/CF

 

# PS1='[`hostname`:LOGNAME:LOGNAME:PWD]'

alias rm='rm -i'

alias lf='ls -aF'

alias l='ls -al'

set -o vi

可以看到上边的环境变量很乱,尤其PATH的配置有问题,所以我把这个部分的内容整理了一下,最后为:

umask 022

#For CICS

export CICS=/usr/lpp/cics

#export LANG=zh_CN.UTF-8

export LANG=en_US

 

#For ORACLE

export ORACLE_BASE=/oracle/app/oracle

export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db

export LD_LIBRARY_PATH=/oracle/app/oracle/product/11.2.0/db/lib:/oracle/app/oracle/product/11.2.0/db/lib32

export TWO_TASK=oratacc1

export ORACLE_SID=oratacc1

export ORACLE_TERM=vt100

export ORACLE_OWNER=oracle

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

 

 

export ORA_NLS33=/oracle/app/oracle/product/11.2.0/db/nls/data

export OPATCH_PLATFORM_ID=212

export AIXTHREAD_SCOPE=S

 

export DBCA_RAW_CONFIG=/oracle/dbname_raw.conf

export PS1='LOGNAME@′‘hostname‘:′LOGNAME@′‘hostname‘:′PWD''$ '

export ORA_NL10=$ORACLE_HOME/nls/data

export EDITOR=vi

 

 

export PATH=$PATH:/usr/java5/bin:/cssp/jscs

export PATH=$PATH:/oracle/app/oracle/product/11.2.0/db/OPatch:/oracle/app/oracle/product/11.2.0/db/bin:/bin:/usr/ccs/bin:/usr/bin/X11:/sharebkup/data/peij

export PATH=PATH:/usr/vac/bin:/var/ifor:/usr/opt/ifor/ls/conf:/usr/lib/cobol/bin:/usr/lpp/cics/bin:/usr/lpp/cics/etc:/usr/lpp/dce/bin:/usr/lpp/mqm/bin:/usr/lpp/mqm/samp/bin:/usr/mqm/samp/bin:PATH:/usr/vac/bin:/var/ifor:/usr/opt/ifor/ls/conf:/usr/lib/cobol/bin:/usr/lpp/cics/bin:/usr/lpp/cics/etc:/usr/lpp/dce/bin:/usr/lpp/mqm/bin:/usr/lpp/mqm/samp/bin:/usr/mqm/samp/bin:HOME/bin:$ORACLE_HOME/bin:/csspd05u/test/bin:.:/usr/mqm/samp/bin

export LIBPATH=/usr/mqm/lib:ORACLEHOME/lib32:ORACLEHOME/lib32:COBDIR/coblib:/usr/lib:/lib:/usr/lpp/cics/lib:/usr/lpp/encina/lib:/usr/lpp/dce/lib:.

export NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lpp/cics/msg/%L/%N:/usr/lpp/nls/msg/en_US/%N:/usr/lpp/encina/msg/%L/%N:/usr/lpp/dce/lib/nls/msg/%L/%N

 

#For cssp

export JAVA_HOME=/usr/java5_64

export cssp_HOME=$HOME

export CLASSPATH=/csspd05u/CF

 

# PS1='[`hostname`:LOGNAME:LOGNAME:PWD]'

alias rm='rm -i'

alias lf='ls -aF'

alias l='ls -al'

set -o vi

修改.profile文件后,重新登录试试:

cssp@ZFZHLHRDB1:/cssp. .profile

cssp@ZFZHLHRDB1:/csspsqlplus tacc/tacc

 

SQL*Plus: Release 11.2.0.3.0 Production on Fri Aug 12 16:43:26 2016

 

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

 

SQL> exit

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

可以正常登陆数据库了,可见环境变量的配置对sqlplus的登录有至关重要的作用。

  About Me

..........................................................................................................................................................................................................                        

本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

v 本文在ITpub(http://blog.itpub.net/26736162)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新,推荐pdf文件阅读或博客园地址阅读

v QQ群:230161599 微信群:私聊

v 本文itpub地址:http://blog.itpub.net/26736162/viewspace-2123414/ 博客园地址:http://www.cnblogs.com/lhrbest/articles/5766183.html

v 本文pdf版:http://yunpan.cn/cdEQedhCs2kFz (提取码:ed9b)

v 小麦苗分享的其它资料:http://blog.itpub.net/26736162/viewspace-1624453/

v 联系我请加QQ好友(642808185),注明添加缘由

v 于 2016-08-12 09:00~2016-08-12 19:00 在中行完成

v 【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】

..........................................................................................................................................................................................................

长按识别二维码或微信客户端扫描下边的二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。

wpsD107.tmp

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
今天写了个脚本,虽然实现的功能不多,但是个人感觉是一个好的开始,架子出来了,后面要补充的细节加进来就逐步完善了。 这个脚本的运行效果如下: OS     Version  is :[ RHEL_6.3 ] Oracle Version  is :[ 11.2.0.3.0] Oracle Instance is :[ dgtest ] dgtest ORACLE_HOME     is :[ /U01/app/oracle/product/11.2.0.2/db_1  ] Oracle  status  is

DUAL系列 - 2016-08-12 17:08:18

DUAL 系列   1    BLOG 文档结构图     2    前言部分   2.1    导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~ : ① DUAL遭到破坏后的重建(重点) ②  关于参数replication_dependency_tracking简介 ③ DUAL简介     Tips: ① 本文在 ITpub ( http://blog.itpub.net/26736162 )、博客园 ( http://www.
今天在处理一个工单的时候发现了一个奇怪的现象,开发同学需要创建一个存储过程,目前的架构类似这样的形式 数据库中存在一个属主用户,表,存储过程等对象都创建在这个用户上,而另外有一些连接用户,根据业务和功能可能访问的对象权限也有所不同。所以就会出现一个owner,多个connect user的情况。这种方式可以减少很多误操作,权限控制更为细粒度。 现在的问题是在owner用户上创建存储过程,存储过程会引用若干张表,都在owner用户下,而connect user下则没有这些表相关的任何同义词。看起来好像是不大合

Oracle如何删除表中重复记录 - 2016-08-11 14:08:09

Oracle如何删除表中重复记录 1    引言 在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来 读诸 多不便,那么怎么删除这些重复没有用的数据呢 ? 平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452  :不能创建唯一索引,发现重复记录。 2    处理过程 重复的数据可能有这样两种情况 : 第一种 是 表中只有某些字段一样,第二种是两行记录完全一样 。删除重复记录后的结果也分为 2 种, 第一种 是重复的

外连接转换为内连接的情况 - 2016-08-10 04:08:06

一般的情况下外连接如下a right join b on a.id=b.id 那么b一定要作为驱动表,原因在于只有b作为驱动表才能得到完整的结果集,如果a作为驱动,那么返回的结果集 可能不完整,但是在特殊的情况的,可能将外连接转换为内连接 考虑如下的情况 b    id  name   1   g1   1   g2   2   g3   2   g4 a   id name   2  gname2 使用如下语句: select b.id,a.id from  a right join b on a.id=
今天总算抽了些时间把半自动化的脚本完成了大半,目前还缺少两部分的脚本,一部分是安装前的检查脚本,可以做一个预检查。虽然目前来看还不是必须,但是这些是标准和规范的地方,这些条件不满足,失败的概率会加大。另外一部分是安装后的补充脚本,其实安装后还有很多需要注意的地方。 大体想了下,补充的脚本包含下面的部分。 配置crontab,目前的常用job是定期删除归档,定期检查监听的情况 配置iptables ,把主库的防火墙信息拷贝过来,或者作为静态备份,需要是启用 配置大页,这个可以在优化的基础上进行计算,在内核参数

MongoBD 日常操作小节 - 2016-08-09 17:08:09

一、开启Mongodb 密码验证功能 默认安装完mongodb是不用密码验证的,直接输入mongo就可以登入数据库进行相关操作,设置参数auth=true启动mongodb密码验证功能,开启改功能步骤如下: ①、 修改参数文件auth=false,并重启mongodb ②、登入数据库,创建管理员用户(默认是没有管理员账户的) [ root@mon godb ~]  # mongo user admin   db.createUser(     {       user: "admin",       pw

在Buffer Cache中自动大表缓存 - 2016-08-09 17:08:09

约翰,在A银行做DBA。凯特琳,新的首席技术官,她正在为数据库性能问题由于长的I/O响应时间而沮丧。为了提高性能,她希望增加数据库实例的缓冲区缓存,以便在缓存中缓存更多的数据,从而减少了频繁需要去读磁盘。戴比,系统开发工程师,经历了很多这样的问题在她的职业生涯中,她解释说,“我们的应用有很多全表扫描,数据库的全表扫描使用的是直接路径读取(DPR)在表中的数据块,不做缓冲区高速缓存。”因此,添加物理内存到服务器后,增加缓冲区缓存,是不会帮助,因为缓冲区没有用。应用程序可以通过加hits跳过DPRs,使用缓冲

MySQL案例-mysqld got signal 11 - 2016-08-09 14:08:35

-------------------------------------------------------------------------------------------------正文--------------------------------------------------------------------------------------------------------------- 背景: MySQL-5.7.12, debian 8核16G虚拟机 , 业务方反馈在某一
今天的技术问答是刘晨兄的一个问题,提问来自于我新书中的一个实验,刘晨兄非常认真,对我书中的很多细节都进行了测试。 看到这个错误,如果出现end-of-file这类的错误信息,基本可以断定数据库实例是宕了。 找到刘晨兄提到的页码标示,原来和我书中的测试结果有一些差别。 我书中的结果类似这样的形式: 错误代码也完全不同,这个问题该怎么解释呢,这个应该是一个很细节的问题。 首先网络上关于这个错误有很多种说法,很多我不认同。 我们先来复现一下问题,找了一套11.2.0.3的环境测试了一下。 先初始化数据 然后复现问