关闭数据库时hang住,日志无任何报错

本文记录了一次Oracle数据库在尝试立即关闭时挂起的问题排查过程。问题出现的原因是先前的会话未正确断开,并且使用了host命令切换到操作系统提示符,导致数据库无法正常关闭。通过重新进入RMAN并正常退出后,数据库能够成功关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关闭数据库时hang住

SQL> shutdown immediate;  无任何反应


alert日志信息

Thu Sep 01 13:19:29 2016
Shutting down instance (immediate)
Stopping background process SMCO
Shutting down instance: further logons disabled
License high water mark = 7
All dispatchers and shared servers shutdown---   一直卡在此处不动


经查资料得知是因为之前的session没有断开,而后又使用了host切换到OS提示符下,导致数据库无法正常关闭


之前在rman下使用了host,现在重新回到rman正常关闭rman后数据库可以正常关闭了


SQL> shutdown immediate
^CORA-01013: user requested cancel of current operation


SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
[oracle@csrac1 bin]$ exit
exit
host command complete
RMAN-06900: WARNING: unable to generate V$RMAN_STATUS or V$RMAN_OUTPUT row
RMAN-06901: WARNING: disabling update of the V$RMAN_STATUS and V$RMAN_OUTPUT rows
ORACLE error from target database: 
ORA-03135: connection lost contact
Process ID: 19862
Session ID: 1 Serial number: 9




RMAN> exit




Recovery Manager complete.
[oracle@csrac1 bin]$ sqlplus / as sysdba


SQL*Plus: Release 11.2.0.4.0 Production on Thu Sep 1 13:38:59 2016


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




Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options


SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> 

### 接口调试工具中Socket Hang Up 错误的原因 当接口调试工具报告 `socket hang up` 错误,这通常意味着客户端尝试与服务器建立连接的过程中遇到了问题。具体来说,在TCP/IP协议栈上,这种错误表明套接字在等待响应期间被意外关闭[^2]。 常见的原因包括但不限于: - 客户端或服务端网络配置不当。 - 防火墙或其他网络安全设备阻止了通信。 - 服务器未能及处理请求并返回适当响应。 - 请求超出了服务器设定的最大允许间范围。 - 双方之间的中间件(如负载均衡器)终止了闲置连接。 ### 解决方案概述 为了有效应对上述情况,建议采取以下措施来解决问题: #### 调整超设置 增加客户端和服务端双方的读写超参数值,确保有足够的间完成握手过程以及后续的数据交换。对于HTTP(S)类型的API调用而言,可以通过修改库函数的相关选项实现这一点;而对于基于WebSocket的应用,则需调整对应的框架属性。 #### 检查防火墙规则 确认所有涉及的机器上的防火墙策略不会阻碍必要的端口访问权限,并且任何企业级安全防护机制也不会干扰正常的流量流动。必要情况下可暂禁用某些保护层来进行测试验证。 #### 增强日志记录功能 增强应用程序的日志级别以获取更详细的上下文信息,特别是关于失败前后的活动描述。这对于定位根本原因是至关重要的。例如,在C# Web API项目里,可以在全局异常过滤器内加入更多诊断细节再反馈给前端开发者[^3]。 #### 实施重试逻辑 引入合理的自动恢复机制,即在网络状况不佳的情况下让程序按照预定算法重复发起相同的请求直到成功为止。不过需要注意的是,应当谨慎控制最大重试次数以免造成不必要的资源浪费或者形成死循环[^4]。 ```csharp public async Task<IActionResult> Post([FromBody] MyData data) { try { var result = await _service.ProcessAsync(data); return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(result.ToString()) }; } catch (Exception ex) { logger.LogError($"An error occurred while processing the request: {ex.Message}"); return new HttpError(ex.Message); // 自定义HttpError类用于封装错误消息 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值