oracle冷备份/恢复
| 1.備份 停止所有的oracle服務(wù),復(fù)制Oracle目錄下的oradata文件夾下的數(shù)據(jù)庫名整個(gè)目錄復(fù)制備份。 這樣冷備份就完成了,當(dāng)然也可以像網(wǎng)上所說的: 示例一、windows環(huán)境下的冷備份與恢復(fù) 2.恢復(fù): 今天網(wǎng)上找了很多恢復(fù)的都不管用,結(jié)果今天下午搞了一個(gè)下午,試了很多方法,終于可以了,以下我是總結(jié)的方法: 1.首先要注意恢復(fù)的到Oracle 版本和路徑必須與原來備份的一樣。 2.新建一個(gè)數(shù)據(jù)庫與原來名稱一樣的數(shù)據(jù)庫(如SD) 3.停止所有的Oracle服務(wù),到Oracle目錄下的oradata把新建的數(shù)據(jù)庫(SD)刪除,把備份的文件復(fù)制進(jìn)來。 4.重啟一下Oracle服務(wù) 5.如果用PL\SQL連接會(huì)提示ora-01033:oracle initialization or shutdown in progress錯(cuò)誤。解決辦法如下,引用他人文章: 分析:應(yīng)該是Oracle在啟動(dòng)后,用戶登錄時(shí)是要將方案中原有配置信息裝載進(jìn)入,裝載過程中遇到原有文件指定的位置上沒有找到,所以就報(bào)出錯(cuò)誤。 四、解決過程: 1、我在解決時(shí)由于著急使用,便用Database Configuration Assistant工具重新創(chuàng)建了一個(gè)新的庫,臨時(shí)解決急用的問題,同時(shí)也給后期解決ora-01033問題埋下了隱患。 就可以解決了。
附:oracle備份比較 Oracle的備份與恢復(fù)有三種標(biāo)準(zhǔn)的模式,大致分為兩大類,備份恢復(fù)(物理上的)以及導(dǎo)入導(dǎo)出(邏輯上的),而備份恢復(fù)又可以根據(jù)數(shù)據(jù)庫的工作模式分為非歸檔模式(Nonarchivelog-style)和歸檔模式(Archivelog-style),通常,我們把非歸檔模式稱為冷備份,而相應(yīng)的把歸檔模式稱為熱備份,他們的關(guān)系如下所示 三種方式各有優(yōu)點(diǎn),我們做個(gè)比較(這個(gè)是用Fireworks畫的,有點(diǎn)糙):
$A:?? 現(xiàn)在先來介紹一下邏輯備份方式的方法,利用Export可將數(shù)據(jù)從數(shù)據(jù)庫中提取出來,利用Import則可將提取出來的數(shù)據(jù)送回到Oracle數(shù)據(jù)庫中去。理論基礎(chǔ):Oracle提供的Export和Import具有三種不同的操作方式(就是備份的數(shù)據(jù)輸出(入)類型): 1,表方式(T)??? 可以將指定的表導(dǎo)出備份; 2,全庫方式(Full)???? 將數(shù)據(jù)庫中的所有對象導(dǎo)出; 3,用戶方式(U)???? 可以將指定的用戶相應(yīng)的所有數(shù)據(jù)對象導(dǎo)出; *在導(dǎo)入導(dǎo)出備份方式中,提供了很強(qiáng)大的一種方法,就是增量導(dǎo)出/導(dǎo)入,但是它必須作為System來完成增量的導(dǎo)入導(dǎo)出,而且只能是對整個(gè)數(shù)據(jù)庫進(jìn)行實(shí)施。增量導(dǎo)出又可以分為三種類別: 1,完全增量導(dǎo)出(Complete Export)???? 這種方式將把整個(gè)數(shù)據(jù)庫文件導(dǎo)出備份;exp system/manager inctype=complete file=20041125.dmp(為了方便檢索和事后的查詢,通常我們將備份文件以日期或者其他有明確含義的字符命名) 2,增量型增量導(dǎo)出(Incremental Export)???? 這種方式將只會(huì)備份上一次備份后改變的結(jié)果;exp system/manager inctype=incremental file=20041125.dmp 3,累積型增量導(dǎo)出(Cumulate Export)????? 這種方式的話,是導(dǎo)出自上次完全增量導(dǎo)出后數(shù)據(jù)庫變化的信息。exp system/manager inctype=cumulative file=20041125.dmp 通常情況下,DBA們所要做的,就是按照企業(yè)指定或者是自己習(xí)慣的標(biāo)準(zhǔn)(如果是自己指定的標(biāo)準(zhǔn),建議寫好計(jì)劃說明),一般,我們采用普遍認(rèn)可的下面的方式進(jìn)行每天的增量備份: Mon: 完全備份(A)? 這樣,我們可以保證每周數(shù)據(jù)的完整性,以及恢復(fù)時(shí)的快捷和最大限度的數(shù)據(jù)損失。恢復(fù)的時(shí)候,假設(shè)事故發(fā)生在周末,DBA可按這樣的步驟來恢復(fù)數(shù)據(jù)庫:? $B 物理備份之冷備份(條件-NonArchiveLog): 當(dāng)數(shù)據(jù)庫可以暫時(shí)處于關(guān)閉狀態(tài)時(shí),我們需要將它在這一穩(wěn)定時(shí)刻的數(shù)據(jù)相關(guān)文件轉(zhuǎn)移到安全的區(qū)域,當(dāng)數(shù)據(jù)庫遭到破壞,再從安全區(qū)域?qū)浞莸臄?shù)據(jù)庫相關(guān)文件拷貝回原來的位置,這樣,就完成了一次快捷安全等數(shù)據(jù)轉(zhuǎn)移。由于是在數(shù)據(jù)庫不提供服務(wù)的關(guān)閉狀態(tài),所以稱為冷備份。冷備份具有很多優(yōu)良特性,比如上面圖中我們提到的,快速,方便,以及高效。一次完整的冷備份步驟應(yīng)該是: 1,首先關(guān)閉數(shù)據(jù)庫(shutdown normal) 2,拷貝相關(guān)文件到安全區(qū)域(利用操作系統(tǒng)命令拷貝數(shù)據(jù)庫的所有的數(shù)據(jù)文件、日志文件、控制文件、參數(shù)文件、口令文件等(包括路徑)) 3,重新啟動(dòng)數(shù)據(jù)庫(startup) 以上的步驟我們可以用一個(gè)腳本來完成操作: su – oracle <????? sqlplus /nolog? 恢復(fù)的時(shí)候,相對比較簡單了,我們停掉數(shù)據(jù)庫,將文件拷貝回相應(yīng)位置,重啟數(shù)據(jù)庫就可以了,當(dāng)然也可以用腳本來完成。 $C 物理備份之熱備份:(條件-ArchiveLog) 當(dāng)我們需要做一個(gè)精度比較高的備份,而且我們的數(shù)據(jù)庫不可能停掉(少許訪問量)時(shí),這個(gè)情況下,我們就需要?dú)w檔方式下的備份,就是下面討論的熱備份。熱備份可以非常精確的備份表空間級和用戶級的數(shù)據(jù),由于它是根據(jù)歸檔日志的時(shí)間軸來備份恢復(fù)的,理論上可以恢復(fù)到前一個(gè)操作,甚至就是前一秒的操作。具體步驟如下: 1,通過視圖v$database,查看數(shù)據(jù)庫是否在Archive模式下:??????? SQL> select log_mode from v$database; 則設(shè)定數(shù)據(jù)庫運(yùn)行于歸檔模式下:SQL>shutdown immediate 注意:當(dāng)數(shù)據(jù)庫處在ARCHIVE模式下時(shí),一定要保證指定的歸檔路徑可寫,否則數(shù)據(jù)庫就會(huì)掛起,直到能夠歸檔所有歸檔信息后才可以使用。另外,為創(chuàng)建一個(gè)有效的備份,當(dāng)數(shù)據(jù)庫在創(chuàng)建時(shí),必須履行一個(gè)全數(shù)據(jù)庫的冷備份,就是說數(shù)據(jù)庫需要運(yùn)行在歸檔方式,然后正常關(guān)閉數(shù)據(jù)庫,備份所有的數(shù)據(jù)庫組成文件。這一備份是整個(gè)備份的基礎(chǔ),因?yàn)樵搨浞萏峁┝艘粋€(gè)所有數(shù)據(jù)庫文件的拷貝。(體現(xiàn)了冷備份與熱備份的合作關(guān)系,以及強(qiáng)大的能力) 2,備份表空間文件: a,首先,修改表空間文件為備份模式 ALTER TABLESPACE tablespace_name BEGIN BACKUP; b,然后,拷貝表空間文件到安全區(qū)域 !CP tablespace_name D_PATH; c,最后,將表空間的備份模式關(guān)閉??? ALTER TABLESPACE tablespace_name END BACKUP; 3,對歸檔日志文件的備份: 停止歸檔進(jìn)程-->備份歸檔日志文件-->啟動(dòng)歸檔進(jìn)程 如果日志文檔比較多,我們將它們寫入一個(gè)文件成為一個(gè)恢復(fù)的參考:$?? files `ls <歸檔文件路徑>/arch*.dbf`;export files 4,備份控制文件: 當(dāng)然,我們也可以將上面的東東寫為一個(gè)腳本,在需要的時(shí)候執(zhí)行就可以了: 腳本范例: su – oracle <????? sqlplus /nolog? !CP tablespace_name D_PATH ALTER TABLESPACE tablespace_name END BACKUP alter database backup controlfile to 'controlfile_back_name(一般用2004-11-20的方式)' reuse; !files `ls <歸檔文件路徑>/arch*.dbf`;export files 熱備份的恢復(fù),對于歸檔方式數(shù)據(jù)庫的恢復(fù)要求不但有有效的日志備份還要求有一個(gè)在歸檔方式下作的有效的全庫備份。歸檔備份在理論上可以無數(shù)據(jù)丟失,但是對于硬件以及操作人員的要求都比較高。在我們使用歸檔方式備份的時(shí)候,全庫物理備份也是非常重要的。歸檔方式下數(shù)據(jù)庫的恢復(fù)要求從全備份到失敗點(diǎn)所有的日志都要完好無缺。 ? ? ? ? --------------------------------------------路徑不一致的恢復(fù)方法-------------------------------------------- ? 近日,我想把oracle數(shù)據(jù)庫從我的電腦上遷移到機(jī)房的電腦上,一開始采用dmp/imp方式,但是發(fā)現(xiàn)需要導(dǎo)出很多用戶,太麻煩。所以決定采用冷備份/冷恢復(fù)的方式。 過程如下: 通過v$controlfile查看控制文件,通過v$logfile查看重做日志文件,通過V$DATAFILE查看數(shù)據(jù)文件,發(fā)現(xiàn)他們都處于同一文件夾中i:\oracle\oradata\test中,索性都復(fù)制到另一臺機(jī)器的e:\oracle\oradata\test中,復(fù)制之前shutdown系統(tǒng)。還復(fù)制了inittest.ora后來發(fā)現(xiàn)他指向另一個(gè)init.ora,又復(fù)制了這個(gè)init.ora,還復(fù)制了一個(gè)口令文件PWDtest.ora到機(jī)房電腦的相應(yīng)位置。startup后,發(fā)現(xiàn)無法運(yùn)行,我想應(yīng)該是兩個(gè)oracle安裝路徑不同的原因,首先修改了init.ora中的控制文件的路徑,還是不行,我想應(yīng)該修改控制文件中的數(shù)據(jù)文件路徑信息,如何修改呢?網(wǎng)上一頓查找,終于找到了如下方法: 首先,在原電腦上: 1. 備份數(shù)據(jù)庫中的數(shù)據(jù),以防不測。 2. svrmgrl 3. svrmgrl>connect internal/oracle 4. svrmgrl>alter database backup controlfile to trace; 備份控制文件 5. 在/home/oracle//admin/ora7/udump下可找到最新生成的TRACE文件,假設(shè)為ora_15269.trc,此文件就包含了當(dāng)前控制文件的參數(shù)及生成語法。 6. 提取ora_15269.trc中有關(guān)控制文件生成的語句另存為creatctl.sql。7. 修改creatctl.sql中的路徑信息;8.然后,復(fù)制到目標(biāo)電腦上,并且在目標(biāo)電腦上9. svrmgrl 10. svrmgrl>connect internal 11. svrmgrl>shutdown immediate 12. svrmgrl>@creatctl.sql 13. svrmgrl>alter database open;數(shù)據(jù)庫遷移成功.] 總結(jié): 冷備份需要在oracle shutdown的情況下,拷貝如下文件:1.數(shù)據(jù)文件;2.控制文件;3。日志文件;4。init數(shù)據(jù)庫實(shí)例名.ora文件,及其內(nèi)部指向的init.ora文件;5 口令文件PWD數(shù)據(jù)庫實(shí)例名.ora;然后,安裝oracle,實(shí)例名和以前相同,安裝路徑等最好也相同,shutdown,拷貝上述文件到相應(yīng)位置,如果安裝位置和以前不同,需要修改init*.ora,和控制文件中的路徑信息。 ? ? --------------------------------------------路徑不一致的恢復(fù)方法-------------------------------------------- |
總結(jié)
以上是生活随笔為你收集整理的oracle冷备份/恢复的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在linux下安装db2全过程
- 下一篇: /dev/mapper/VolGroup