新聞中心
DMP文件恢復數(shù)據(jù)庫,詳細步驟

站在用戶的角度思考問題,與客戶深入溝通,找到成安網站設計與成安網站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網站設計制作、做網站、企業(yè)官網、英文網站、手機端網站、網站推廣、申請域名、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋成安地區(qū)。
在數(shù)據(jù)庫管理中,數(shù)據(jù)的備份與恢復是非常重要的一項工作。備份可以保證數(shù)據(jù)的安全性,而恢復則可以在數(shù)據(jù)丟失或出現(xiàn)故障時快速回復數(shù)據(jù)。在Oracle數(shù)據(jù)庫中,數(shù)據(jù)庫的備份和恢復通常使用DMP文件進行操作。那么,DMP文件恢復數(shù)據(jù)庫的詳細步驟是什么呢?接下來,我們來一一進行講解。
一、創(chuàng)建DMP文件
在恢復數(shù)據(jù)庫之前,首先需要進行數(shù)據(jù)庫的備份。在Oracle系統(tǒng)中,數(shù)據(jù)庫備份通常使用exp命令將數(shù)據(jù)庫數(shù)據(jù)導出為DMP文件。使用該命令時,需要提供以下信息:
1.用戶名
2.密碼
3.數(shù)據(jù)文件
4.輸出文件
具體的操作如下:
exp 用戶名/密碼 file=輸出文件.dmp log=輸出文件.log full=y
通過以上命令,在將數(shù)據(jù)庫中的所有內容導出為名為輸出文件.dmp的DMP文件中。當DMP文件創(chuàng)建成功后,就可以開始進行數(shù)據(jù)庫的恢復操作了。
二、恢復數(shù)據(jù)庫
1.關閉Oracle數(shù)據(jù)庫
在進行數(shù)據(jù)庫的恢復操作之前,首先需要關閉Oracle數(shù)據(jù)庫。具體的操作可以使用以下命令進行:
shutdown immediate;
該命令會立即關閉Oracle數(shù)據(jù)庫并釋放所有與之相關的資源。
2.使用DMP文件恢復數(shù)據(jù)庫
數(shù)據(jù)庫關閉后,我們可以使用imp命令進行數(shù)據(jù)庫的恢復和導入工作。依然需要提供以下信息:
1.用戶名
2.密碼
3.數(shù)據(jù)文件
4.輸入文件
具體的操作如下:
imp 用戶名/密碼 file=輸入文件.dmp log=輸入文件.log full=y
通過以上命令,Oracle系統(tǒng)便可以使用DMP文件恢復數(shù)據(jù)庫了。在操作過程中,會出現(xiàn)以下步驟:
(1)創(chuàng)建新的表空間
如果在恢復操作中出現(xiàn)了與正在使用的表空間名稱相同的表空間,并且在創(chuàng)建新表空間時出現(xiàn)了錯誤,則Oracle系統(tǒng)將不會繼續(xù)創(chuàng)建新表空間。
(2)創(chuàng)建用戶
如果在創(chuàng)建新用戶時出現(xiàn)了錯誤,則Oracle系統(tǒng)將不會繼續(xù)創(chuàng)建新用戶。
(3)創(chuàng)建對象
在創(chuàng)建新表、序列、索引和約束等對象時,如果出現(xiàn)錯誤,則Oracle系統(tǒng)將會回滾當前的操作,并打印出錯誤信息。
3.打開Oracle數(shù)據(jù)庫
在恢復數(shù)據(jù)庫操作完成后,我們需要打開Oracle數(shù)據(jù)庫。具體的操作可以使用以下命令進行:
startup;
該命令將會重新啟動Oracle數(shù)據(jù)庫,并打開所有系統(tǒng)所需的內部進程。
通過以上步驟,我們可以使用DMP文件快速且高效地恢復Oracle數(shù)據(jù)庫。在進行備份和數(shù)據(jù)恢復操作時,我們需要注意以下幾點:
1.在進行恢復操作之前,一定要停止數(shù)據(jù)庫的運行。
2.進行數(shù)據(jù)備份時,請注意備份的范圍,盡量不要備份與數(shù)據(jù)庫無關的內容。
3.在進行備份和恢復操作時,需要提供足夠的空間來存放備份和恢復文件。
4.在進行恢復操作時,請注意清晰、準確地了解恢復操作的相關信息。
希望以上內容能夠幫助大家更好地進行數(shù)據(jù)庫備份和恢復操作。
相關問題拓展閱讀:
- 如何利用orcale導入工具,將已有的DMP文件還原到orcale數(shù)據(jù)庫中,希望能給予詳細的回答,更好是有圖有文
- Windows 2023 下的Oracle,如何通過已經備份好了的DMP文件做數(shù)據(jù)庫還原?
如何利用orcale導入工具,將已有的DMP文件還原到orcale數(shù)據(jù)庫中,希望能給予詳細的回答,更好是有圖有文
Oracle Export/Import工具使用介紹
Oracle Export/Import工具使用介紹
Oracle Exp/Imp工具是一個操作簡單、方便靈活的備份恢復和數(shù)據(jù)遷移工具,它可以實施全庫級、用戶級、表級的數(shù)據(jù)備份和恢復。對于數(shù)據(jù)量在G級或G級以內,強調高可用性,可以容忍少量數(shù)據(jù)丟失的數(shù)據(jù)庫系統(tǒng),Exp/Imp是普遍使用的邏輯備份方式。
?Export從數(shù)據(jù)庫中導出數(shù)據(jù)到dump文件中
?Import從dump文件中到入數(shù)據(jù)導數(shù)據(jù)庫中
1. 使用到Exp/Imp工具的的場景:
1) 兩個數(shù)據(jù)庫之間傳送數(shù)據(jù)
a 同一個版本的oracle Server之間
a 不同版本的oracle Server之間
a 同種OS之間
a 不同種OS之間
2) 用于數(shù)據(jù)庫的備份和恢復
3) 從一個SCHEMA傳送到另一個SCHEMA
4) 從一個TABLESPACE傳送到另一個TABLESPACE
2. DUMP文件介紹
EXPORT到出的是二進制格式的文件,不可以手工編輯,否則會損壞數(shù)據(jù)。該文件在ORACLE支持的任何平臺上都是一樣的格式,可以在各平臺上通用。
DUMP文件在IMPORT時采用向上兼容方式,就是說ORALCE8的DUMP文件可以導入到ORACLE9中,但是版本相差很大的版本之間可能有問題。
3. Oracle9i EXP功能描述
Oracle9i EXP在原有激做的基礎上新增了部分新的參數(shù),按功能主要分為以下幾個部分念畝:
1) OBJECT_CONSISTENT – 用于仔鉛森設置EXP對象為只讀以保持對象的一致性。默認是N。
2) FLASHBACK_SCN和FLASHBACK_TIME – 用于支持FLASHBACK功能而新增。
3) RESUMABLE、RESUMABLE_NAME和RESUMABLE_TIMEOUT – 用于支持RESUMABLE空間分配而新增。
4) TTS_FULL_CHECK – 用于在傳輸表空間時使用依賴性檢查。
5) TEMPLATE – 用于支持iAS。
6) TABLESPACES – 設置表空間導出模式。個人覺得對于一般用戶而言,這個才是新增參數(shù)中最實用的一個,可以讓用戶在原來的FULL、OWNER、TABLES的基礎上多了一種選擇,使得EXP更加靈活。
4. EXPORT/IMPORT過程 (DUMP文件包含的數(shù)據(jù)對象)
EXPORT導出的DUMP文件包含兩種基本類型的數(shù)據(jù) :
?DDL (Data Dictionary Language)
?Data
DUMP文件包含所有重新創(chuàng)建Data Dictionary的DDL語句,基本上是可以讀的格式 ;但是應該注意的是,千萬不要用文本編輯器編輯之,oracle說不支持這樣做的。
下面列出的是DUMP文件中包括的ORACLE對象,分為TABLE/USER/FULL方式,有些對象只是在FULL方式下才有(比如public synonyms, users, roles, rollback segments等)
Table modeUser Mode Full Database Mode
Table definitionsTable definitionsTable definitions
Table dataTable dataTable data
Owner’s table grants Owner’s grantsGrants
Owner’s table indexes Owner’s indexesIndexes
Table constraintsTable constraintsTable constraints
Table triggersTable triggersAll triggers
Clusters Clusters
Database linksDatabase links
Job queuesJob queues
Refresh groupsRefresh groups
Sequences Sequences
Snapshots Snapshots
Snapshot logsSnapshot logs
Stored proceduresStored procedures
Private synonymsAll synonyms
Views Views
Profiles
Replication catalog
Resource cost
Roles
Rollback segments
System audit options
System privileges
Tablespace definitions
Tablespace quotas
User definitions
5. IMPORT時的對象倒入順序
1.Tablespaces
2.Profiles
3.Users
4.Roles
5.SystemPrivilegeGrants
6.RoleGrants
7.DefaultRoles
8.TablespaceQuotas
9.ResourceCosts
10.RollbackSegments
11.DatabaseLinks
12.Sequences
13.Snapshots
14.SnapshotLogs
15.JobQueues
16.RefreshGroups
17.ClusterDefinitions
18.Tables(alsogrants,comments,indexes,constraints,auditing)
19.ReferentialIntegrity
20.POSTTABLESactions
21.Synonyms
22.Views
23.StoredProcedures
24.Triggers,DefaultsandAuditing
按這個順序主要是解決對象之間依賴關系可能產生的問題。TRIGGER最后導入,所以在INSERT數(shù)據(jù)到數(shù)據(jù)庫時不會激發(fā)TRIGGER。在導入后可能會有一些狀態(tài)是NVALID的PROCEDURE,主要是IMPORT時會影響一些數(shù)據(jù)庫對象,而IMPORT并不重新編譯PROCEDURE,從而造成這種情況,可以重新編譯之,就能解決這個問題。
6. 兼容性問題
IMPORT工具可以處理EXPORT 5.1.22之后的版本導出的DUMP文件,所以你用ORACLE7的IMPORT處理ORACLE6的DUMP文件,依次類推,但是ORACLE如果版本相差很大有可能不能處理。具體的問題可以參照相應的文檔,比如有關參數(shù)設置等(COMPATIBLE參數(shù))
2EXPORT需要的VIEW
EXPORT需要的VIEW是由CATEXP.SQL創(chuàng)建,這些內部VIEW用于EXPORT組織DUMP文件中數(shù)據(jù)格式。大部分VIEW用于收集創(chuàng)建DDL語句的,其他的主要供ORACLE開發(fā)人員用。這些VIEW在不同ORACLE版本之間有可能不同,每個版本可能都有新的特性加入。所以在新的版本里面執(zhí)行舊的dump文件會有錯誤,一般可以執(zhí)行CATEXP.SQL解決這些問題,
2解決向后兼容問題的一般步驟如下:
1) 導出數(shù)據(jù)庫的版本比目標數(shù)據(jù)庫老的情況:
?在需要導入的目標數(shù)據(jù)庫中執(zhí)行舊的CATEXP.SQL
?使用舊的EXPORT導出DUMP文件
?使用舊的IMPORT導入到數(shù)據(jù)庫中
?在數(shù)據(jù)庫中執(zhí)行新的CATEXP.SQL,以恢復該版本的EXPORT VIEW
2) 導出數(shù)據(jù)庫的版本比目標數(shù)據(jù)庫新的情況
?在需要導入的目標數(shù)據(jù)庫中執(zhí)行新的CATEXP.SQL
?使用新的EXPORT導出DUMP文件
?使用新的IMPORT導入到數(shù)據(jù)庫中
?在數(shù)據(jù)庫中執(zhí)行舊的CATEXP.SQL,以恢復該版本的EXPORT VIEW
7. 碎片整理
EXPORT/IMPORT一個很重要的應用方面就是整理碎片。因為如果時初次IMPPORT,就會重新CREATE TABLE 再導入數(shù)據(jù),所以整張表都是連續(xù)存放的。
另外缺省情況下EXPORT會在生成DUMP文件是“壓縮(COMPRESS)”TABLE,但是這種壓縮在很多情況下被誤解。事實上,COMPRESS是改變STORAGE參數(shù)INITIAL的值。比如:CREATE TABLE …. STORAGE( INITIAL 10K NEXT 10K..) 現(xiàn)在數(shù)據(jù)已經擴展到100個EXTENT,如果采用COMPRESS=Y來EXPORT數(shù)據(jù),則產生的語句時 STORAGE( INITIAL 1000K NEXT 10K) ;我們可以看到NEXT值并沒有改變,而INITIAL是所有EXTENT的總和。所以會出現(xiàn)如下情況,表A有4個100M的EXTENT,執(zhí)行DELETE FROM A,然后再用COMPRESS=Y 導出數(shù)據(jù),產生的CREATE TABLE語句將有400M的INITIAL EXTENT。即使這是TABLE中已經沒有數(shù)據(jù)??!這是的DUMP文件即使很小,但是在IMPORT時就會產生一個巨大的TABLE. 另外,也可能會超過DATAFILE的大小。比如,有4個50M的數(shù)據(jù)文件,其中表A有15個10M的EXTENT,如果采用COMPRESS=Y的方式導出數(shù)據(jù),將會有INITIAL=150M那么在重新導入時,不能分配一個150M的EXTENT,因為單個EXTENT不能跨多個文件。
8. 在USER和TABLESPACE之間傳送數(shù)據(jù)
一般情況下EXPORT的數(shù)據(jù)要恢復到它原來的地方去。如果SCOTT用戶的表以TABLE或USER方式EXPORT數(shù)據(jù),在IMPORT時,如果SCOTT用戶不存在,則會報錯! 以FULL方式導出的數(shù)據(jù)帶有CREATE USER的信息,所以會自己創(chuàng)建USER來存放數(shù)據(jù)。當然可以在IMPORT時使用FROMUSER和TOUSER參數(shù)來確定要導入的USER,但是要保證TOUSER一定已經存在啦。
在imp添加參數(shù)TABLESPACES 可以改變導入數(shù)據(jù)的表空間;
這有2種情況:一種是在數(shù)據(jù)導入前建好表,把表建到其他表空間上,再導入數(shù)據(jù);另一種情況是收回導入用戶的unlimited tablespace的權限會導入用戶的默認表空間;
9. EXPORT/IMPORT對SQUENCE的影響
在兩種情況下,EXPORT/IMPORT會對SEQUENCE。
1) 如果在EXPORT時,用戶正在取SEQUENCE的值,可能造成SEQUENCE的不一致。
2) 另外如果SEQUENCE使用CACHE,在EXPORT時,那些在CACHE中的值就會被忽略的,只是從數(shù)據(jù)字典里面取當前值EXPORT。
如果在進行FULL方式的EXPORT/IMPORT時,恰好在用sequence更新表中某列數(shù)據(jù),而且不是上面兩種情況,則導出的是更新前的數(shù)據(jù)。
如果采用常規(guī)路徑方式,每一行數(shù)據(jù)都是用INSERT語句,一致性檢查和INSERT TRIGGER
如果采用DIRECT方式,某些約束和trigger可能不觸發(fā),如果在trigger中使用sequence.nextval,將會對sequence有影響。
10. EXP常用選項
1)FULL,這個用于導出整個數(shù)據(jù)庫,在ROWS=N一起使用時,可以導出整個數(shù)據(jù)庫的結構。例如:
exp sys file=test.dmp log=test.log full=y rows=n compress=y direct=y
2)BUFFER和FEEDBACK,在導出比較多的數(shù)據(jù)時,考慮設置這兩個參數(shù)。例如:
exp new file=test.dmp log=test.log feedback=10000 buffer=tables=test1,test2
3)FILL和LOG,這兩個參數(shù)分別指定備份的DMP名稱和LOG名稱,包括文件名和目錄;需要說明的是,EXP可以直接備份到磁帶中,即使用FILE=/dev/rmt0(磁帶設備名),但是一般我們都不這么做,原因有二:一、這樣做的速度會慢很多,二、現(xiàn)在一般都是使用磁帶庫的,不建議直接對磁帶進行操作。至于沒有使用磁帶庫的朋友可以考慮和UNIX的TAR結合使用。如果你真想使用EXP直接到磁帶,你可以參考Metalink文章“EXPORTING TO TAPE ON UNIX SYSTEMS”(文檔號:30428.1),該文中有詳細解釋。
4)COMPRESS參數(shù)將在導出的同時合并碎塊,盡量把數(shù)據(jù)壓縮到initial的EXTENT里,默認是N,一般建議使用。DIRECT參數(shù)將告訴EXP直接讀取數(shù)據(jù),而不像傳統(tǒng)的EXP那樣,使用SELECT來讀取表中的數(shù)據(jù),這樣就減少了SQL語句處理過程。一般也建議使用。不過有些情況下DIRECT參數(shù)是無法使用的。
5)如何使用SYSDBA執(zhí)行EXP/IMP
這是一個很現(xiàn)實的問題,有時候我們需要使用SYSDBA來執(zhí)行EXP/IMP,如進行傳輸表空間的EXP/IMP,以及在9i下用SYS用戶來執(zhí)行EXP/IMP時,都需要使用SYSDBA才可。我們可以使用下面方式連入EXP/IMP:
exp “‘sys/sys as sysdba'” file=1.dmp tables=trst rows=n
6)QUERY參數(shù)后面跟的是where條件,值得注意的是,整個where子句需要使用””括起來,where子句的寫法和SELECT中相同;
?如果是UNIX平臺所有”和’都需要使用\u26469屏蔽它們的特殊含義:
exp test/test file=1.dmp log=1.log tables=testtable query=”where c1=20 and c2=test”
注意:>,20 and c2=to_date\(\’\’,\’yyyymmdd\’\)”
?如果是windows平臺,則使用下面的格式:
exp c/c@ncn file=c.dmp log=c.log tables=t query=”””where id=1 and name=’gototop'”””(使用unix下格式也是可以的,具體情況測試一下即可)
exp導出時,加where條件:
exp scott/tiger TABLES=(emp,bonus) QUERY=”WHERE job=’SALEAN’ and sal
限制:
1.The parameter QUERY cannot be specified for full, user, or tablespace mode exports.
參數(shù)query不能使用在完全導出,用戶導出和表空間導出方式
2.The parameter QUERY must be applicable to all specified tables.
參數(shù)query指定的內容必須對所有指定的表都有效
3.The parameter QUERY cannot be specified in a direct path export (DIRECT=y)
參數(shù)query不能與direct路徑導出同時使用
4.The parameter QUERY cannot be specified for tables with inner nested tables.
參數(shù)query不能導出內嵌表
5.You cannot determine from the contents of the export file whether the data is the result of a QUERY export.
用query參數(shù)導出的數(shù)據(jù)與同其他方式導出的數(shù)據(jù)是一樣的,無法根據(jù)導出文件進行分辨
11. IMP常用選項
1)FROMUSER和TOUSER,使用它們實現(xiàn)將數(shù)據(jù)從一個SCHEMA中導入到另外一個SCHEMA中;
2)IGNORE、GRANTS和INDEXES,其中IGNORE參數(shù)將忽略表的存在,繼續(xù)導入,這個對于需要調整表的存儲參數(shù)時很有用,我們可以先根據(jù)實際情況用合理的存儲參數(shù)建好表,然后直接導入數(shù)據(jù)。而GRANTS和INDEXES則表示是否導入授權和索引,如果想使用新的存儲參數(shù)重建索引,或者為了加快到入速度,我們可以考慮將INDEXES設為N,而GRANTS一般都是Y。
3)另外一個EXP/IMP都有的參數(shù)是PARFILE,它是用來定義EXP/IMP的參數(shù)文件,也就是說,上面的參數(shù)都可以寫在一個參數(shù)文件中,但我們一般很少使用。
12. 在進行并行EXP/IMP的時候,如果IMP過程建索引的話不建議同時運行5個以上的IMP,如果你想加快速度,可以在IMP的時候不建索引,這樣只要內存允許,可以多跑幾個,然后是SQL腳本創(chuàng)建需要的索引。
13. 整理出來的實例供大家參考
Export/Import有三個級別: 表級, 用戶級和全數(shù)據(jù)庫級.
1)table model(按表處理的模式)
? backup one user’s table(備份一個用戶下的表)
exp test/test rows=y indexes=n compress=n buffer=65536 feedback=volsize=0 file=exp_table_yyyymmdd.dmp log=exp_table_yyyymmdd.log tables=test_table1,test_table2
? recover all table(導入全部備份的表)
imp test2/test2 fromuser=test touser=test2 rows=y indexes=n commit=y buffer=65536 feedback=ignore=y volsize=0 file=exp_table_yyyymmdd.dmp log=imp_table_yyyymmdd.log
? recover some table of all table(導入備份的部分表)
imp test2/test2 fromuser=test touser=test2 rows=y indexes=n commit=y buffer=65536 feedback=ignore=y volsize=0 file=exp_table_yyyymmdd.dmp log=imp_table_yyyymmdd.log tables=test_table1
2)user model(用戶模式)
? backup all someone’s object(備份一個用戶的所有的數(shù)據(jù)對象)
exp test/test rows=y indexes=n compress=n buffer=65536 feedback=volsize=0 owner=test file=exp_user_yyyymmdd.dmp log=exp_user_yyyymmdd.log
? recover all someone’s object
imp test2/test2 fromuser=test touser=test2 rows=y indexes=n commit=y buffer=65536 feedback=ignore=y volsize=0 file=exp_user_yyyymmdd.dmp log=imp_user_yyyymmdd.log
? recover some table of all someone’s object
imp test2/test2 fromuser=test touser=test2 rows=y indexes=n commit=y buffer=65536 feedback=ignore=y volsize=0 file=exp_user_yyyymmdd.dmp log=imp_user_yyyymmdd.log tables=test_table1,test_table2,test_table3
3)full model
? backup the full db for all
exp system/manager rows=y indexes=n compress=n buffer=65536 feedback=volsize=0 full=y inctype=complete file=exp_fulldb_yyyymmdd.dmp log=exp_fulldb_yyyymmdd.log
? backup the full db for increment
exp system/manager rows=y indexes=n compress=n buffer=65536 feedback=volsize=0 full=y inctype=incremental file=exp_fulldb_zl_yyyymmdd.dmp log=exp_fulldb_zl_yyyymmdd.log
注意:inctype是8i的9i已經不用了
? recover all date for full backup
imp system/manager rows=y indexes=n commit=y buffer=65536 feedback=ignore=y volsize=0 full=y file=exp_fulldb_yyyymmdd.dmp log=imp_fulldb_yyyymmdd.log
? recover all date for increment backup
imp system/manager rows=y indexes=n commit=y buffer=65536 feedback=ignore=y vol
size=0 full=y inctype=restore file=exp_fulldb_zl_yyyymmdd.dmp log=imp_fulldb_zl_yyyymmdd.log
就用Imp命令啊 操作簡單 導入速度快
Windows 2023 下的Oracle,如何通過已經備份好了的DMP文件做數(shù)據(jù)庫還原?
這是我個人在實踐中旁檔做的筆記,分察明享敗啟告給你吧
從dmp文件恢復數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于從dmp文件恢復數(shù)據(jù)庫,DMP文件恢復數(shù)據(jù)庫,詳細步驟。,如何利用orcale導入工具,將已有的DMP文件還原到orcale數(shù)據(jù)庫中,希望能給予詳細的回答,更好是有圖有文,Windows 2023 下的Oracle,如何通過已經備份好了的DMP文件做數(shù)據(jù)庫還原?的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)網絡推廣網站建設,網站設計,網站建設公司,網站制作,網頁設計,1500元定制網站優(yōu)化全包,先排名后付費,已為上千家服務,聯(lián)系電話:13518219792
文章名稱:DMP文件恢復數(shù)據(jù)庫,詳細步驟。(從dmp文件恢復數(shù)據(jù)庫)
網站鏈接:http://m.fisionsoft.com.cn/article/dhijhjo.html


咨詢
建站咨詢
