1,plsq登录报错
ORA-00257: archiver error. Connect internalonly. until freed
2,后台alert日志报错:
[oracle@powerlong4 ~]$ tail -fn 200/oracle/app/oracle/diag/rdbms/pdunq/powerdes/trace/alert_powerdes.log
Tue Apr 28 10:00:56 2015
Errors in file/oracle/app/oracle/diag/rdbms/pdunq/powerdes/trace/powerdes_arc9_30051.trc:
ORA-19815: WARNING:db_recovery_file_dest_size of 19327352832 bytes is 100.00% used, and has 0remaining bytes available.
************************************************************************
You have following choices to free up spacefrom recovery area:
1. Consider changing RMAN RETENTION POLICY.If you are using Data Guard,
then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such astape using RMAN
BACKUP RECOVERY AREA command.
3. Add disk space and increasedb_recovery_file_dest_size parameter to
reflect the new space.
4. Delete unnecessary files using RMANDELETE command. If an operating
system command was used to delete files, then use RMAN CROSSCHECK and
DELETE EXPIRED commands.
************************************************************************
Errors in file/oracle/app/oracle/diag/rdbms/pdunq/powerdes/trace/powerdes_arc9_30051.trc:
ORA-19809: limit exceeded for recoveryfiles
ORA-19804: cannot reclaim 31602688 bytesdisk space from 19327352832 limit
ARC9: Error 19809 Creating archive log fileto'/oracle/app/oracle/flash_recovery_area/PDUNQ/archivelog/2015_04_28/o1_mf_1_75_%u_.arc'
----------------------------------------------------------------------------------------------------------------
<版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!>
原博客地址: http://blog.youkuaiyun.com/mchdba/article/details/45332505
原作者:黄杉 (mchdba)
----------------------------------------------------------------------------------------------------------------
3,查看归档日志
RMAN> crosscheck archivelog all; --先检查下
...
validation succeeded for archived log
archived log filename=/oracle/app/oracle/flash_recovery_area/PDUNQ/archivelog/2015_04_23/o1_mf_1_72_bmkbwfrg_.arcRECID=63633 STAMP=877796493
validation succeeded for archived log
archived log filename=/oracle/app/oracle/flash_recovery_area/PDUNQ/archivelog/2015_04_23/o1_mf_1_73_bmkyqplx_.arcRECID=63634 STAMP=877816822
validation succeeded for archived log
archived log file name=/oracle/app/oracle/flash_recovery_area/PDUNQ/archivelog/2015_04_23/o1_mf_1_74_bmkysysc_.arcRECID=63635 STAMP=877816895
Crosschecked 1635 objects
看到有很多归档日志,么有应用到sendary库上面。
4,这里采用删除多余的归档日志的办法来操作,查看过期归档日志
[oracle@powerlong4 ~]$ rman target /
RMAN> delete expired archivelog all;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=787 devicetype=DISK
specification does not match any archivedlog in the repository
RMAN>
5,删除过期的归档日志
delete expired archivelog all;
RMAN> delete expired archivelog all;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=787 devicetype=DISK
specification does not match any archivedlog in the repository
RMAN>
看到没有过期的归档日志
6,看到没有过期的,不够我们可以删除指定到具体的时间,这样也可以腾出空间来
RMAN>delete archivelog until time"to_date('2015-04-27 13:00:00','yyyy-mm-dd hh24:mi:ss')";
部分执行过程如下:
RMAN-08137: WARNING: archived log notdeleted, needed for standby or upstream capture process
archived log filename=/oracle/app/oracle/flash_recovery_area/PDUNQ/archivelog/2015_04_23/o1_mf_1_70_bmjfsm48_.arcthread=1 sequence=70
RMAN-08137: WARNING: archived log notdeleted, needed for standby or upstream capture process
archived log filename=/oracle/app/oracle/flash_recovery_area/PDUNQ/archivelog/2015_04_23/o1_mf_1_71_bmjk1mvp_.arcthread=1 sequence=71
RMAN-08137: WARNING: archived log notdeleted, needed for standby or upstream capture process
archived log filename=/oracle/app/oracle/flash_recovery_area/PDUNQ/archivelog/2015_04_23/o1_mf_1_72_bmkbwfrg_.arcthread=1 sequence=72
RMAN-08137: WARNING: archived log notdeleted, needed for standby or upstream capture process
archived log filename=/oracle/app/oracle/flash_recovery_area/PDUNQ/archivelog/2015_04_23/o1_mf_1_73_bmkyqplx_.arcthread=1 sequence=73
RMAN-08137: WARNING: archived log notdeleted, needed for standby or upstream capture process
archived log filename=/oracle/app/oracle/flash_recovery_area/PDUNQ/archivelog/2015_04_23/o1_mf_1_74_bmkysysc_.arcthread=1 sequence=74
RMAN>
select * from V$FLASH_RECOVERY_AREA_USAGE;
7,再去查看下使用空间
SQL> select * fromV$FLASH_RECOVERY_AREA_USAGE;
FILE_TYPE PERCENT_SPACE_USEDPERCENT_SPACE_RECLAIMABLE
-------------------- -------------------------------------------
NUMBER_OF_FILES
---------------
CONTROL FILE 0 0
0
REDO LOG 0 0
0
ARCHIVED LOG 74.36 0
1635
FILE_TYPE PERCENT_SPACE_USEDPERCENT_SPACE_RECLAIMABLE
-------------------- -------------------------------------------
NUMBER_OF_FILES
---------------
BACKUP PIECE 25.5 0
7
IMAGE COPY 0 0
0
FLASHBACK LOG 0 0
0
FILE_TYPE PERCENT_SPACE_USEDPERCENT_SPACE_RECLAIMABLE
-------------------- -------------------------------------------
NUMBER_OF_FILES
---------------
FOREIGN ARCHIVED LOG 0 0
0
7 rows selected.
SQL>
OK,看到归档日志空间使用74%,还有足够的空间,所以可以登录使用。
重新登录plsql,还是报一样的错误。
8,重新启动oracle服务,这样就可以了
SQL> shutdown abort
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 3373858816 bytes
Fixed Size 2218032 bytes
Variable Size 1694500816 bytes
Database Buffers 1660944384 bytes
Redo Buffers 16195584 bytes
Database mounted.
Database opened.
SQL>
9,然后使用plsql登录,现在可以正常登录了。
总结,是因为oracle的dataguard中断了,所以primary上的归档日志一直积累下来,造成归档的空间满了,所以数据库无法远程登录了,这个时候采用的常用办法可以有以下2个:1):根据时间点删除过期的归档日志;2)增大db_recovery_file_dest_size的值。