如何通过查看CentOS SQLplus日志,高效轻松地排查数据库问题呢?

更新于
2026-08-21 08:38:34
2阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

痛点:在 CentOS 环境下排查 Oracle 数据库问题时往往不知道 SQL*Plus 的会话输出、错误信息到底保存在哪里;说起来,1️⃣ 日志散落在多个目录,手动搜索耗时。2️⃣ 默认不记录会话,出错后只能凭记忆复现。3️⃣ 日志文件行宽、空格被截断,导致关键信息难以阅读。解决思路:通过程序自带工具和 Oracle 自带的 alert/trace 日志。实现“一键抓取‑一键定位”,让排查过程从“盲目”变成“可视”。

一、SQL*Plus 本身不生成日志——先把会话输出抓下来

1. 使用 SPOOL 命令实时写入文件

1) 进入 SQL*Plus 会话后立即开启 SPOOL: SPOOL /var/log/sqlplus/session_$.log 2) 执行所有查询、DDL、DML。3) 完成后关闭 SPOOL:SPO OFF 4) 生成的日志保留原始换行、空格,便于后期 grep/awk 分析。

如何通过查看CentOS SQLplus日志,高效轻松地排查数据库问题呢?

2. 使用 Linux script 命令捕获完整终端交互

script -q -c "sqlplus / as sysdba" /var/log/sqlplus/script_$.log 该方式会把所有键入和输出全部记录。包括错误堆栈和提示符,非常适合一次性排查 “登录卡死”“无响应”等现场问题。

3. 调整 LINESIZE 与 TRIMSPOOL 防止行宽被裁剪

再看在登录后执行。SET LINESIZE 32767 SET TRIMSPOOL OFF 这样即使假脱机输出的文本行宽度也保持与终端一致,避免关键信息被截断。

阅读全文
标签:CentOS

痛点:在 CentOS 环境下排查 Oracle 数据库问题时往往不知道 SQL*Plus 的会话输出、错误信息到底保存在哪里;说起来,1️⃣ 日志散落在多个目录,手动搜索耗时。2️⃣ 默认不记录会话,出错后只能凭记忆复现。3️⃣ 日志文件行宽、空格被截断,导致关键信息难以阅读。解决思路:通过程序自带工具和 Oracle 自带的 alert/trace 日志。实现“一键抓取‑一键定位”,让排查过程从“盲目”变成“可视”。

一、SQL*Plus 本身不生成日志——先把会话输出抓下来

1. 使用 SPOOL 命令实时写入文件

1) 进入 SQL*Plus 会话后立即开启 SPOOL: SPOOL /var/log/sqlplus/session_$.log 2) 执行所有查询、DDL、DML。3) 完成后关闭 SPOOL:SPO OFF 4) 生成的日志保留原始换行、空格,便于后期 grep/awk 分析。

如何通过查看CentOS SQLplus日志,高效轻松地排查数据库问题呢?

2. 使用 Linux script 命令捕获完整终端交互

script -q -c "sqlplus / as sysdba" /var/log/sqlplus/script_$.log 该方式会把所有键入和输出全部记录。包括错误堆栈和提示符,非常适合一次性排查 “登录卡死”“无响应”等现场问题。

3. 调整 LINESIZE 与 TRIMSPOOL 防止行宽被裁剪

再看在登录后执行。SET LINESIZE 32767 SET TRIMSPOOL OFF 这样即使假脱机输出的文本行宽度也保持与终端一致,避免关键信息被截断。

阅读全文
标签:CentOS