今天下午快下班时同事找我说自己的性能测试Oracle数据库 连不上了。 然后自己连上去简单看了一下。

因为已经是事后了, 所以没有截图,只通过文字说明。

环境说明:Win2012r2 + Oracle12.2.0.1

1. 服务器报TNS无法链接。 第一反应是TNS的服务没启动好

cmd-> services.msc 打开服务

发现有两个Oracle 的Listener服务, 一个是client的一个是DB的

为了简化处理我将client的关闭,并且设置成了手动启动。

当时发现服务用户是 perf 用户。 手贱给修改成了本地用户,但是仅修改了 监听服务没有修改 数据库instance实例 这里给自己留坑了。

2. 打开命令行, 输入 cmd 启动

输入lsnrctl  使用status查看服务命令 很奇怪 TNS的配置文件都是走的client的

膝盖环境变量 将PATH的内容里面 client相关的都替换成dbhome_1的。

再次重复 cmd 打开监听服务, 很不幸 还是提示client

再次打开环境变量查看 原来同事添加了一个TNS_ADMIN的变量 指定了 是Client的,所以命令自动通过client里面的去查找

将这个变量进行改名。 再次执行相关命令 发现已经是dbhome相关的配置文件了。

3. 但是这个时候很奇怪的是 总是报一个 TNS SID_LIST的配置错误,重新手动修改了配直节也不行比较奇怪。

没办法 网上找了一个很简单的配直节 手动修改, 将括号设置准确,目录设置好,并且host 使用机器名进行启动。

发现服务启动起来了 但是提示无法支持服务 一头雾水。

4. 使用静态注册也是如此提示 按住不表。。

5. 使用动态注册, sqlplus / as sysdba

alter system register;

再次进入lsnrctl 发现依旧没有服务

6. 这个时候才想起来自己修改了 监听的登录用户 但是没有修改 instance的用户

没办法要过来perf的密码 并且冲洗你设置所有的监听到 perf用户

再次启动 竟然可以了。。。

7. 在自己本地 使用客户端进行连接,发现无问题。

8. 本次的经验教训是 环境变量一定要搞清楚,不要随便设置,包括字符集,客户端字符集还有Oracle的一些信息。 如果设置一定要记录一下

就跟我设置linux的环境变量一样 多了自己就记不住了 就容易自己坑自己。

9. 简单记录一下 以备不时之需。。

10. 我3年前修改系统视图 修改GS的数据库名的方法再也没有想起来。。改天再找找 数据库的视图 我记得不是用v$服务开头的。

Oracle TNS 异常问题处理的更多相关文章

  1. oracle tns

    oracle tns 是oracle提供的服务名,设置方法,oracle安装根目录---product----版本选择11.2.0----client1---NETWORK---ADMIN---tns ...

  2. Oracle TNS Listener Remote Poisoning

    Oracle TNS Listener Remote Poisoning 远程数据投毒漏洞(CVE-2012-1675) 1.漏洞简介: 允许攻击者在不提供用户名/密码的情况下,向远程“TNS Lis ...

  3. Oracle TNS路径

    修改tnsnames.oRA,监听文件   Oracle TNS路径 G:\Oracle\product\11.2.0\client_1\network\admin\tnsnames.oRA

  4. 双网卡环境导致Oracle连接异常

    现在就是流行向最高水平看齐,这次项目的部署,好好的SQL Server扔了(有正版授权的企业版,神啊...),逢人就夸:“俺们那上的可是最顶级的Oracle Database System!”.看了看 ...

  5. Oracle TNS配置浅析

    1. 什么是TNS? TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置T ...

  6. VCS引起的oracle数据库异常重新启动一例

    1. 环境描写叙述 操作系统版本号:SUSE Linux Enterprise Server 10 sp2 (x86_64) 数据库版本号:Oracle 11.1.0.7.16 VCS版本号:5.1 ...

  7. oracle存储过程异常捕获

    在oracle中捕获异常,通过 //sql执行 exception when others then dbms_output.putline('exception'); 其中others表示捕获未命名 ...

  8. 【Oracle】异常信息的加工处理

    引言     很多时候,我们调用oracle存储过程都会发生各种各样的异常信息,例如ORA-12899值过大,ORA-01400不能插入空值等.虽然说这类异常是前端没控制到位的缘故,但是现实很难100 ...

  9. Oracle tns 协议

    下面是翻译国外的一篇博客,原文连接如下: https://thesprawl.org/research/oracle-tns-protocol/ 简介 TNS(Transparent Network ...

  10. win10 下oracle tns通过IP无法访问的解决办法

     在Oracle安装目录下\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN下找到listener.ora文件,编辑对应项为: LISTE ...

随机推荐

  1. OpenCV萌新福音:易上手的数字识别实践案例

    摘要:信用卡识别的案例用到了图像处理的一些基本操作,对刚上手CV的人来说还是比较友好的. 本文分享自华为云社区<Python openCV案例:信用卡数字识别>,原文作者:深蓝的回音 . ...

  2. Vue 应用程序性能优化:代码压缩、加密和混淆配置详解

    ​ 简介在 Vue 应用程序的开发中,代码压缩.加密和混淆是优化应用程序性能和提高安全性的重要步骤. Vue CLI 是一个功能强大的开发工具,它提供了方便的配置选项来实现这些功能.本文将介绍如何使用 ...

  3. Mac 播放 swf Flash文件

    Flash已不再支持,swf 文件彻底打不开了(一些教程),通过PD虚拟,安装 windows 操作系统在里在装了 flash 播放器使用了一段时间,始终不方便.于是找到了如下方法 首先安装:Adob ...

  4. Mac OS 安装mysqlcliet 失败问题解决

    简单记录 Mac OS pip 安装mysqlclient报错处理过程 系统: python: Python 3.8.2 虚拟环境 直接安装 mysqlclient 会报错 Using cached ...

  5. QA32增强

    一.QA32报表新增字段 二.QA32报表程序RQEEAL10 结构增加字段,该结构就是报表展示字段列的结构 表新增字段 找到报表展示的子例程 找到程序RQEEAL10,子例程中新增隐式增强 隐式增强 ...

  6. MyBatis:快速入门

    MyBatis 简介 MyBatis 是一个开源.轻量级的数据持久化框架,是 JDBC 和 Hibernate 的替代方案.MyBatis 内部封装了 JDBC,简化了加载驱动.创建连接.创建 sta ...

  7. 如何做一次完美的 ABTest?

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/mO5MdwG7apD6RzDhFwZhog作者:DuZhimin 越来越多的公司都在尝试 AB ...

  8. 二、Mycat安装

    系列导航 一.Mycat实战---为什么要用mycat 二.Mycat安装 三.mycat实验数据 四.mycat垂直分库 五.mycat水平分库 六.mycat全局自增 七.mycat-ER分片 万 ...

  9. C#设计模式02——原型模式的写法

    public class ProteType { private static ProteType _ProteType = new ProteType(); private ProteType() ...

  10. docker 镜像管理之 overlay2 最佳实践

    1. Docker 镜像 Docker 镜像是个只读的容器模板,它组成了 Docker 容器的静态文件系统运行环境 rootfs,是启动 Docker 容器的基础. Docker 镜像是容器的静态视角 ...