加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle检查归档日志大小和删除

发布时间:2020-12-12 15:02:44 所属栏目:百科 来源:网络整理
导读:show parameter db_recovery_file_dest_size; select sum(a.BLOCK_SIZE*a.BLOCKS)/1024/1024 from v$archived_log a where a.DELETED='NO'; 参见下帖5楼: http://www.itpub.net/thread-1011542-1-1.html 删除归档日志 RMANconnect target / RMANlist archive
show parameter db_recovery_file_dest_size;
select sum(a.BLOCK_SIZE*a.BLOCKS)/1024/1024 from v$archived_log a where a.DELETED='NO';
参见下帖5楼:
http://www.itpub.net/thread-1011542-1-1.html


删除归档日志
RMAN>connect target /


RMAN>list archivelog all;
RMAN>list copy of archivelog until time ‘SYSDATE-10′;
RMAN>list copy of archivelog from time ‘SYSDATE-10′
RMAN>list copy of archivelog from time ‘SYSDATE-10′ until time ‘SYSDATE-2′;
RMAN>list copy of archivelog from sequence 1000;
RMAN>list copy of archivelog until sequence 1500;
RMAN>list copy of archivelog from sequence 1000 until sequence 1500;


RMAN>delete archivelog all;
RMAN>delete archivelog until time ‘SYSDATE-10′;
RMAN>delete archivelog from time ‘SYSDATE-10′
RMAN>delete archivelog from time ‘SYSDATE-10′ until time ‘SYSDATE-2′;
RMAN>delete archivelog from sequence 1000;
RMAN>delete archivelog until sequence 1500;
RMAN>delete archivelog from sequence 1000 until sequence 1500;


Note : Also,you can use noprompt statement for do not yes-no question.
RMAN>delete noprompt archivelog until time ‘SYSDATE-10′;


参见:

http://www.fatihacar.com/blog/delete-archivelog-using-rman-in-oracle/





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

问题描述:

所用数据库为Oracle10g ,模式为归档模式,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 sysdba”

>startup mount

新起一个终端,用rman进入把归档日志删除

命令>rman target/ (只安装了一个oracle10g数据库)

命令>crosscheck archivelog all; (列出归档日志信息)

命令>delete expired archivelog all; (将上述列出的归档日志删除)

命令>exit;

此时最好将数据库重新备份一下

把数据库的mount状态更改为open状态

>alter database open;

OK.问题解决,数据库可以使用。


误区:

在系统清空归档目录的日志信息(即物理删除归档日志,或将归档日志转移至别处)不可取,OS虽然删除了,但oracle系统识别不出来已经清空日志,只能进入oracle清空日志信息,把空间释放出来,(方法二);或者是把归档空间设置更大(方法一)。

建议将两种方法结合使用,减少工作量,也避免数据库频繁挂起。同时定时进行数据库完全备份或其他重要数据备份

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读