Oracle日志文件达到4G

本文提供两种清理Oracle监听器日志的方法:一是通过LSNRCTL命令行工具停止并重启监听器,手动删除日志文件;二是使用批处理脚本定时截断日志文件大小,适用于Windows环境。
解决方案一:停止监听器

1)LSNRCTL进入交互模式 cmd 输入 LSNRCTL
2)执行set current_listener LISTENER
3)set log_status off
4)stop 停止监听器
5)手工删除ADR指定的监听日志路径下的listener.log文件
6)start重启监听器
7)status查看状态


解决方案二:脚本定时清除log文件


@echo off
rem FileSize以KB为单位指定当日志文件达到多大时进行截断,默认是2GB
rem FileBakName指定备份的日志文件名,不能使用全路径!
rem FileBak备份日志的文件名,需指定全路径!
rem FileName需要截断的日志文件,需指定全路径!

set /a FileSize=2*1024*1024
set FileBakName="alter.log.bak"
set FileBak="D:\工作文档\temp\alter.log.bak"
set FileName="D:\工作文档\temp\alter.log"
if exist %FileName% (
for %%i in (%FileName%) do (
set /a CurrentSize=%%~zi/1024
if %CurrentSize% gtr %FileSize% (
if exist %FileBak% (
del %FileBak%
)
ren %FileName% %FileBakName%
)
)
)

很原始,只能监控一个日志文件,而且要手动设置几个参数,最后加入到计划任务里面就行了。
这个问题如果是在Linux下可以用logrotate工具解决,logrotate是一个让日志文件自动按周期归档的工具,以避免日志文件过大。


Windows下可以使用下面的命令来控制
cd E:\app\Administrator\diag\tnslsnr\NDEAM003\listener\trace


lsnrctl set log_status off
rename listener.log listener20170109.old
lsnrctl set log_status on
### 关于 Oracle 数据库 4G 跟踪文件或配置问题的解决方案 当遇到与 Oracle 数据库相关的跟踪文件(trace files)或者配置错误时,通常需要检查以下几个方面: #### 1. **内存参数调整** 如果出现了 `ORA-00845: MEMORY_TARGET not supported on this system` 的错误,则表明当前系统的共享内存设置不足以支持所定义的 `MEMORY_TARGET` 参数。此错误通常是由于操作系统级别的共享内存限制引起的[^1]。 可以通过修改操作系统的内核参数来解决该问题。以下是 Linux 系统中的具体方法: ```bash # 编辑 /etc/sysctl.conf 文件并增加以下内容 kernel.shmmax = 4294967296 # 设置最大共享内存大小为 4GB kernel.shmall = 1048576 # 设置共享内存页数 # 应用更改 sysctl -p ``` 完成以上步骤后重启数据库实例即可尝试解决问题。 --- #### 2. **临时空间管理** 对于某些情况下涉及大量临时数据的操作(如大容量导出),可能会因为 `/tmp` 或其他临时目录的空间不足而导致失败。可以考虑重新分配更大的磁盘分区给这些路径,并通过环境变量指定新的位置[^2]。 例如,在 Shell 中执行以下命令以改变默认的临时目录: ```bash export TMPDIR=/path/to/new/tmp/directory/ ``` 确保新设定的位置有足够的可用存储空间供程序运行期间使用。 另外需要注意的是,在集群环境中(RAC Systems),应用节点上的 `$APPLPTMP` 变量应该指向所有成员服务器间可访问的一致区域;而普通的临时工作区则不需要跨主机同步[^2]。 --- #### 3. **诊断追踪日志分析** 针对更复杂的场景比如定位具体的性能瓶颈或是异常行为模式,启用额外的日志记录功能会很有帮助。这包括但不限于开启 SQL Trace 和 TKPROF 工具来进行深入剖析。 启动单次会话级跟踪的方法如下所示: ```sql ALTER SESSION SET TRACEFILE_IDENTIFIER='MY_TRACE'; ALTER SESSION SET EVENTS '10046 trace name context forever, level 12'; -- 执行目标查询或其他动作... ALTER SESSION SET EVENTS '10046 trace name context off'; ``` 之后利用 tkprof 对原始 dump 进行整理以便阅读理解: ```bash tkprof $ORACLE_HOME/rdbms/audit/MY_TRACE.trc output.txt explain=your_user_name/your_password ``` 这样可以获得经过优化处理后的报告文档用于进一步研究。 --- #### 4. **确认 AMM 是否激活** 自动内存管理(AMM)特性依赖于 SGA 和 PGA 合并计算得出总需求值后再统一调配资源池大小。然而部分老旧硬件平台可能并不完全兼容这种机制从而引发冲突警告消息。因此建议核查是否存在此类情况并通过显式声明各子组件限额的方式规避潜在风险。 即关闭全局动态调节开关转回传统固定布局形式下单独定制各项数值范围。 ```sql -- 停止 ASM 自动化控制 shutdown immediate; startup nomount; alter system set memory_target=0 scope=spfile; alter system set memory_max_target=0 scope=spfile; -- 单独指派 sga/pa 配额比例关系 alter system set sga_target=<value> scope=both; alter system set pga_aggregate_target=<value> scope=both; shutdown immediate; startup; ``` --- ### 总结 综上所述,面对 Oracle Database 出现关于 4G 范围内的痕迹档案或者是基础架构层面失误状况之时,应当综合考量系统底层资源配置状态以及高层业务逻辑实现细节两方面的因素共同作用影响最终效果表现出来的情况作出相应对策措施加以应对处置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值