Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
oracle错误是否导致Linux系统可以ping但不能ssh?_Linux_Oracle_Ssh_Ping - Fatal编程技术网

oracle错误是否导致Linux系统可以ping但不能ssh?

oracle错误是否导致Linux系统可以ping但不能ssh?,linux,oracle,ssh,ping,Linux,Oracle,Ssh,Ping,到目前为止,我们已经两次看到同样的奇怪问题 首先,我们发现远程Linux服务器响应ping,但我们无法ssh。我们转到服务器,发现系统没有响应,不得不重新启动。重新启动后,我们检查了日志。我们在/var/log/message日志中未找到任何内容,但在Oracle的*\u alert.log文件中发现了一些错误消息: Thread 1 cannot allocate new log, sequence 296280 Private strand flush not complete Curren

到目前为止,我们已经两次看到同样的奇怪问题

首先,我们发现远程Linux服务器响应
ping
,但我们无法
ssh
。我们转到服务器,发现系统没有响应,不得不重新启动。重新启动后,我们检查了日志。我们在
/var/log/message
日志中未找到任何内容,但在Oracle的
*\u alert.log
文件中发现了一些错误消息:

Thread 1 cannot allocate new log, sequence 296280
Private strand flush not complete
Current log# 3 seq# 296279 mem# 0: /home/oracle/app/oracle/oradata/orcl/redo03.log
Current log# 3 seq# 296279 mem# 1: /home/oracle/app/oracle/oradata/orcl/redo09.log
Thread 1 advanced to log sequence 296280 (LGWR switch)
Current log# 2 seq# 296280 mem# 0: /home/oracle/app/oracle/oradata/orcl/redo02.log
Current log# 2 seq# 296280 mem# 1: /home/oracle/app/oracle/oradata/orcl/redo08.log
Process P098 died, see its trace file
Process P098 died, see its trace file
Process P098 died, see its trace file
我们的问题是:

  • Oracle会导致Linux挂起吗?我想即使Oracle死了,Linux也应该活着。我们认为这是相关的,因为这些事件同时发生,即Oracle在Linux挂起之前死亡

  • 服务器响应
    ping
    但不允许
    ssh
    的原因是什么? 当
    ssh
    登录失败时,我们做了一个测试,它显示端口22正常:

    [administrator@localhost ~]$ nc -v -w 1 172.16.*.* -z 22
    Connection to 172.16.*.* 22 port [tcp/ssh] succeeded!  
    
    当我们执行
    ssh-v
    时,它会在“加载ssh密钥”处停止

  • 3.为什么linux服务器挂起,但仍然可以
    ping
    ?如何防止系统挂起


    有什么解释吗?

    是的,如果进程负载非常高,oracle可以挂起您的系统。请告诉我们,您在使用oracle或RACK的系统上是否存在多路径。

    您显示的日志片段没有说明数据库崩溃;它看起来像是日志切换中的延迟,以及一个正在消亡的进程。这当然应该进行调查——您可以从查看跟踪文件开始——但这可能是一种症状,而不是原因

    非常高的负载会使服务器表现为这样,对某些网络事件做出响应,但无法(或速度非常慢)创建新进程。这就解释了为什么您可以连接到端口22,但sshd的进展不是很快,也没有完成连接过程。这也可以解释你的
    P098
    死亡——一开始可能不是ale

    甲骨文不太可能直接造成这种情况。更有可能的情况是,您有一个脚本或应用程序进程由于某种原因正在旋转,生成新的进程,直到系统运行put资源。(您当然可以在PL/SQL块中获得一个无限循环,这将导致高负载,但不会导致进程耗尽—因此您最终能够连接)。如果处理得不好,您可能会遇到一个ORA错误,导致脚本/应用程序循环,但您必须希望这会在应用程序日志中显示出来。它甚至可能不是与DB对话的东西

    如果没有记录,基本上不可能知道发生了什么。如果您知道当时运行的是什么,您可能有一个起点。您还可以回顾DB在出现问题之前所做的工作,例如Oracle Enterprise Manager中的AWR报告


    不幸的是,如果无法连接,就无法进行恢复,即使现有的shell正在运行,也可能无法运行有用的工具来查看发生了什么。有时,硬重启是唯一的选择,尽管这显然是最后的手段。

    在这方面你也有OracleSM吗。如果是,请按照内核更新包。请将oracle更新到我们的系统中只有一个oralce,并且没有RACE。我也猜可能有一些pl/sql出错,但我们没有找到哪一个。现在,我们重新启动服务器,并使用top命令每天检查它,看看cpu是否非常高。它能阻止系统挂起吗?@snow8261-
    top
    只告诉你发生了什么,它不能阻止任何事情。您可以在Linux中设置资源限制(例如
    nproc
    limits.conf
    中,或通过
    ulimit-u
    ;请参阅
    man-ulimit
    )或在数据库中(使用,也可能感兴趣)。但是,在实施之前,要了解他们将要做什么!一条语句,甚至一个PL/SQL块,可能会导致比正常负载更高的负载,但通常不会产生进程。谢谢,似乎linux和oracle都需要优化。