Linux救援模式下拷貝Oracle資料檔案,恢復資料庫

尛樣兒發表於2013-07-09

        昨晚協助客戶完成了一個Oracle資料庫的恢復操作。恢復並沒有太高深的東西,但其中一些細節還是在這裡記錄一下。

       客戶的環境是一臺安裝Linux 64位的HP DL380G7,沒有接儲存,直接將資料放在了本地磁碟上,資料庫的版本是Oracle Database 10.2.0.1 for Linux x86_64bit。在Linux系統的日誌中出現了大量ERROR I/O的錯誤,之後作業系統無法正常啟動。

       整個恢復過程經歷瞭如下幾步:

       1).將Linux安裝光碟插入伺服器光碟機,從光碟機引導進入安裝Linux的第一個介面,鍵入linux rescue,之後根據提示配置好網路,最終將進入Linux的救援模式。

       2).執行fdisk -l檢視磁碟,手動執行mount操作掛載原有的檔案系統。

       3).通過網路將所有的資料檔案、控制檔案、日誌檔案傳送到另外的伺服器。

       4).在相同平臺、相同版本的資料庫環境手動建立引數檔案,嘗試啟動傳遞過來的資料庫檔案。

        起初資料庫開啟之後業務系統使用過程中,告警日誌收到如下的資訊:
Mon Jul  8 22:02:14 2013
Errors in file /u01/app/oracle/admin/oradb/bdump/oradb_j001_5259.trc:
ORA-01552: cannot use system rollback segment for non-system tablespace 'TEMP'
Mon Jul  8 22:02:51 2013
Errors in file /u01/app/oracle/admin/oradb/bdump/oradb_j001_5259.trc:
ORA-01552: cannot use system rollback segment for non-system tablespace 'TEMP'
Mon Jul  8 22:02:51 2013
Errors in file /u01/app/oracle/admin/oradb/bdump/oradb_j001_5259.trc:
ORA-01552: cannot use system rollback segment for non-system tablespace 'TEMP'

       這是因為引數檔案中未明確設定UNDO_MANAGEMENT='AUTO',預設值是MANUAL,另外,process未明確設定時候的預設值是40,通常這也是不夠用的。

手動配置引數檔案的引數值推薦包含以下內容:
audit_file_dest='/u01/app/oracle/admin/oradb/adump'
background_dump_dest='/u01/app/oracle/admin/oradb/bdump'
compatible='10.2.0.1.0'
control_files='/u01/mocha/control01.ctl','/u01/mocha/control02.ctl','/u01/mocha/control03.ctl'
core_dump_dest='/u01/app/oracle/admin/oradb/cdump'
db_name='oradb'
db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
db_recovery_file_dest_size=2147483648
job_queue_processes=10
processes=200
sga_max_size=2g
sga_target=2g
UNDO_MANAGEMENT='AUTO'
user_dump_dest='/u01/app/oracle/admin/oradb/udump'

        資料庫丟失了一個資料檔案,在MOUNT模式將其OFFLINE DROP(非歸檔模式),之後資料庫順利開啟,確定資料沒問題後執行exp將其匯出,恢復到其他活動的資料庫。

--end--

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

相關文章