Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1676446
  • 博文数量: 391
  • 博客积分: 8464
  • 博客等级: 中将
  • 技术积分: 4589
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-13 15:12
个人简介

狮子的雄心,骆驼的耐力,孩子的执著!

文章分类

全部博文(391)

文章存档

2023年(4)

2018年(9)

2017年(13)

2016年(18)

2014年(7)

2013年(29)

2012年(61)

2011年(49)

2010年(84)

2009年(95)

2008年(22)

分类: Oracle

2012-12-08 10:31:40

ORA-00257: archiver error. Connect internal only, until freed
普通用户登录oracle显示上面的错误

此问题属于归档日志满了。
*** 查询归档使用情况:
SQL> show parameter db_recovery_file_dest_size;
NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
db_recovery_file_dest_size           big integer            2G

SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
FILE_TYPE                PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------------------ ------------------ ------------------------- ---------------
CONTROLFILE                               0                         0               0
ONLINELOG                                 0                         0               0
ARCHIVELOG                            99.91                         0              27
BACKUPPIECE                           39.35                         0               2
IMAGECOPY                                 0                         0               0
FLASHBACKLOG                              0                         0               0
6 rows selected.

一、关闭日志归档(不建议采用
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 2483027968 bytes
Fixed Size                  2022792 bytes
Variable Size             570425976 bytes
Database Buffers         1895825408 bytes
Redo Buffers               14753792 bytes
Database mounted.

SQL> alter database flashback off;
Database altered.
SQL>alter database noarchivelog;
Database altered.
SQL>alter database open;
Database altered.

二、扩大归日志的磁盘配额:
SQL>
alter system set DB_RECOVERY_FILE_DEST_SIZE=10G;
System altered.

、删除无用的归档日志,步骤如下
1、手工删除归档日志的文件夹(按日期那种)

2、在oracle用户下以rman target /
3、crosscheck archivelog all;
4、delete expired archivelog all;--这里删除了一些与第1步中删除的文件日期匹配的文件
5、exit;

上面的这个删除归档日志的方法是不正规的,官方提供的方法是使用rman实现

ORACLE正确删除归档并回收空间的方法

一个ORACLE归档日志经常满,表现为/oraarchive 这个文件空间占用100%大家一定抱怨ORACLE为何没有归档维护工具,很多人直接删除了事,错了,ORACLE有,而且很智能,可以正确的删除归档和 FLASHBACK,不过切记,ORACLE归档日志对于ORACLE的数据恢复和备份非常重要,不到万不得已不要删除归档日志。

删除归档日志的过程

ORACLE用户身份登录到数据库服务器主机或通过网络连接

进入ORACLE数据备份工具

rman target/

rman target/@orcl

在命令窗口里面执行

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

说明

SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。



DB在startup时报如下错误:

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-16038: log 1 sequence# 56 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 1 thread 1: '/u02/oradata/orcl/redo01.log'

失败的原因是group 1还没有归档,需要加上”unarchived”参数;

参照网上两篇文章得以解决:

http://blog.sina.com.cn/s/blog_69f38bff0100n3dz.html
http://liuxiaojian.iteye.com/blog/1179596

SQL> alter database clear unarchived logfile group 1;

Database altered.

成功,下面DB就可以正常open了;

SQL> alter database open;

Database altered.

oracle 归档日志管理
路径设置: http://wanpeng6015.blog.163.com/blog/static/135866277201242391841210/

文件删除: http://blog.csdn.net/wzwangqiangqiang/article/details/7670461

阅读(1570) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~