Heim > Datenbank > MySQL-Tutorial > Hauptteil

flashback_area 区域溢出导致数据库宕机

WBOY
Freigeben: 2016-06-07 17:13:02
Original
910 Leute haben es durchsucht

问题:ORA-00257 ORA-16014 log 1 sequence# 1085 not archived, no available destinationsORA-00312 online log 1 threa

问题:
ORA-00257      
ORA-16014 log 1 sequence# 1085 not archived, no available destinations
ORA-00312 online log 1 thread 1 'usrappOracleoradatawanyanredo01.log'
     
原因:
      归档日志闪回恢复区的2G都被写满了.

检查步骤:

SQL>shutdown immediate
SQL>startup
ORA-00257      
ORA-16014 log 1 sequence# 1085 not archived, no available destinations
ORA-00312 online log 1 thread 1 'usrapporacleoradatawanyanredo01.log'
SQL> alter database open;
ERROR at line 1:
ORA-16014: log 1 sequence# 92 not archived, no available destinations
ORA-00312: online log 1 thread 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'

SQL> select * from v$log
;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
         1          1         93   52428800          1 NO  INACTIVE               4345718 04-FEB-09
         3          1         94   52428800          1 NO  INACTIVE               4347356 04-FEB-09
         2          1         95   52428800          1 NO  CURRENT                4368182 04-FEB-09

从以上信息猜测,由于GROUP1无法归档引起,检查归档空间
 

SQL> show parameter db_recovery_file_dest_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size           big integer 3G


解决问题步骤

第一种方法、删除recovery 文件

通过检查实际的归档文件夹后发现,实际使用的归档空间的远远小于3G,猜测可能由于手工删除归档日志所致。
采用以下方法解决:


当手工删除了归档日志以后,Rman备份会检测到日志缺失,,从而无法进一步继续执行。
所以此时需要手工执行crosscheck过程,之后Rman备份可以恢复正常。
1.Crosscheck日志

$ rman target /
Recovery Manager: Release 9.2.0.4.0 - 64bit Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
connected to target database: AVATAR2 (DBID=2480694409)

RMAN> crosscheck archivelog all;

using target database controlfile instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=25 devtype=DISK
validation failed for archived log
.........................................

2.使用delete expired archivelog all 命令删除所有过期归档日志:


RMAN> delete expired archivelog all;


RCL\ARCHIVELOG\2009_02_04\O1_MF_1_86_4RL2RJWB_.ARC
81      1    87      X 04-2月 -09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\O
RCL\ARCHIVELOG\2009_02_04\O1_MF_1_87_4RL2RYGN_.ARC
82      1    88      X 04-2月 -09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\O
RCL\ARCHIVELOG\2009_02_04\O1_MF_1_88_4RL2SGFO_.ARC
83      1    89      X 04-2月 -09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\O
RCL\ARCHIVELOG\2009_02_04\O1_MF_1_89_4RL2SY0H_.ARC
84      1    90      X 04-2月 -09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\O
RCL\ARCHIVELOG\2009_02_04\O1_MF_1_90_4RL2TOB8_.ARC
85      1    91      X 04-2月 -09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\O
RCL\ARCHIVELOG\2009_02_04\O1_MF_1_91_4RL2VHC7_.ARC

SQL> alter database open;

Database altered.


第二种方法:修改默认参数文件,让数据库允许存放过大的recovery文件

据数据库目前可用存储空间为200GB、FLASH_RECOVERY_AREA空间为2GB的实际情况,把FLASH_RECOVERY_AREA的空间修改为20GB。

alter system set DB_RECOVERY_FILE_DEST_SIZE=20g;

更多Oracle相关信息见Oracle 专题页面 ?tid=12

linux

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage