oracle11g-linux 归档处理
在使用oracle时突然登录不上去了提示:ORA-00257:archiver error.Connect internal only,until freed.
查遍很多资料,都指向“归档日志空间不足导致”这一问题。查看磁盘空间提示磁盘已使用100%。看来就是这个问题了;
问题解决
1.首先删除物理磁盘归档文件。(删除之前最好先备份)
网上大多都说归档文件在archive目录下,但实际我找遍linux中,都没有找到这个目录。此时如果运气好,能够登录oracle,则可以进去通过命令:
[root@xxx~]# su - oracle
[oracle@xxx~]$ sqlplus /nolog
SQL> connect /as sysdba
SQL>show parameter recover;
此时大概能猜到归档文件的存放位置了,如果无法进入,或者上面方式还是找不到,那就通过linux磁盘空间大小,或者文件夹的格式搜索去查找吧
我的地址:
/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs
其中home为我的安装目录,顺便我的版本是11g,不通版本可能会有不同。
2.把把归档日志的物理文件删除后,我们就可以正常登入ORACLE了,但是还没完全把归档日志删除干净,ORACLE的controlfile中仍然记录着这些archivelog的信息,在oracle的OEM管理器中有可视化的日志展现出,当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,接下去我们要做的就是这个工作
使用oracle的rman命令清理:
[root@localhost dbs]# su - oracle
-bash-4.1$ rman target sysdba
查看归档文件:(文件已经删除,但是内存中还未删除的内容)
RMAN> list archivelog all;
检测归档:
RMAN> crosscheck archivelog all;
删除归档:
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
说明: SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。 同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全备份数据库 DELETE ARCHIVELOG from TIME 'SYSDATE-7'; 删除从7天前到现在的全部日志,慎用UNIX/LINUX下也可以通过FIND找到7天前的归档数据,使用EXEC子操作删除 find /oraarchive -xdev -mtime +7 -name "*.dbf" -exec rm -f {} ; 这样做仍然会在RMAN里留下未管理的归档文件 仍需要在RMAN里执行下面2条命令 crosscheck archivelog all; delete expired archivelog all; 所以还不如上面的方法好用,不过用FIND的好处就是,可以在条件上,和EXEC子项上做很多操作,实现更复杂的功能
另关于删除的其他动作
删除7天前的归档: DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; 删除全部归档(noprompt不交互): DELETE noprompt ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-0'; 删除从7天前到现在的全部日志: DELETE ARCHIVELOG FROM TIME 'SYSDATE-7'; 删除过期归档 delete expired archivelog all;
到此 归档清理完成
关闭oracle归档
因测试环境,对oracle归档没有那么大的需求,且又消耗资源。故想办法关闭掉。
进入oracle:
-bash-4.1$ sqlplus / as sysdba
相机执行下面的操作
SQL> alter system set log_archive_start=false scope=spfile; #禁用自归档
SQL> shutdown immediate;
SQL> startup mount; #重启数据库到mount模式
SQL> alter database noarchivelog; #修改为非归档模式
SQL> alter database open; #打数据文件
SQL> archive log list; 搜索#再次查看前归档模式
完成
最新文章
- 利用keepalived和haproxy配置mysql的高可用负载均衡
- SQL Server 分页方法汇总
- hdu4725最短路变形 添加点
- latex 异或
- 三维数组——与 宝玉QQ群讨论交流之二
- tcpdump wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容) 实例介绍
- iOS 事件穿透
- POJ 1260:Pearls(DP)
- SublimeText2 快捷键
- 将string转化为char*的方法
- 什么是B-Tree
- android项目 之 记事本(11) ----- 加入数据库
- su和sudo命令的区别
- auto_prepend_file与auto_append_file使用方法
- Gym - 101350A Sherlock Bones(思维)
- Swift3翻天覆地的改变
- 前端SEO
- [Winform]Media Player com组件应用中遇到的问题
- 基于easyui开发Web版Activiti流程定制器详解(五)——Draw2d详解(一)
- 【BZOJ 2436】 2436: [Noi2011]Noi嘉年华 (区间DP)
热门文章
- python3 + selenium 之警告和弹窗
- python 全栈开发,Day120(路由系统, 实例化Flask的参数, 蓝图(BluePrint), before_request after_request)
- 移除powerdesigner中Recent Files中无效链接的文件
- [SDOI2012]象棋
- C. 【UNR #2】黎明前的巧克力
- Linux下编写互相通信的驱动模块并将其加入到内核中
- python_cookbook之路:数据结构-解压可迭代对象赋值给多个变量以及扩展的迭代解压语法(*)
- Mysql mysqld_safe启动与myslqd启动坑
- java实现判断一个经纬度坐标是否在一个多边形内(经自己亲测)
- UVA 11426 (欧拉函数&;&;递推)