1. 復(fù)制舊的數(shù)據(jù)庫(kù)文件
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比安達(dá)網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式安達(dá)網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋安達(dá)地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
(1) 用SQLPlus連接數(shù)據(jù)庫(kù):sqlplus 用戶名/密碼 as sysdba
(2) 關(guān)閉DB :shutdown immediate;
(3) 復(fù)制文件到其他地方存儲(chǔ)實(shí)現(xiàn)備份
1)復(fù)制三個(gè)文件夾admin;oradata(datafile,?controlfile,redo【注:數(shù)據(jù)文件, 控制文件,redo】);flash_recovery_area三個(gè)文件夾。2)dbhome_1下的內(nèi)容database(PWDfile、pfile);dbs(spfile);NETWORK/ADMIN(listener.ora、tnsnames.ora)。
2. Oracle重新建庫(kù)恢復(fù)
(1)創(chuàng)建一個(gè)和原來一樣的數(shù)據(jù)庫(kù)。(安裝路徑和數(shù)據(jù)庫(kù)名必須和原來一致)
(2)停止數(shù)據(jù)庫(kù)shutdown immediate;
(3)復(fù)制安裝目錄下的admin、oradata、flash_recovery_area覆蓋,復(fù)制database(PWDfile、pfile) 覆蓋
(4)啟動(dòng)數(shù)據(jù)庫(kù)?startup;
備注:
無歸檔模式:將備份文件拷貝回原來的目錄即可,然后啟動(dòng)數(shù)據(jù)庫(kù)。
歸檔模式:
①將數(shù)據(jù)文件、控制文件拷貝回原來目錄
②SQLstartup mount;
SQLrecover database using backup controlfile;
③將相應(yīng)的歸檔日志和聯(lián)機(jī)日志拖到CMD命令窗口進(jìn)行跑日志。
④SQLalter database open resetlogs;
3. 軟件重裝恢復(fù)
此時(shí),操作系統(tǒng)重裝,如果做冷備恢復(fù),要保證相同操作系統(tǒng),相同的數(shù)據(jù)庫(kù)版本。形勢(shì)如同異機(jī)恢復(fù)。
A、不創(chuàng)建實(shí)例:(源機(jī)上的數(shù)據(jù)庫(kù)名字為orcl)
(1)?恢復(fù)oradata/orcl目錄
在目標(biāo)機(jī)上的oradata目錄下建立orcl文件夾,然后進(jìn)行數(shù)據(jù)覆蓋。
包括數(shù)據(jù)文件、參數(shù)文件、控制文件、日志文件、pwd文件,放在與原系統(tǒng)相同的目錄。如果目錄有所改變,則需要另外建立控制文件,修改pfile。?(2) 恢復(fù)admin/orcl目錄在目標(biāo)機(jī)上的admin目錄下建立orcl文件夾,然后在orcl里面再建立adump、bdump、cdump、udump、dpdump、pfile六個(gè)文件夾
(3) 建立服務(wù)把源機(jī)的密碼文件拷貝到目標(biāo)機(jī)的database目錄下。使用oradim命令在cmd下oradim -new -sid orcl?表示建立一個(gè)服務(wù),sid為orcl(最好名字和源機(jī)備份的數(shù)據(jù)庫(kù)名字一致,就不需要重建密碼文件)。如果是在linux下,不需要此步。?(4) 重建創(chuàng)建參數(shù)文件、控制文件拷貝源機(jī)的pfile到目標(biāo)機(jī)的一個(gè)目錄下,修改pfile里面相關(guān)文件的路徑。然后通過SQLcreate spfile from pfile=‘文件路徑'來創(chuàng)建參數(shù)文件。重建控制文件命令:SQLalter database backup controlfile to trace;?然后會(huì)在udump文件夾下產(chǎn)生一個(gè)追蹤文件,打開文件找到如下一段,復(fù)制到文本中,修改相應(yīng)路徑然后保存為:createctl.sql文件(sql腳本文件),復(fù)制到目標(biāo)機(jī)上。注意:SQLalter database backup controlfile to trace as 'F:/DB_RECOVERY/CONTROL_FILE_TRACE.TXT';復(fù)制的原始導(dǎo)出txt中的,相應(yīng)代碼片段如下:?View Code
(5)? 數(shù)據(jù)庫(kù)設(shè)置SID和啟動(dòng)服務(wù)
12345678 ? ?c:\set?ORACLE_SID=orclc:\sqlplus?"/as sysdba"?SQLcreate?spfile?from?pfile='c:\pfile.txt';SQL@c:\createctl.sql;SQLshutdown immediate;SQLstartup;SQLalter?database?open?resetlogs; ?
備注:
如果(4)、(5)不好用,可以用下面的方法修改這些路徑不一致的問題(反正筆者電腦上冷備份恢復(fù)時(shí),上面的兩個(gè)步驟就不好用):
1)SQL下執(zhí)行如下語(yǔ)句,恢復(fù)控制文件
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS? ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
2)修改日志、DBF的路徑
修改oracle_home\oradata\orcl下及相關(guān)文件的路徑
(6) TNSNAMES設(shè)置在network\admin下的tnsnames.ora中添加如下片段
123456789 ? ?ORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl))) ?
(7) 建立監(jiān)聽用net configuration為orcl實(shí)例新建監(jiān)聽?至此,冷備份恢復(fù)成功。即使你現(xiàn)在用oem打開數(shù)據(jù)庫(kù)時(shí)發(fā)現(xiàn)提示找不到sid ,但實(shí)際上你已經(jīng)成功了,此時(shí)只需要重啟一下的你的服務(wù)器就可以。
B、創(chuàng)建實(shí)例方式(實(shí)例SID與源機(jī)數(shù)據(jù)庫(kù)SID一致)
(1) 替換和覆蓋oradata\orcl目錄刪除目標(biāo)機(jī)的oradata\orcl底下的所有文件,把源機(jī)的所有data文件、redo文件拷貝到此目錄下
(2) 密碼文件覆蓋刪除目標(biāo)機(jī)的密碼文件,拷貝源機(jī)密碼文件到目標(biāo)機(jī)下。
(3) 控制文件恢復(fù)在源機(jī)上重建目標(biāo)機(jī)的控制文件:SQLalter database backup controlfile to trace;然后會(huì)在udump文件夾下產(chǎn)生一個(gè)追蹤文件,打開文件找到上面那段,復(fù)制到文本中,修改相應(yīng)路徑然后保存為:createctl.sql文件(sql腳本文件),復(fù)制到目標(biāo)機(jī)上。
復(fù)制代碼代碼如下:
12345 ? ?c:\sqlplus?"/as sysdba"SQL@c:\createctl.sql;SQLshutdown immediate;SQLstartup;SQLalter?database?open?resetlogs; ?
(4)? 在network\admin下的tnsnames.ora中添加如下片段
復(fù)制代碼代碼如下:
123456789 ? ?ORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl))) ?
(5) 用net configuration為orcl實(shí)例新建監(jiān)聽
若是初學(xué)Linux的話建議看看《Linux就該這么學(xué)》這本書。
冷備份
冷備份數(shù)據(jù)庫(kù)是將數(shù)據(jù)庫(kù)關(guān)閉之后備份所有的關(guān)鍵性文件包括數(shù)據(jù)文件、控制文件、聯(lián)機(jī)REDO LOG文件,將其拷貝到另外的位置。此外冷備份也可以包含對(duì)參數(shù)文件和口令文件的備份,但是這兩種備份是可以根據(jù)需要進(jìn)行選擇的。冷備份實(shí)際也是一種物理備份,是一個(gè)備份數(shù)據(jù)庫(kù)物理文件的過程。因?yàn)槔鋫浞菀獋浞莩酥刈鋈罩疽酝獾乃袛?shù)據(jù)庫(kù)文件,因此也被成為完全的數(shù)據(jù)庫(kù)備份。
過程:
冷備份數(shù)據(jù)必須是數(shù)據(jù)庫(kù)不在open狀態(tài)下。 以下步驟會(huì)給出詳細(xì)的過程:
◆(1): 關(guān)閉DB : shutdown immediate;
◆(2):copy oradata目錄下的所有文件, 包括數(shù)據(jù)文件, 控制文件,redo,等,還需要copy 密碼文件 在目錄ora92下 的database 中的pwd 文件.全部copy到一個(gè)安全目錄中。在sql 下可以直接加一個(gè) host 然后使用dos命令。如host copy .............
◆(3):如果是操作系統(tǒng)的重新安裝,只要是同樣系統(tǒng),同樣數(shù)據(jù)庫(kù)版本,是可以做冷備恢復(fù)。一下談的是系統(tǒng)的重新安裝后的步驟。
◆(4):正常安裝oracle軟件,只需要安裝軟件,可以不用建實(shí)例,建實(shí)例的時(shí)間也比較長(zhǎng),也沒有必要。 軟件安裝好以后,開始準(zhǔn)備恢復(fù)。
◆(5):數(shù)據(jù)覆蓋過去包括pwd文件,放在原來的目錄,如果目錄有所改變則需要另外建立控制文件,修改pfile。
◆(6):建立服務(wù):使用oradim 命令 cmd下 oradim -new -sid erp 表示建立一個(gè)服務(wù),sid為erp。關(guān)于oradim的命令另外給出專門解釋。
◆(7):建立監(jiān)聽: net configuration assintant 來建立,或用腳本建立并且開啟。
◆(8):打開數(shù)據(jù)庫(kù): 用oem也行,cmd下也行。
set oracle_sid=erp;
sqlplus "/as sysdba";
startup;
select * from v$instance;
至此,冷備份恢復(fù)成功。即使你現(xiàn)在用oem打開數(shù)據(jù)庫(kù)時(shí)發(fā)現(xiàn)提示找不到sid ,但實(shí)際上你已經(jīng)成功了,此時(shí)只需要重啟一下的你的服務(wù)器就可以了。
-------------------------------------------
熱備份
熱備份是在數(shù)據(jù)庫(kù)運(yùn)行的情況下,采用archive log mode方式備份數(shù)據(jù)庫(kù)的方法。熱備份要求數(shù)據(jù)庫(kù)處于archive log模式下操作,并需要大量的檔案空間。一旦數(shù)據(jù)庫(kù)處于archive loh
模式,就可以進(jìn)行備份了,當(dāng)執(zhí)行備份時(shí),只能在數(shù)據(jù)文件級(jí)或表空間進(jìn)行。
過程:
1.準(zhǔn)備工作
由于在備份過程中,數(shù)據(jù)庫(kù)仍然是打開的,所以要求正在復(fù)制的各個(gè)數(shù)據(jù)文件管理的表空間必須處于備份模式。備份完后再脫離備份模式。因此備份前必須將ORACLE 數(shù)據(jù)庫(kù)調(diào)整為歸檔模式。查看代碼如下
查看當(dāng)前數(shù)據(jù)庫(kù)歸檔狀態(tài):ARCHIVE ?LOG ?LIST:以下為非歸檔
lt;img src="" data-rawwidth="505" data-rawheight="130" class="origin_image zh-lightbox-thumb" width="505" data-original=""/gt;
2數(shù)據(jù)庫(kù)備份
2.1查詢要備份表空間對(duì)應(yīng)的數(shù)據(jù)文件的詳細(xì)信息
select file_name from dba_data_files
where
tablespace_name='USERS';
2.2將表空間設(shè)為備份模式
ALTER ?TABLESPACE ?USERS ?BEGIN ?BACKUP;
2.3查看處于備份模式的數(shù)據(jù)文件:
select ? * ? from ? v$backup;
2.4使用操作系統(tǒng)命令備份表空間的數(shù)據(jù)文件
HOST COPY f:\BAK\ HOST COPY f:\oracle\oradata\orcl\*.dbf//將前面ORACLE數(shù)據(jù)庫(kù)熱備份的文件拷貝到系統(tǒng)目錄中
2.5將表空間設(shè)置為正常模式
ALTER TABLESPACE ?USERS ?END ?BACKUP。
你看看你數(shù)據(jù)文件,控制文件,日志文件,還存在么?
如果存在的話,這個(gè)就是冷備份了。
只需要在新建立的數(shù)據(jù)庫(kù)里,把數(shù)據(jù)文件,控制文件,日志文件copy上去。
然后進(jìn)行冷備份就可以。
冷備份有兩種方式,你可以選擇一種進(jìn)行備份。
具體資料,你可以查一下。很簡(jiǎn)單的。
把你備份的所有東西拷貝到相應(yīng)的文件夾中,然后
startup mount;
recover database( using backup controlfile);
根據(jù)提示看需不需要后面的參數(shù)
alter database open( resetlogs);
根據(jù)提示看需不需要參數(shù)。