RMAN CROSSCHECK命令小bug(轉)

ysping發表於2009-08-13

問題不是發生在命令本身,而是發生在中文翻譯上。

[@more@]

看下面的例子:

E:>SET ORACLE_HOME=E:ORACLEORACLE920

E:>%ORACLE_HOME%binrman target /@ytk92

恢復管理器: 版本9.2.0.4.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

連線到目標資料庫: YTK92 (DBID=1285986946)

RMAN> crosscheck archivelog all;

正在使用目標資料庫控制檔案替代恢復目錄

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=16 devtype=DISK

對歸檔日誌的驗證成功

存檔日誌檔名=E:ORACLEORADATAYTK92ARCHIVE1_9.DBF 記錄 ID=1 時間戳 =630202142

對歸檔日誌的驗證成功

存檔日誌檔名 =E:ORACLEORADATAYTK92ARCHIVE1_10.DBF 記錄 ID=2 時間戳 =631117292

對歸檔日誌的驗證成功

存檔日誌檔名 =E:ORACLEORADATAYTK92ARCHIVE1_11.DBF 記錄 ID=3 時間戳 =631459376

對歸檔日誌的驗證成功

存檔日誌檔名 =E:ORACLEORADATAYTK92ARCHIVE1_12.DBF 記錄 ID=4 時間戳 =634003780

對歸檔日誌的驗證成功

存檔日誌檔名 =E:ORACLEORADATAYTK92ARCHIVE1_13.DBF 記錄 ID=5 時間戳 =635334356

對歸檔日誌的驗證失敗

存檔日誌檔名 =E:ORACLEORADATAYTK92ARCHIVE1_14.DBF 記錄 ID=6 時間戳 =636374339

對歸檔日誌的驗證失敗

存檔日誌檔名 =E:ORACLEORADATAYTK92ARCHIVE1_15.DBF 記錄 ID=7 時間戳 =636636080

對歸檔日誌的驗證失敗

存檔日誌檔名 =E:ORACLEORADATAYTK92ARCHIVE1_16.DBF 記錄 ID=8 時間戳 =637149058

對歸檔日誌的驗證失敗

存檔日誌檔名 =E:ORACLEORADATAYTK92ARCHIVE1_17.DBF 記錄 ID=9 時間戳 =638414429

對歸檔日誌的驗證失敗

存檔日誌檔名 =E:ORACLEORADATAYTK92ARCHIVE1_18.DBF 記錄 ID=10 時間戳 =640227158

已交叉檢驗的 10 物件

RMAN> exit
恢復管理器完成。
E:>SET NLS_LANG=AMERICAN
E:>%ORACLE_HOME%binrman target
Recovery Manager: Release 9.2.0.4.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
connected to target databasE: YTK92 (DBID=1285986946)
RMAN> crosscheck archivelog all;
using target database controlfile instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=15 devtype=DISK
validation failed for archived log
archive log filename=E:ORACLEORADATAYTK92ARCHIVE1_9.DBF recid=1 stamp=630202142
validation failed for archived log
archive log filename=E:ORACLEORADATAYTK92ARCHIVE1_10.DBF recid=2 stamp=631117292
validation failed for archived log
archive log filename=E:ORACLEORADATAYTK92ARCHIVE1_11.DBF recid=3 stamp=631459376
validation failed for archived log
archive log filename=E:ORACLEORADATAYTK92ARCHIVE1_12.DBF recid=4 stamp=634003780
validation failed for archived log
archive log filename=E:ORACLEORADATAYTK92ARCHIVE1_13.DBF recid=5 stamp=635334356
validation succeeded for archived log
archive log filename=E:ORACLEORADATAYTK92ARCHIVE1_14.DBF recid=6 stamp=636374339
validation succeeded for archived log
archive log filename=E:ORACLEORADATAYTK92ARCHIVE1_15.DBF recid=7 stamp=636636080
validation succeeded for archived log
archive log filename=E:ORACLEORADATAYTK92ARCHIVE1_16.DBF recid=8 stamp=637149058
validation succeeded for archived log
archive log filename=E:ORACLEORADATAYTK92ARCHIVE1_17.DBF recid=9 stamp=638414429
validation succeeded for archived log
archive log filename=E:ORACLEORADATAYTK92ARCHIVE1_18.DBF recid=10 stamp=640227158
Crosschecked 10 objects

很明顯中文翻譯和英文的原文是反著的。英文的failed被翻譯為成功,英文的succeeded被翻譯為失敗。
檢查實際情況:
E:>DIR E:ORACLEORADATAYTK92ARCHIVE
驅動器 E 中的卷沒有標籤。
卷的序列號是 9037-19E7
E:ORACLEORADATAYTK92ARCHIVE 的目錄
2007-12-02 00:52

.
2007-12-02 00:52 ..
2007-10-19 10:38 49,586,176 1_14.DBF
2007-10-22 11:21 104,857,088 1_15.DBF
2007-10-28 09:50 104,857,088 1_16.DBF
2007-11-12 01:20 64,443,392 1_17.DBF
2007-12-02 00:52 7,100,928 1_18.DBF
5 個檔案 330,844,672 位元組
2 個目錄 10,308,681,728 可用位元組

在10g中問題仍然存在,Oracle在11g中改正了這個問題。

看來英文原文並沒有錯誤,是翻譯為中文的時候出的問題。這個問題說小就小,幾乎可以忽略;說大也大,如果被這個提示誤導,手工把存在的歸檔日誌當作丟失的刪除掉,那麼問題就比較嚴重了。總之,這個問題是個很低階的錯誤。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/670493/viewspace-1025261/,如需轉載,請註明出處,否則將追究法律責任。

相關文章