1、现象:

  1. 客户端连接数据库时连接缓慢或超时。
  2. 数据库服务器执行lsnrctl status命令查看监听状态时缓慢或卡住。
  3. 数据库日志无报错记录。

2、原因:

此时一般为数据库监听日志 listener.log 大小超过限制的原因,此问题多出现在 Windows 操作系统,Windows 使用 FAT16 文件系统时,单个最大文件大小为 2GB。Windows 使用FAT32文件系统时,单个最大文件大小为 4GB。Linux使用 ext2 文件系统时,单个最大文件大小为 1TB。Linux 使用 ext3 文件系统时,单个最大文件大小为 2TB。虽操作系统文件大小限制不大,但监听日志过大,仍会影响数据库连接。建议监听日志大小定期监控清理,不超 2GB。

3、解决方式:

3.1 Windows 环境

监听日志大小已达到最大值,监听命令卡到无法操作时,可通过如下操作处理。(停监听过程,新建连接无法连入)

1)停止监听服务。

2)找到监听文件日志文件(listener.log),右键重命名。

3)启动监听服务。

监听日志大小临近最大值或监听命令不卡顿,日常清理监听日志步骤如下。(不会影响业务连接)

1)查看监听日志大小。

监听日志所在目录,Oracle软件安装目录找到app所在文件夹按如下路径查找:

D:\app\Administrator\diag\tnslsnr\主机名\listener\trace

或dos命令(cmd窗口)运行lsnrctl status查看,到listener\trace下:

2)清理监听日志。

Dos窗口切换到监听日志所在目录下:

备份原监听日志,重新生成新监听日志:

lsnrctl set log_status off  --暂停或脱机记录日志文件

rename listener.log listener.old.20200706  --重命名日志文件,一般加上日期,操作系统没空间,确定监听日志不再用时,可删除。

lsnrctl set log_status on   --联机监听器日志文件,会自动重新创建一个新的日志文件

3.2 Linux 环境

1)查看监听日志大小。

监听日志所在目录,Oracle软件安装目录找到app所在文件夹按如下路径查找:

/u01/app/oracle/diag/tnslsnr/主机名/listener/trace

或oracle用户下运行lsnrctl status命令查看,到listener/trace下:

切换到监听日志所在目录下,运行du -sh *命令查看文件大小:

2)清理监听日志。

在监听日志所在目录下运行如下命令,备份原监听日志,重新生成新监听日志:

lsnrctl set log_status off  --暂停或脱机记录日志文件

mv listener.log listener.old.20200706  --重命名日志文件,一般加上日期,操作系统没空间,确定监听日志不再用时,可删除。

lsnrctl set log_status on   --联机监听器日志文件,会自动重新创建一个新的日志文件

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