oracle數據庫備份還原(本地及遠程操作)_第1頁
oracle數據庫備份還原(本地及遠程操作)_第2頁
oracle數據庫備份還原(本地及遠程操作)_第3頁
oracle數據庫備份還原(本地及遠程操作)_第4頁
oracle數據庫備份還原(本地及遠程操作)_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、oracle數據庫備份還原(本地及遠程操作)執行環境:可以在SQLPLUS.EXE或者DOS(命令行)中執行,DOS中可以執行時由于在oracle8i中安裝目錄ora81BIN被設置為全局路徑,該目錄下有EXP.EXE與IMP.EXE文件被用來執行導入導出。oracle用java編寫,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE這倆個文件是被包裝后的類文件。SQLPLUS.EXE調用EXP.EXE,IMP.EXE他們所包裹的類,完成導入導出功能。用IMP和EXP處理的:EXPuserid=/file=IMPuserid=/file=fromuser=touser=實例:數據的導出

2、expqhmis/qhmisqhmisfile=d:backupqhmisqhmis20060526.dmpgrants=yfull=n1將數據庫TEST完全導出,用戶名system密碼manager導出到D:daochu.dmp中expsystem/managerTESTfile=d:daochu.dmpfull=y2將數據庫中system用戶與sys用戶的表導出expsystem/managerTESTfile=d:daochu.dmpowner=(system,sys)3將數據庫中的表table1、table2導出expsystem/managerTESTfile=d:daochu.dm

3、ptables=(table1,table2)4將數據庫中的表table1中的字段filed1以”00”打頭的數據導出expsystem/managerTESTfile=d:daochu.dmptables=(table1)query=wherefiled1like00%”上面是常用的導出,對于壓縮我不太在意,用winzip把dmp文件可以很好的壓縮。不過在上面命令后面加上compress=y就可以了。數據的導入1將D:daochu.dmp中的數據導入TEST數據庫中。impsystem/managerTESTfile=d:daochu.dmp上面可能有點問題,因為有的表已經存在,然后它就報錯

4、,對該表就不進行導入。在后面加上ignore=y就可以了。2將d:daochu.dmp中的表table1導入impsystem/managerTESTfile=d:daochu.dmptables=(table1)下面這句是執行將c盤的oracle的備份的用戶qhmis導入到用戶qhmis的數據庫impqhmis/qhmisqhmisfile=c:qhmis20060224.dmpignore=ngrants=yfull=y遠程備份的時候只要將mailto:“%3Cservice_name”后的部分改成連接數據庫的方式就可以了,女口:LSD_3這是我在.ora92networkadmintns

