oracle归档日志写满错误解决方法
最近一年,手头上负责的项目要部署到很多个地方,由于项目组里没有人对oracle比较熟悉,只能给自己增加一个DBA的角色了。由于短时间内要部署很多单位,备份策略没有设置好,结果过了一个月,用户报告程序开始连不上数据库了,并且发给我错误报告。主要是ora-16038、 ora-19809、 ora-00312三个错误,意思很明确,就是归档日志写满了,没法继续写入归档日志了,导致数据库被暂停了,等待继续写入归档日志到硬盘。
由于用户业务比较紧张,先考虑紧急处理方案,先将数据库恢复正常,然后再给用户数据库设计合理的备份方案,使数据库以后不再出现类似错误了。
(为保护用户信息,使用密码,连接 指示符使用manager和orcl代替用户实际数据)
- 使用rman清理归档日志和备份,看可不可以清理出来一部分空间,如果清理出来足够的空间,则数据库应该可以恢复正常了。
rman target sys/manager@orcl
crosscheck backup;
crosscheck archivelog all;
crosscheck copy;
delete expired backup;
delete expired archivelog all;
delete expired copy;
delete obsolete;
如果使用了快速恢复区,检查db_recovery_file_dest和db_recovery_file_dest_size,如果目录所在位置还有空间,只需增大db_recovery_file_dest_size就可以使数据库恢复正常。
如果没有使用快速恢复区,检查 show parameter
log_archive_dest,根据目录位置,看可不可以增大归档的目录的大小,比如删除目录所在分区的其他文件。如果可以清理出空间,数据库应该就可以恢复正常了如果不想使用上面的方法,想要删除以前的归档日志来释放空间,为安全起见,首先将要删除的归档日志复制到其他地方,然后使用rman删除刚刚备份的日志。
如果归档日志保存在文件系统上,则根据上面获取的归档日志目录的位置,将准备删除的归档日志拷贝到指定位置,如果归档日志存储在asm里,就稍微麻烦一点,需要在asmcmd里使用cp命令将归档日志备份。
rman target sys/manager@orcl
--查看归档日志文件信息
list archivelog all;
--然后使用以下方法中的任意一种删除刚刚已经备份过的归档日志文件。
--删除从序列号为xxx开始的所有归档日志文件
delete archivelog from sequence xxx;
--或者,删除序列号在xxx和yyy之间的所有归档日志文件
delete archivelog sequence between xxx and yyy;
--或者删除序列号一直到xxx的所有归档日志文件
delete archivelog until sequence xxx
--或者使用时间来指定要删除的归档日志文件
--删除从datestring指定的时间开始的所有归档日志
delete archivelog from time 'datestring'
--或者,删除时间在datestring1和datestring2之间的所有归档日志文件
delete archivelog time between 'datestring1' and 'datestring2'
--或者删除时间一直到datestring的所有归档日志文件
delete archivelog until time 'datestring'
删除归档日志文件后,马上对数据库做全备份。然后就可以使用以下代码清理归档日志文件了。
rman target sys/manager@orcl
crosscheck backup;
crosscheck archivelog all;
crosscheck copy;
delete expired backup;
delete expired archivelog all;
delete expired copy;
delete obsolete;
总体来说,这个错误是由数据库空间规划和备份策略没有提前设计好导致,做完应急处理后应该尽快重新对数据库空间和备份策略重新进行设计,以防再次出现以上问题,影响用户使用。
ps
如果在数据库hold的时候使用了强制关闭数据库时,可能在开机时会遇到其它的问题,此时需要先清理待归档的日志文件,方法为
sqlplus sys/manager@orcl as sysdba
startup mount;
--获取inactive且没有归档的组
select group#,sequence#,archived,status from v$log;
--清理上一步获取的归档日志组
alter database clear unarchived logfile group x;
alter database open;
oracle归档日志写满错误解决方法的更多相关文章
- ORA-00257归档日志写满的解决方法
背景: 在前一篇博客中我们提到了如何启动或关闭oracle的归档(ARCHIVELOG)模式,在我成功设定数据库为归档模式以后, 第二天再次尝试连接数据库,报错:ORA-00257.在网上找到了一圈资 ...
- (转)ORA-00257归档日志写满的解决方法
转自:http://www.cnblogs.com/xwdreamer/p/3804509.html 背景: 在前一篇博客中我们提到了如何启动或关闭oracle的归档(ARCHIVELOG)模式,在我 ...
- 解决oracle归档日志写满了(ORA-00257)的问题
解决ORA-00257: archiver error. Connect internal only, until freed 此问题属于归档日志满了. 解决办法: SQL> select * ...
- DB2事务日志已满的解决方法
DB2命令终端输入: db2 update db cfg for <dbname> using LOGPRIMARY 50 db2 update db cfg for <dbname ...
- ORACLE数据库闪回日志写满
网站页面无法显示完整.检查web服务是正常的,所以可能是ORACLE数据库出了问题. 首先检查闪回日志写满 然后检查归档日志文件写满的缘故了.使用以下几个命令可以看出当前归档日志文件的使用情况: se ...
- oracle归档日志增长过快处理方法
oracle归档日志一般由dml语句产生,所以增加太快应该是dml太频繁 首先查询以下每天的归档产生的情况: SELECT TRUNC(FIRST_TIME) "TIME", SU ...
- Oracle OCI-22053:溢出错误解决方法
原文 Oracle OCI-22053:溢出错误解决方法 Oracle 数值数据类型最多可存储 38 个字节的精度.当将 Oracle 数值转换为公共语言运行库数据类型时,小数点后边的位数可能过多,这 ...
- linux上备份Oracle时EXP-00091的错误解决方法
unix/linux上备份Oracle时EXP-00091的错误解决方法 unix/linux上备份数据时的错误解决方法 EXP-00091: Exporting questionable stati ...
- 修改Oracle归档日志方法
修改Oracle归档日志的方法 Oracle默认安装的归档日志只有50M,在做大量操作的时候会经常切换日志文件,造成性能问题,下面是具体操作方法 1. 下面是查看现有归档日志大小: SQL> ...
随机推荐
- 用Qt写软件系列一:QCacheViewer(浏览器缓存查看器)
介绍 Cache技术广泛应用于计算机行业的软硬件领域.该技术既是人们对新技术探讨的结果,也是对当前软硬件计算能力的一种妥协.在浏览器中使用cache技术,可以大幅度提高web页面的响应速度,降低数据传 ...
- jquery选择器(原创)
jquery选择器大方向可以分为这样: 下面我们先来看看基本选择器总的CSS选择器: 1.标签选择器: $("element") 其中,参数element,表示待查找的HTML标记 ...
- Web开发常用知识点 - PHP
Ubuntu下面,如何用PHP代码获得系统的临时文件夹 用PHP方法 sys_get_temp_dir() 来取得系统的临时文件夹路径,比如Ubuntu下面,返回值为"/tmp".
- MVC视图展现模式之移动布局
参考:http://www.cnblogs.com/dunitian/p/5218140.html 简单点,直接上用法 新建MVC项目,在golbal.asax中添加如下代码 //添加一个自定义后缀 ...
- c#图片添加水印
今天讲一个上传图片添加水印的方法,直接上代码吧 protected void Button1_Click(object sender, EventArgs e) { int loc ...
- 【jQuery基础学习】03 jQuery中的事件与动画
关于jQuery中的事件 js与HTML之间的交互是通过用户和浏览器操作页面时引发的事件来处理的. jQuery增加并扩展了基本的事件处理机制,jQuery不仅提供了更加优雅的事件处理方法,而且极大地 ...
- knockout的依赖属性dependentObservable和observable的监控的使用
1.Knockout是在下面三个核心功能是建立起来的:监控属性(Observables)和依赖跟踪(Dependency tracking) 声明式绑定(Declarative bindings) 模 ...
- ThinkPHP系的两个东东OneThink和ThinkCMF
假设有这样一个命题:需要对一个已有系统进行移植,有没有什么系统是适合用来作为进行快速移植的基础的.能解决每个系统的基本问题,只需考虑相关业务逻辑问题. OneThink是TP团队官方出品. http: ...
- linux2.4.18内核定时器的使用
Linux2.4下驱动中定时器的应用 我的内核是2.4.18的.Linux的内核中定义了一个定时器的结构: #include<linux/timer.h> struct timer_lis ...
- AC自动机(1)
Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). ...