C:/>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 2月 25 10:49:58 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select * from scott.emp;
select * from scott.emp *
第 1 行出現錯誤:
ORA-01219: 數據庫未打開: 僅允許在固定表/視圖中查詢
SQL> startup database open;
SP2-0714: 無效的 STARTUP 選項組合
SQL> startup open;
ORA-01081: 無法啓動已在運行的 ORACLE - 請首先關閉它
SQL> startup nomount;
ORA-01081: 無法啓動已在運行的 ORACLE - 請首先關閉它
SQL> shutdown immediate;
ORA-01109: 數據庫未打開
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup nomount;
ORACLE 例程已經啓動。
Total System Global Area 805306368 bytes
Fixed Size 1251532 bytes
Variable Size 427820852 bytes
Database Buffers 369098752 bytes
Redo Buffers 7135232 bytes
SQL> alter database mount;
數據庫已更改。
SQL> alter database open;
alter database open 第 1 行出現錯誤:
ORA-16038:日誌 3 序列號 90 無法歸檔
ORA-19809: 超出了恢復文件數的限制
ORA-00312: 聯機日誌 3 線程 1:
'D:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/ORCL/ONLINE LOG/O1_MF_3_5NFPBVRH_.LOG'
ORA-00312: 聯機日誌 3 線程 1:
'D:/ORACLE/PRODUCT/10.2.0/DB_1/FLASH_RECOVERY_AREA /ORCL/ONLINELOG/O1_MF_3_5NFPBWZ3_.LOG'
ORA-00312: 聯機日誌 3 線程 1:
'D:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/ORCL/ONLINE LOG/O1_MF_3_REDO.LOG'
SQL> alter database clear unarchived logfile 'D:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/ORCL/ONLINELOG/O1_MF_3_5NFPBVRH_.LOG';
alter database clear unarchived logfile 'D:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/ORCL/ONLINELOG/O1_MF_3_5NFPBVRH_.LOG'
*
第 1 行出現錯誤:
ORA-01514: 日誌說明中出現錯誤: 沒有此類日誌
ORA-01517: 日誌成員:
'D:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/ORCL/ONLINE LOG/O1_MF_3_5NFPBVRH_.LOG'
SQL> alter database drop logfile member 'D:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/ORCL/ONLINELOG/O1_MF_3_5NFPBVRH_.LOG';
數據庫已更改。
SQL> alter database drop logfile member 'D:/ORACLE/PRODUCT/10.2.0/DB_1/FLASH_RECOVERY_AREA/ORCL/ONLINELOG/O1_MF_3_5NFPBWZ3_.LOG';
alter database drop logfile member 'D:/ORACLE/PRODUCT/10.2.0/DB_1/FLASH_RECOVERY_AREA/ORCL/ONLINELOG/O1_MF_3_5NFPBWZ3_.LOG'
*
第 1 行出現錯誤:
ORA-00361: cannot remove last log member string for group string
D:/ORACLE/PRODUCT/10.2.0/DB_1/FLASH_RECOVERY_AREA/ ORCL/ONLINELOG/O1_MF_3_5NFPBWZ3_.LOG (? 3)
ORA-00361: cannot remove last log member string for group string
Cause: An attempt has been made to remove the last member of a log file group.
Action: If desired, delete the entire log, by using DROP LOGFILE.
SQL> alter database drop logfile 'D:/ORACLE/PRODUCT/10.2.0/DB_1/FLASH_RECOVERY_ AREA/ORCL/ONLINELOG/O1_MF_3_5NFPBWZ3_.LOG';
alter database drop logfile 'D:/ORACLE/PRODUCT/10.2.0/DB_1/FLASH_RECOVERY_AREA /ORCL/ONLINELOG/O1_MF_3_5NFPBWZ3_.LOG'
*
第 1 行出現錯誤:
ORA-00350: 日誌 3 (線程 1) 中需要歸檔
ORA-00312: 聯機日誌 3 線程 1:
'D:/ORACLE/PRODUCT/10.2.0/DB_1/FLASH_RECOVERY_AREA /ORCL/ONLINELOG/O1_MF_3_5NFPBWZ3_.LOG'
SQL> alter database drop logfile group 3;
alter database drop logfile group 3
第1 行出現錯誤:
ORA-00350: ?? 3 (?? orcl ???, ?? 1) ????
ORA-00312: ???? 3 ?? 1:
'D:/ORACLE/PRODUCT/10.2.0/DB_1/FLASH_RECOVERY_AREA/ORCL/ONLINELOG/O1_MF_3_5NFPBWZ3_.LOG'
刪不掉,提示第三組聯機日誌需要歸檔。
d.歸檔聯機日誌
SQL> archive log start;
已處理的語句
SQL> archive log next;
ORA-16014: 日誌3 的序列號 90 未歸檔, 沒有可用的目的地 --說明已經歸檔的文件大小超過歸檔的最大設置。
ORA-00312: 聯機日誌 2 線程 1: 'D:/ORACLE/PRODUCT/10.2.0/DB_1/FLASH_RECOVERY_AREA /ORCL/ ONLINELOG/O1_MF_3_5NFPBWZ3_.LOG'
SQL> show parameter db_recovery
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string D:/oracle/product/10.2.0/flash_recovery_area
db_recovery_file_dest_size big integer 2G
SQL> alter system set db_recovery_file_dest_size=3G scope=both;
系統已更改。
(1).檢查flash recovery area的使用情況:
SQL> select * from v$flash_recovery_area_usage;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE .33 0 1
ONLINELOG 7.32 0 3
ARCHIVELOG 25.06 0 35
BACKUPPIECE 67.69 0 4
IMAGECOPY 0 0 0
FLASHBACKLOG 0 0 0
已選擇6行。 .
計算flash recovery area已經佔用的空間:
SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage; SUM(PERCENT_SPACE_USED)*3/100
------------ ------------------ ------------------------- ---------------
3.012
可以看到,這裏已經有3.012G使用了,這說明我們剛開始設置的db_recovery_file_dest_size=2G不足,導致online redo log無法歸檔,在這裏,我們通過設置db_recovery_file_dest_size參數,增大了flash recovery area來解決這個問題。(3).也可以在rman中通過刪除flash recovery area中不必要的備份來釋放flash recovery area空間來解決這個問題:
(1). delete obsolete;
(2). crosscheck backupset; delete expired backupset;
這裏事先手工把歸檔的文件刪除一部分,然後用rman 用上面的 命令把flash recovery area 實際空間變小。問題就解決了。