精华内容
下载资源
问答
  • 下午接到用户的电话,告知他们的远程访问系统启动失败,重启服务器还是不能正常访问。开始的解决思路重要集中在tomcate上,通过查看日志,提示是连接数据库的问题。通过netstat-aux|grep3306没有看到服务正常监听,...

    下午接到用户的电话,告知他们的远程访问系统启动失败,重启服务器还是不能正常访问。开始的解决思路重要集中在tomcate上,通过查看日志,提示是连接数据库的问题。

    通过netstat -aux|grep 3306没有看到服务正常监听,通过查看MySQL 系统日志,

    130201  2:09:47 [ERROR] /usr/libexec/mysqld: Disk is full writing './mysqld-bin.

    000004' (Errcode: 28). Waiting for someone to free space... Retry in 60 secs

    130201  2:19:47 [ERROR] /usr/libexec/mysqld: Disk is full writing './mysqld-bin.

    000004' (Errcode: 28). Waiting for someone to free space... Retry in 60 secs

    130201  2:29:47 [ERROR] /usr/libexec/mysqld: Disk is full writing './mysqld-bin.

    看到是磁盘空间满了,通过df发现/dev/sda5的利用率已经100%。很奇怪,我们的应用数据的增长是很慢的,而且各个表都不是很大,最近通过find / -size +20000k,发现系统日志占用磁盘空间很,主要是messages、messages.1、bandwidth、btmp,都是几个GB的空间,通过释放这些空间,将磁盘的利用率降低在26%。

    重启系统正常。

    展开全文
  • Linux oracle监听启动失败

    千次阅读 2017-10-26 14:20:57
    报错提示:The listener supports no services The command completed successfully 修改服务器主机名 [root@myhost]# vi /etc/...问题原因:数据库实例没注册到listener 步骤一: 在/oracle/product/11.2.0/db/
    报错提示:
    The listener supports no services
    The command completed successfully

    修改服务器主机名

    [root@myhost]# vi /etc/hosts
    添加
    127.0.0.1 主机名
    ip  主机名

    问题原因:数据库实例没注册到listener

    步骤一:

    在/oracle/product/11.2.0/db/network/admin/listener.ora里面添加了一行

    SID_LIST_LISTENER =  
    (SID_LIST =  
      (SID_DESC =  
      (GLOBAL_DBNAME = orcl)
      (SID_NAME = orcl)
      )
    )

    --监听文件的内容
    
    more listener.ora
    注:里面的orcl根据你安装的数据库实例名确定,我用此法解决了这个报错。

    步骤二:


    启动后,提示IInstance "orcl", status UNKNOWN, has 1 handler(s) for this service...这个提示一般认为很正常,是由于实例没有注册到监听服务中去,于是注册实例 

    登入sqlplus

    sqlplus / as sysdba
    显示服务名:
    show parameter service_names
    强制注册服务:
    alter system register;
    查看监听状态:

    lsnrctl status



    展开全文
  • linux下连接数据库失败 ora-12154

    千次阅读 2018-03-07 14:36:27
    前两天连接数据库时突然出现:连接数据库失败 ora-12154 最后百度了一下 说是oracle数据库监听服务挂了 应该进行启动。 启动过程在这里做个记录(不过就是一些简单的命令而已): 1 使用xshell连接oracle所...

    前两天连接数据库时突然出现:连接数据库失败 ora-12154
    最后百度了一下 说是oracle数据库的监听服务挂了 应该进行启动。
    启动过程在这里做个记录(不过就是一些简单的命令而已):
    1 使用xshell连接oracle所部署的服务器;
    2 执行sqlplus username/password,连接数据库;
    3 执行connect /as sysdba,使用管理员用户登录;
    4 执行startup即可完成数据库监听服务的启动。
    5 再重新试一下使用plsql连接数据库,成功~

    展开全文
  • 手里的一个springboot项目放在linux生产服务器上,其中有段业务要求是需要查询公司的数据库,从而获取相关信息,之前没有出现过连接问题, 然而在公司数据库做过一次升级之后,(数据库地址变更并且由oracle10g升到...
  • linux熵池耗尽,导致oracle数据库连接失败今天接到某业务...赶紧检查数据库状态……结果:数据库监听正常集群状态正常数据库日志没有报错会话远没达到配置上线数据库没有死锁系统资源都比较空闲,没有压力数据库一...

    linux熵池耗尽,导致oracle数据库连接失败

    今天接到某业务开发人员的报错信息:

    aeeb491e8554

    1.png

    随后又接到应用运维人员的报错信息:

    aeeb491e8554

    2.png

    连接失败,errorCode 17002, state 08006

    两位同学的反馈,问题都指向数据库,应用无法连接数据库。

    赶紧检查数据库状态……

    结果:

    数据库监听正常

    集群状态正常

    数据库日志没有报错

    会话远没达到配置上线

    数据库没有死锁

    系统资源都比较空闲,没有压力

    数据库一切正常……

    根据错误代码,进行查询,发现可能是linux系统熵池不够,导致连接无法建立,原因是oracle 11g JDBC在建立连接时需要大约40个字节随机数据来加密session token之类的连接字符串,而这个随机数据源默认用的是/dev/random,通过搜集键盘,鼠标,中断,磁盘操作来产生随机数据,可以通过以下命令查看当前的熵值:

    cat /proc/sys/kernel/random/entropy_avail

    结果发现,熵值最低时为100多,最高时只有300多。

    aeeb491e8554

    3.png

    熵池上限大小

    cat /proc/sys/kernel/random/poolsize

    4096

    明显熵池不够,我们有以下几种解决方法:

    1)把随机源由/dev/random修改为/dev/urandom,即在执行java程序加入命令行参数:

    -Djava.security.egd=file:///dev/urandom

    2)安装一个提供熵的程序包

    yum install haveged

    service haveged start

    chkconfig --level 2345 haveged on

    yum install rng-tools

    service rngd start

    chkconfig --level 2345 rngd on

    安装后,熵值飙升到3000多,业务重启后,连接数据恢复正常

    aeeb491e8554

    4.png

    那么,究竟是什么程序频繁消耗熵值呢?

    我们查看一下熵值随时间的变化情况

    cat /proc/sys/kernel/random/entropy_avail && date

    发现每次在0秒时,下降比较大

    aeeb491e8554

    55png.png

    想起前段时间部署了oracle数据采集脚本,使用python+cx_oracle连接数据库,每分钟执行一次。

    linux熵池原理

    Linux内核采用熵来描述数据的随机性。熵(entropy)是描述系统混乱无序程度的物理量,一个系统的熵越大则说明该系统的有序性越差,即不确定性越大。在信息学中,熵被用来表征一个符号或系统的不确定性,熵越大,表明系统所含有用信息量越少,不确定度越大。

    计算机本身是可预测的系统,因此,用计算机算法不可能产生真正的随机数。但是机器的环境中充满了各种各样的噪声,如硬件设备发生中断的时间,用户点击鼠标的时间间隔等是完全随机的,事先无法预测。Linux内核实现的随机数产生器正是利用系统中的这些随机噪声来产生高质量随机数序列。

    内核维护了一个熵池用来收集来自设备驱动程序和其它来源的环境噪音。理论上,熵池中的数据是完全随机的,可以实现产生真随机数序列。为跟踪熵池中数据的随机性,内核在将数据加入池的时候将估算数据的随机性,这个过程称作熵估算。熵估算值描述池中包含的随机数位数,其值越大表示池中数据的随机性越好。

    linux熵池与oracle数据库的关系

    默认情况下,Oracle JDBC 11g似乎会使用/dev/random。而使用/dev/random生成随机数时,依赖熵池。如果熵池空了或不够用,对/dev/random的读取就会堵塞,直到熵池够用为止。但是有文章中说,urandom的随机性弱于random(也有反对者)。

    那怎么让熵池增加呢?熵池小会有什么其他后果吗?

    熵池本质上是若干字节。/proc/sys/kernel/random/entropy_avail 中存储了熵池现在的大小,/proc/sys/kernel/random/poolsize是熵池的最大容量,单位都是bit。如果entropy_avail的值小于要产生的随机数bit数,那么/dev/random就会堵塞。

    熵池怎么增加?

    只有少数驱动程序会填充熵池,首先是键盘和鼠标。

    实际上是从各种noice source中获取数据,noice source可能是 键盘事件、鼠标事件、设备时钟中等。

    linux内核从2.4升级到2.6时,处于安全性的考虑,废弃了一些source。source减少了,熵池补给的速度当然也变慢,进而不够用。

    具体方法参考文中前半部分

    熵斥堵塞会有什么后果?

    其实,通过消耗熵池,可以构造DOS攻击。原理很简单,熵池空了,依赖随机数的业务(SSL,加密等)就不能正常进行。

    展开全文
  • 每次连接数据库,oracle都会记录日志,比如listener.log,当日子文件超过2G时,linux操作大文件就会无法写入,导致监听失败,不能正常连接数据库。重启监听器之后就会把日志文件重置。我们的程序由于有很多demo...
  • Linux下配置Oracle数据库的客户端

    千次阅读 2018-05-25 15:27:51
    Oracle 链接操作oracle数据库的时候遇到链接Oracle服务器失败错误:cx_Oracle.DatabaseError: ORA-28547: connection to server failed, probable Oracle Net admin error突然想到由于我是在新装的Linux虚拟机上运行...
  • 在ORACLE测试服务器上还原恢复了一个数据库后,启动监听服务时出现了TNS-12541, TNS-12560,TNS-00511之类的错误,具体情况如下所示: [oracle@getlnx01 admin]$ lsnrctl status LSNRCTL for Linux: Version 10.2...
  • 最近,本人在一台Linux虚拟机上安装了Oracle数据库,本来没出现什么问题的,但是昨日在切换了网络之后,导致远程连不上数据库了,一查,原来是虚拟机的IP地址改变了。 一开始以为是小问题,修改一下客户端的tnsnames...
  • 文章目录出现的问题问题定位 出现的问题 问题1: 提示TNS: 监听程序当前无法识别...PLSQL Developer提示TNS:无监听程序 或者 程序连接数据库失败( The Network Adapter could not establish the connection。 ) 问题...
  •  21.1.1 数据库失败的种类  21.1.2 备份和恢复的解决方案  21.1.3 备份和恢复的物理结构  21.1.4 备份的类型  21.1.5 执行用户管理的备份  21.2 恢复管理器(rman)  21.2.1 通道  21.2.2 备份集的...
  •  21.1.1 数据库失败的种类  21.1.2 备份和恢复的解决方案  21.1.3 备份和恢复的物理结构  21.1.4 备份的类型  21.1.5 执行用户管理的备份  21.2 恢复管理器(rman)  21.2.1 通道  21.2.2 备份集的...
  •  21.1.1 数据库失败的种类  21.1.2 备份和恢复的解决方案  21.1.3 备份和恢复的物理结构  21.1.4 备份的类型  21.1.5 执行用户管理的备份  21.2 恢复管理器(rman)  21.2.1 通道  21.2.2 备份集的...
  •  21.1.1 数据库失败的种类  21.1.2 备份和恢复的解决方案  21.1.3 备份和恢复的物理结构  21.1.4 备份的类型  21.1.5 执行用户管理的备份  21.2 恢复管理器(RMAN)  21.2.1 通道  21.2.2 备份集的...
  •  21.1.1 数据库失败的种类  21.1.2 备份和恢复的解决方案  21.1.3 备份和恢复的物理结构  21.1.4 备份的类型  21.1.5 执行用户管理的备份  21.2 恢复管理器(rman)  21.2.1 通道  21.2.2 备份集的...
  •  21.1.1 数据库失败的种类  21.1.2 备份和恢复的解决方案  21.1.3 备份和恢复的物理结构  21.1.4 备份的类型  21.1.5 执行用户管理的备份  21.2 恢复管理器(rman)  21.2.1 通道  21.2.2 备份集的...
  •  21.1.1 数据库失败的种类  21.1.2 备份和恢复的解决方案  21.1.3 备份和恢复的物理结构  21.1.4 备份的类型  21.1.5 执行用户管理的备份  21.2 恢复管理器(rman)  21.2.1 通道  21.2.2 备份集的...
  •  21.1.1 数据库失败的种类  21.1.2 备份和恢复的解决方案  21.1.3 备份和恢复的物理结构  21.1.4 备份的类型  21.1.5 执行用户管理的备份  21.2 恢复管理器(rman)  21.2.1 通道  21.2.2 备份集的...
  •  21.1.1 数据库失败的种类  21.1.2 备份和恢复的解决方案  21.1.3 备份和恢复的物理结构  21.1.4 备份的类型  21.1.5 执行用户管理的备份  21.2 恢复管理器(rman)  21.2.1 通道  21.2.2 备份集的...
  •  21.1.1 数据库失败的种类  21.1.2 备份和恢复的解决方案  21.1.3 备份和恢复的物理结构  21.1.4 备份的类型  21.1.5 执行用户管理的备份  21.2 恢复管理器(rman)  21.2.1 通道  21.2.2 备份集的...
  • 1.监听程序无法识别连接描述符中请求的服务 解决思路:若是服务器断电重启,多半...shutdown immediate --立即关闭数据库服务(关闭失败可强行关闭:shutdown abort) startup --启动数据库服务 重启监听 lsnr
  • 因为直接重启服务器会出现启动项目时连接数据库失败,但是用数据库连接工具可以连接这时也要重启oracle监听 重启SQL: su - oracle sqlplus /nolog conn /as sysdba shutdown immediate startup quit 重启...
  • linux系统端口保留

    千次阅读 2017-12-18 14:18:02
    就是如果当前应用程序设置了监听端口,例如10003端口,但是无法保证本机有其他程序在socket通信中使用了该端口作为客户端去和服务端通信,比如去连接数据库,以前就有一次发现本地的服务端绑定10003端口失败,...
  • 因为直接重启服务器会出现启动项目时连接数据库失败,但是用数据库连接工具可以连接这时也要重启oracle监听 重启SQL: su - oracle sqlplus /nolog conn /as sysdba shutdown immediate startup quit 重启...

空空如也

空空如也

1 2 3
收藏数 59
精华内容 23
关键字:

linux数据库监听失败

linux 订阅