oracle归档日志循环,oracle归档日志增长过快处理方法,oracle归档日志

oracle归档日志增长过快处理方法,oracle归档日志

oracle归档日志一般由dml语句产生,所以增加太快应该是dml太频繁

首先查询以下每天的归档产生的情况:

SELECT TRUNC(FIRST_TIME) "TIME",

SUM(BLOCK_SIZE * BLOCKS) / 1024 / 1024 / 1024 "SIZE(GB)"

FROM V$ARCHIVED_LOG

GROUP BY TRUNC(FIRST_TIME);

从而好判断那个时间段开始归档比较异常

从以下两种方式分析归档日志的情况

方法一:使用logminer

1,使用脚本创建相关的包

@$ORACLE_HOME/rdbms/admin/dbmslm.sql

@$ORACLE_HOME/rdbms/admin/dbmslmd.sql;

第一个脚本用来创建DBMS_LOGMNR包,该包用来分析日志文件。

第二个脚本用来创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。

2.指定要分析的日志文件

exec sys.dbms_logmnr.add_logfile(logfilename => '/archivelog/node/1_771348_78836667000.arc',options => dbms_logmnr.new);

3.使用本地的在线数据字典分析归档日志

exec sys.dbms_logmnr.start_logmnr(options => sys.dbms_logmnr.dict_from_online_catalog);

4,查询分析出来的归档日志内容,例如统计最大修改量的Schema

select seg_owner,count(*) from v$logmnr_contents group by seg_owner;

select count(1),substr(sql_redo,1,30) from v$logmnr_contents group by substr(sql_redo,1,30) order by count(1) desc ;

5.增加别的日志文件

exec sys.dbms_logmnr.add_logfile(logfilename=>'/archivelog/node/1_773333_78836667000.arc');

exec sys.dbms_logmnr.add_logfile(logfilename=>'/archivelog/node1/1_773334_78836667000.arc');

6.结束分析归档日志

exec sys.dbms_logmnr.end_logmnr;

方法二:使用toad工具查看日志信息

在database 找到logminer 然后把要分析的日志放进去,里面有详细的数据库执行记录,很直观的看到产生归档的语句

查出来语句后,然后给开发一块商量还是否可以降低一些dml语句的执行频率

怎解决“归档日志已满问题”

oem打开oracle 10g 数据库操作界面,会显示如下错误信息: “ 由于输出设备已满或不可用, 归档程序无法归档重做日志。”数据库无法使用现将解决办法稍作总结:方法一:增大归档日志空间的大小可以通过下面的方法来调整系统的回闪恢复区大小:首先是关闭数据库:以SYS身份链接到oracle,执行>shutdown immediate;启动数据库到mount状态:>startup mount查看回闪恢复区的大小和存放目标:>show parameter db_recovery_file_dest修改回闪恢复区的大小>alter system set db_recovery_file_dest_size = 4G(缺省是2G,可以根据实际情况调整大小)最后打开数据库:>alter database open; OK , 问题解决。数据库恢复使用。方法二 :进入oracle清空日志信息,把空间释放出来启动数据库到mount状态: >sqlplus “/as sysdba”>startup mount新起一个终端,用rman进入把归档日志删除命令>rman target/ (只安装了一个oracle10g数据库)命令>crosscheck archivelog all; (列出归档日志信息)命令>delete expired archivelog all; (将上述列出的归档日志删除)命令>exit;此时最好将数据库重新备份一下把数据库的mount状态更改为open状态>alter database open; OK.问题解决,数据库可以使用。 误区: 在系统清空归档目录的日志信息(即物理删除归档日志,或将归档日志转移至别处)不可取,OS虽然删除了,但oracle系统识别不出来已经清空日志,只能进入oracle清空日志信息,把空间释放出来,(方法二);或者是把归档空间设置更大(方法一)。 建议将两种方法结合使用,减少工作量,也避免数据库频繁挂起。同时定时进行数据库完全备份或其他重要数据备份

怎解决“归档日志已满问题”

问题描述:所用数据库为 oracle 10g ,模式为归档模式,oracle 系统默认的归档空间为2G,由于日志过多,空间写满,数据库的redo文件不能归档,而出现oracle数据库挂起的问题。oem打开oracle 10g 数据库操作界面,会显示如下错误信息:由于输出设备已满或不可用, 归档程序无法归档重做日志。数据库无法使用现将解决办法稍作总结:方法一:增大归档日志空间的大小可以通过下面的方法来调整系统的回闪恢复区大小:首先是关闭数据库:以SYS身份链接到oracle,执行shutdown immediate;启动数据库到mount状态:startup mount查看回闪恢复区的大小和存放目标:show parameter db_recovery_file_dest修改回闪恢复区的大小alter system set db_recovery_file_dest_size = 4G(缺省是2G,可以根据实际情况调整大小)最后打开数据库:alter database open;OK , 问题解决。数据库恢复使用。方法二 :进入oracle清空日志信息,把空间释放出来启动数据库到mount状态:sqlplus /as sysdbastartup mount新起一个终端,用rman进入把归档日志删除命令rman target/ (只安装了一个oracle10g数据库)命令crosscheck archivelog all; (列出归档日志信息)命令delete expired archivelog all; (将上述列出的归档日志删除)命令exit;此时最好将数据库重新备份一下把数据库的mount状态更改为open状态alter database open;OK.问题解决,数据库可以使用。误区:在系统清空归档目录的日志信息(即物理删除归档日志,或将归档日志转移至别处)不可取,OS虽然删除了,但oracle系统识别不出来已经清空日志,只能进入oracle清空日志信息,把空间释放出来,(方法二);或者是把归档空间设置更大(方法一)。建议将两种方法结合使用,减少工作量,也避免数据库频繁挂起。同时定时进行数据库完全备份或其他重要数据备份

http://www.htsjk.com/shujukunews/4249.html

www.htsjk.Com

true

http://www.htsjk.com/shujukunews/4249.html

NewsArticle

oracle归档日志增长过快处理方法,oracle归档日志 oracle归档日志一般由dml语句产生,所以增加太快应该是dml太频繁 首先查询以下每天的归档产生的情况: SELECT TRUNC(FIRST_TIME) TIME, SUM(BLOC...

本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.

同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。

你可能感兴趣的:(oracle归档日志循环)