rman恢復控制檔案的一個小錯誤

space6212發表於2019-06-17

今天用rman做異地恢復,在恢復控制檔案的時候出現了一個錯誤:


bash-3.00$ rman target /

Recovery Manager: Release 10.2.0.3.0 - Production on 星期四 9月 27 00:18:55 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

connected to target database: tradedb (not mounted)

RMAN> restore controlfile from '/data/backup/tradedb/62isntt2_1_1';

Starting restore at 27-9月 -07
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=313 instance=prerac1 devtype=DISK

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 09/27/2007 00:19:34
RMAN-06172: no autobackup found or specified handle is not a valid copy or piece

一開始是懷疑備份片中不包含spfile,於是從源庫查了一下:
RMAN> list backup of controlfile;


備份集列表
===================

BS 關鍵字 型別 LV 大小
------- ---- -- ----------
191 Full 23.38G
包括的控制檔案: Ckp SCN: 5631940113 Ckp 時間: 24-9月 -07

備份集 副本號 1 屬於備份集 191
裝置型別 經過時間 完成時間 壓縮標記
----------- ------------ ---------- ---------- ---
DISK 00:08:52 24-9月 -07 NO TAG20070924T093632

備份集 191 副本號 1的備份段列表
BP 關鍵字 Pc# 狀態 段名稱
------- --- ----------- ----------
197 1 AVAILABLE /data/backup/tradedb/62isntt2_1_1

可以發現,源備份集是包含了控制檔案的。既然備份集名稱沒有錯,那可能是在ftp傳送時出問題了,但是用ls -l檢視兩個檔案大小是一樣的。
出現這種情況還有一種可能:許可權不足。於是看了一下當前備份集的許可權情況:
bash-3.00$ ls -l /data/backup/tradedb/62isntt2_1_1
-rw-r----- 1 root root 25101238272 Sep 25 22:35 /data/backup/tradedb/62isntt2_1_1

果然,oracle是沒有許可權讀取這個檔案的,重新授權:
bash-3.00$ cd /data/backup/tradedb
bash-3.00$ ls
61isntt1_1_1 62isntt2_1_1 64isnvm0_1_1 65iso00i_1_1 lost+found soft
bash-3.00$ chmod a+r 6*

接著用rman恢復就沒有問題了:
bash-3.00$ export ORACLE_SID=prerac1
bash-3.00$ rman target /

Recovery Manager: Release 10.2.0.3.0 - Production on 星期四 9月 27 00:35:47 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

connected to target database: tradedb (not mounted)

RMAN> restore controlfile from '/data/backup/tradedb/62isntt2_1_1';

Starting restore at 27-9月 -07
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=316 instance=prerac1 devtype=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:17
output filename=+DATA/controlfile/control1
output filename=+DATA/controlfile/control2
output filename=+DATA/controlfile/control3
Finished restore at 27-9月 -07

小小問題,簡單記錄一下。

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

相關文章