5、names.ora中自己設置的,代碼如下:LSD_2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=2)(PORT=1521)(CONNECT_DATA=(SID=ora9i)(SERVER=DEDICATED)注:其中紅色部分是要自己改寫的TxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTx進階:將一個數據庫的某用戶的

6、所有表導到另外數據庫的一個用戶下面的例子expuserid=system/managerowner=username1file=expfile.dmpimpuserid=system/managerfromuser=username1touser=username2ignore=yfile=expfile.dmpORACLE數據庫有兩類備份方法。第一類為物理備份,該方法實現數據庫的完整恢復,但數據庫必須運行在歸擋模式下(業務數據庫在非歸擋模式下運行),且需要極大的外部存儲設備,例如磁帶庫;第二類備份方式為邏輯備份,業務數據庫采用此種方式,此方法不需要數據庫運行在歸擋模式下,不但備份簡單,而且可

7、以不需要外部存儲設備。數據庫邏輯備份方法ORACLE數據庫的邏輯備份分為三種模式:表備份、用戶備份和完全備份。表模式備份某個用戶模式下指定的對象(表)。業務數據庫通常采用這種備份方式。若備份到本地文件,使用如下命令:expicdmain/icdrows=yindexes=ncompress=nbuffer=65536feedback=100000volsize=0file=exp_icdmain_csd_yyyymmdd.dmplog=exp_icdmain_csd_yyyymmdd.logtables=moninformation,icdmain.serviceinfo,icdmain.de

8、alinfo若直接備份到磁帶設備,使用如下命令:expicdmain/icdrows=yindexes=ncompress=nbuffer=65536feedback=100000volsize=0file=/dev/rmt0log=exp_icdmain_csd_yyyymmdd.logtables=moninformation,icdmain.serviceinfo,icdmain.dealinfo注:在磁盤空間允許的情況下,應先備份到本地服務器,然后再拷貝到磁帶。出于速度方面的考慮,盡量不要直接備份到磁帶設備。用戶模式備份某個用戶模式下的所有對象。業務數據庫通常采用這種備份方式。若備份到

9、本地文件,使用如下命令:expicdmain/icdowner=icdmainrows=yindexes=ncompress=nbuffer=65536feedback=100000volsize=0file=exp_icdmain_yyyymmdd.dmplog=exp_icdmain_yyyymmdd.log若直接備份到磁帶設備,使用如下命令:expicdmain/icdowner=icdmainrows=yindexes=ncompress=nbuffer=65536feedback=100000volsize=0file=/dev/rmt0log=exp_icdmain_yyyymmd

10、d.log注:如果磁盤有空間,建議備份到磁盤,然后再拷貝到磁帶。如果數據庫數據量較小,可采用這種辦法備份。完全模式備份完整的數據庫。業務數據庫不采用這種備份方式。備份命令為:expicdmain/icdrows=yindexes=ncompress=nbuffer=65536feedback=100000volsize=0full=yfile=exp_fulldb_yyyymmdd.dmp(磁帶設備則為/dev/rmtO)log=exp_fulldb_yyyymmdd.log對于數據庫備份,建議采用增量備份,即只備份上一次備份以來更改的數據。增量備份命令:expicdmain/icdrows=

11、yindexes=ncompress=nbuffer=65536feedback=100000volsize=0full=yinctype=incrementalfile=exp_fulldb_yyyymmdd.dmp(磁帶設備則為/dev/rmt0)log=exp_fulldb_yyyymmdd.log注:關于增量備份必須滿足下列條件:只對完整數據庫備份有效,且第一次需要full=y參數,以后需要inctype=incremental參數。用戶必須有EXP_FULL_DATABASE的系統角色。話務量較小時方可采用數據庫備份。如果磁盤有空間,建議備份到磁盤,然后再備份到磁帶。業務數據庫備份方

12、法及周期用EXP進行備份前,先在SYS用戶下運行CATEXP.SQL文件(如果以前已運行該文件,貝懷要執行這個腳本)。沒有特殊說明,不允許在客戶端執行備份命令。備份命令參照表模式下的備份命令。從磁盤文件備份到磁帶如果首先備份到本地磁盤文件,則需要轉儲到磁帶設備上。若需查看主機上配置的磁帶設備,使用如下命令:lsdev-Cctape顯示的結果如下例所示:rmt0Available30-58-00-2,0SCSI4mmTapeDrivermt1Defined30-58-00-0,0SCSI4mmTapeDrive標明Available的設備是可用的磁帶設備。若需查看磁帶存儲的內容,使用如下命令:t

13、ar-tvf/dev/rmt0顯示的結果如下例所示:-rw-r-r-3004008089600Jan1114:33:572001exp_icdmain_20010111.dmp如果顯示類似如下內容,則表示該磁帶存儲的備份數據是從數據庫直接備份到磁帶上,而非從本地磁盤轉儲到磁帶的備份文件,因此操作系統無法識別。tar:0511-193Anerroroccurredwhilereadingfromthemedia.Thereisaninputoroutputerror.或tar:0511-169Adirectorychecksumerroronmedia;-267331077notequalto2

14、5626.對于新磁帶或無需保留現存數據的磁帶,使用如下命令:tar-cvf/dev/rmt0exp_icdmain_yyyymmdd.dmp注:A.該命令將無條件覆蓋磁帶上的現存數據。B.文件名不允許包含路徑信息,如:/backup/exp_icdmain_yyyymmdd.dmp。對于需要保留現存數據的磁帶,使用如下命令:tar-rvf/dev/rmt0exp_icdmain_yyyymmdd.dmp注:該命令將文件exp_icdmain_yyyymmdd.dmp追加到磁帶的末端,不會覆蓋現存的數據。特別強調:如果備份時是從數據庫直接備份到磁帶上,則不可再向該磁帶上追加復制任何其他文件,否則

15、該備份數據失效。若需將轉儲到磁帶上的備份文件復制到本地硬盤,使用如下命令:將磁帶上的全部文件復制到本地硬盤的當前目錄tar-xvf/dev/rmt0將磁帶上的指定文件復制到本地硬盤的當前目錄tar-xvf/dev/rmt0exp_icdmain_yyyymmdd.dmp備份時間安排由于備份時對系統I/O有較大影響,所以,建議在晚上11點以后進行備份工作。業務數據庫Oracle版本的恢復,恢復方案需根據備份方案確定。由于業務數據庫采用表備份和用戶備份相結合的方案,所以業務數據庫的恢復需根據實際情況采用表恢復和用戶恢復相結合的方案。恢復方案數據庫的邏輯恢復分為表恢復、用戶恢復、完全恢復三種模式。表

16、模式此方式將根據按照表模式備份的數據進行恢復。A.恢復備份數據的全部內容若從本地文件恢復,使用如下命令:impicdmain/icdfromuser=icdmaintouser=icdmainrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=0file=exp_icdmain_csd_yyyymmdd.dmplog=imp_icdmain_csd_yyyymmdd.log若從磁帶設備恢復,使用如下命令:impicdmain/icdfromuser=icdmaintouser=icdmainrows=yindexe

17、s=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=0file=/dev/rmt0log=imp_icdmain_csd_yyyymmdd.logB.恢復備份數據中的指定表若從本地文件恢復,使用如下命令:impicdmain/icdfromuser=icdmaintouser=icdmainrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=0file=exp_icdmain_csd_yyyymmdd.dmplog=imp_icdmain_csd_yyyymm

18、dd.logtables=commoninformation,serviceinfo若從磁帶設備恢復,使用如下命令:impicdmain/icdfromuser=icdmaintouser=icdmainrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=0file=/dev/rmt0log=imp_icdmain_csd_yyyymmdd.logtables=commoninformation,serviceinfo用戶模式此方式將根據按照用戶模式備份的數據進行恢復。A.恢復備份數據的全部內容若從本地文件恢復,使

19、用如下命令:impicdmain/icdfromuser=icdmaintouser=icdmainrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=0file=exp_icdmain_yyyymmdd.dmplog=imp_icdmain_yyyymmdd.log若從磁帶設備恢復,使用如下命令:impicdmain/icdfromuser=icdmaintouser=icdmainrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=

20、0file=/dev/rmt0log=imp_icdmain_yyyymmdd.logB.恢復備份數據中的指定表若從本地文件恢復,使用如下命令:impicdmain/icdfromuser=icdmaintouser=icdmainrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=0file=exp_icdmain_yyyymmdd.dmplog=imp_icdmain_yyyymmdd.logtables=commoninformation,serviceinfo若從磁帶設備恢復,使用如下命令:impicdma

21、in/icdfromuser=icdmaintouser=icdmainrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=0file=/dev/rmt0log=imp_icdmain_yyyymmdd.logtables=commoninformation,serviceinfo完全模式如果備份方式為完全模式,采用下列恢復方法:若從本地文件恢復,使用如下命令:impsystem/managerrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=yvol

22、size=0full=yfile=exp_icdmain_yyyymmdd.dmplog=imp_icdmain_yyyymmdd.log若從磁帶設備恢復,使用如下命令:impsystem/managerrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=yvolsize=0full=yfile=/dev/rmt0log=imp_icdmain_yyyymmdd.log參數說明1.ignore參數Oracle在恢復數據的過程中,當恢復某個表時,該表已經存在,就要根據ignore參數的設置來決定如何操作。若ignore=y,Oracl

23、e不執行CREATETABLE語句,直接將數據插入到表中,如果插入的記錄違背了約束條件,比如主鍵約束,則出錯的記錄不會插入,但合法的記錄會添加到表中。若ignore=n,Oracle不執行CREATETABLE語句,同時也不會將數據插入到表中,而是忽略該表的錯誤,繼續恢復下一個表。2.indexes參數在恢復數據的過程中,若indexes=n,則表上的索引不會被恢復,但是主鍵對應的唯一索引將無條件恢復,這是為了保證數據的完整性。字符集轉換對于單字節字符集(例如US7ASCII),恢復時,數據庫自動轉換為該會話的字符集(NLS_LANG參數);對于多字節字符集(例如ZHS16CGB231280)

24、,恢復時,應盡量使字符集相同(避免轉換),如果要轉換,目標數據庫的字符集應是輸出數據庫字符集的超集。恢復方法業務數據庫采用表恢復方案。在用IMP進行恢復前,先在SYS用戶下運行CATEXP.SQL文件(如果以前已運行該文件,則不要執行這個腳本),然后執行下列命令:IMPICDMAIN/ICDFILE=文件名LOG=LOG文件名ROWS=YCOMMIT=YBUFFER=YIGNORE=YTABLES=表名注:要恢復的表名參照備份的表名。恢復是在原表基礎上累加數據。沒有特殊說明,不允許在客戶端執行恢復命令附錄一:給用戶增加導入數據權限的操作第一,啟動sql*puls第二,以system/manag

25、er登陸第三,createuser用戶名IDENTIFIEDBY密碼(如果已經創建過用戶,這步可以省略)第四,GRANTCREATEUSER,DROPUSER,ALTERUSER,CREATEANYVIEW,DROPANYVIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATESESSIONTO用戶名字第五,運行-cmd-進入dmp文件所在的目錄,impuserid=system/managerfull=yfile=*.dmp或者impuserid=system/managerfull=yfile=filename

26、.dmp執行示例:F:WorkOracle_Databackupimpuserid=test/testfull=yfile=inner_notify.dmp屏幕顯示Import:Release.0-Productionon星期四2月1616:50:052006(c)Copyright2000OracleCorporation.Allrightsreserved.連接到:Oracle8iEnterpriseEditionRelease.0-ProductionWiththePartitioningoptionJServerRelease.0-Production經由常規路徑導出由EXPORT:V

27、08.01.07創建的文件已經完成ZHS16GBK字符集和ZHS16GBKNCHAR字符集中的導入導出服務器使用UTF8NCHAR字符集(可能的ncharset轉換).正在將AICHANNEL的對象導入到AICHANNEL.正在導入表INNER_NOTIFY4行被導入準備啟用約束條件.成功終止導入,但出現警告。附錄二:Oracle不允許直接改變表的擁有者,利用Export/Import可以達到這一目的.先建立import9.par,然后,使用時命令如下:impparfile=/filepath/import9.par例import9.par內容如下:FROMUSER=TGPMSTOUSER=T

28、GPMS2(注:把表的擁有者由FROMUSER改為TOUSER,FROMUSER和TOUSER的用戶可以不同)ROWS=YINDEXES=YGRANTS=YCONSTRAINTS=YBUFFER=409600file=/backup/ctgpc_20030623.dmplog=/backup/import_20030623.logwindows環境下的oracle服務注:SID-數據庫標識HOME_NAME-OracleHome名稱,如OraHome92、OraHome81(1)OracleServiceSID數據庫服務,這個服務會自動地啟動和停止數據庫。如果安裝了一個數據庫,它的缺省啟動類型

29、為自動。服務進程為ORACLE.EXE,參數文件initSID.ora,日志文件SIDALRT.log,控制臺SVRMGRL.EXE、SQLPLUS.EXE。(2)OracleHOME_NAMETNSListener監聽器服務,服務只有在數據庫需要遠程訪問時才需要(無論是通過另外一臺主機還是在本地通過SQL*Net網絡協議都屬于遠程訪問),不用這個服務就可以訪問本地數據庫,它的缺省啟動類型為自動。服務進程為TNSLSNR.EXE,參數文件Listener.ora,日志文件listener.log,控制臺LSNRCTL.EXE,默認端口1521、1526。(3)OracleHOME_NAMEAg

30、entOEM代理服務,接收和響應來自OEM控制臺的任務和事件請求,只有使用OEM管理數據庫時才需要,它的缺省啟動類型為自動。服務進程為DBSNMP.EXE,參數文件snmp_rw.ora,日志文件nmi.log,控制臺LSNRCTL.EXE,默認端口1748。(4)OracleHOME_NAMEClientCache名字緩存服務,服務緩存用于連接遠程數據庫的OracleNames數據。它的缺省啟動類型是手動。然而,除非有一臺OracleNames服務器,否則沒有必要運行這個服務。服務進程為ONRSD.EXE,參數文件NAMES.ORA,日志文件ONRSD.LOG,控制臺NAMESCTL.EXEo(5)OracleHOME_NAMECMAdmin連接管理服務,是構建ConnectionManager服務器所用,只有服務器作為ConnectionManager才需要,它的缺省啟動類型是手動。服務進程為CMADMIN.EXE,參數文件CMAN.ORA,日志文件CMADM_PID.TRC,控制臺CMCTL.EXE,默認端口1830。(6)OracleHOME_NAMECMan連接網關服務,是構建ConnectionManager服務器所用,只有服務器作為ConnectionM

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論