oracle每分钟都在生成归档,Oracle数据库日常问题-归档异常增长

本文介绍了Oracle数据库在启用归档模式后遇到的归档文件异常增长问题,导致数据库无法正常工作。文章详细阐述了解决空间不足的紧急措施,包括扩展空间或删除归档文件,并分析了归档增长过快的原因,如定时任务、数据库BUG等。通过日志挖掘、AWR报告和TOP SQL分析,给出了不同场景下的案例分析和解决方案,包括禁用段指导、修复产品BUG、调整数据库JOB和优化业务操作等。最后提醒关注审计功能对归档的影响,并提供了关闭审计和减少表日志记录的方法。
摘要由CSDN通过智能技术生成

Oracle

数据库日常问题

-

归档异常增长

数据库启用归档模式,主要是保证数据安全,但是如果归档增长过快,或者人员维护不合理,可能会导致归档文件把磁盘占满,最终数据库无法正常工作;

数据库归档增长异常,最终导致数据库无法使用,如何查找原因,解决问题呢?

1

当出现归档空间不足

,首先需要

通过

扩空间或者移动

(

删除

)

部分归档文件释放空间,尽快让数据库正常工作;

2

数据库可以后,再去

具体分析归档文件增长过快的原因;

归档空间满了,在删除归档之前需要确定归档所在目录(archive log list

);

如果归档文件放在默认的闪回区,必须通过RMAN

delete

命令进行删除归档,或者直接通过命令扩大闪回区大小,不能通过操作系统命令直接删除闪回区下的归档文件;

如果归档文件存放路径是手动指定的其他目录,非闪回去,除了RMAN

删除归档外,也可以通过操作系统命令移动或删除归档文件;

1

删除过期归档

删除过期(expired)

的归档,释放空间;

RMAN> crosscheck archivelog all;

RMAN> list expired archivelog all;

RMAN> delete expired archivelog all;

删除指定时间归档

RMAN>delete archivelog until time 'sysdate-7';

删除废弃(obsolete)

的归档,释放空间;

RMAN> report obsolete;

RMAN> delete obsolete;

扩大归档所在空间(

闪回区

)

select

dbid

,

name

,

log_mode

from

v$database

;

SQL> archive log list;

SQL> show parameter db_recovery

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest                string      D:\app_10.2.0.4\Administrator\flash_recovery_area

db_recovery_file_dest_size           big integer 2530M

select

*

From

v$flash_recovery_area_usage

;

修改闪回

区大小

:alter system set db_recovery_file_dest_size = 4G

(更改大小)

删除部分归档后,数据库就可以正常工作了,这时需要具体分析归档过快的原因;

首先需要知道每天(

每小时

)

归档产生频率和大小;

如果每天大多数归档文件都某个特定时间内产生的,那么可能是这段时间有定时JOB

,或者计划任务,查看一下这些

JOB

和计划任务是否合理;

如果每天的每秒每分钟都在不停的产生归档,很可能产品或者数据库存在BUG

,需要具体分析产生归档的

SQL

语句,才能和业务操作联系起来;

如果都是工作时间内产生的归档,可能是正常业务操作产生的归档,具体分析业务操作对应的表,SQL

信息等,通常情况需要增加存储空间;

2

分析归档过快原因

查看归档参数频率

查看数据库JOB

查看计划任务

----

查看数据库归档分布及频率

dc04f5786e6c72802371cf5fe08d2900.png

3

查找归档增长异常常见方法

一:日志挖掘

分析多个归档文件中SQL

信息

1ba89683e7bf9ee417cd1de4f83c3f1f.png

1.

2.

(unless you plan to use the online catalog)

3.

4.

5.

6.

8d4f08e345ac6f4170d914329392a79b.png

二:AWR

报告

Segments by DB Blocks Changes

结合

TOP SQL

进行分析

归档异常增长

案例

问题原因:

11g

数据库自动维护任务

-

段指导

BUG

导致归档增长过快。

现象:

平时每天归档5G

左右,突然有一天

产生200

G

归档

分析过程:

先通过SQL

查看全天中每小时归档量,找出归档最集中的时间段,并收集这一时间段的

AWR

报告,或通过日志挖掘分析这一时间段的归档文件。

发现大多数归档文件生成时间特别集中,收集这段时间AWR

报告即可。

通过AWR

报告查找归档异常增长原因

查看问题期间AWR

报告,发现有一条

CTAS

语句特别耗时

a1b654e2428ef326fa1f16e302811e32.png

SQL

语句如下:

1

call dbms_space.auto_space_advisor_job_proc ( )

2

create table “XXX".DBMS_TABCOMP_TEMP_UNCMP tablespace NNC_DATA02 as select /*+ full(“

CHENJCH

".SM_PUB_FILESYSTEM)*/ * from “

CHENJCH

".SM_PUB_FILESYSTEM sample block( 41)

其中

SM_PUB_FILESYSTEM

表是一张附件表,包含blob

字段,大小

200

G

,通过

DBMS_SCHEDULER

可知这条耗时耗空间的语句是

Oracle

自动执行到了。

解决方案:

11g

数据库,自动维护任务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值