怎樣用命令備份還原oracle資料庫

2022-02-05 10:58:48 字數 4903 閱讀 7248

1樓:匿名使用者

oracle中沒有備份和還原的概念,應該叫匯出和匯入。

一、匯出:

1. 獲取幫助

exp help=y

2. 匯出一個完整資料庫

exp system/manager file=bible_db log=dible_db full=y

3. 匯出資料庫定義而不匯出資料

exp system/manager file=bible_db log=dible_db full=y rows=n

4. 匯出一個或一組指定使用者所屬的全部表、索引和其他物件

exp system/manager file=seapark log=seapark owner=seapark

exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)

注意:在匯出使用者時,儘管已經得到了這個使用者的所有物件,但是還是不能得到這些物件引用的任何同義詞。解決方法是用以下的sql*plus命令建立一個指令碼檔案,執行這個指令碼檔案可以獲得一個重建seapark所屬物件的全部公共同義詞的可執行指令碼,然後在目標資料庫上執行該指令碼就可重建同義詞了。

set linesize 132

set pagesize 0

set trimspool on

spool c:\seapark.syn

select 'create public synonym '||synonym_name

||' for '||table_owner||'.'||table_name||';'

from dba_synonyms

where table_owner = 'seapark' and owner = 'public';

spool off

5. 匯出一個或多個指定表

exp seapark/seapark file=tank log=tank tables=tank

exp system/manager file=tank log=tank tables=seapark.tank

exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)

6. 估計匯出檔案的大小

全部表總位元組數:

select sum(bytes)

from dba_segments

where segment_type = 'table';

seapark使用者所屬表的總位元組數:

select sum(bytes)

from dba_segments

where owner = 'seapark'

and segment_type = 'table';

seapark使用者下的aquatic_animal表的位元組數:

select sum(bytes)

from dba_segments

where owner = 'seapark'

and segment_type = 'table'

and segment_name = 'aquatic_animal';

7. 匯出表資料的子集(oracle8i以上)

nt系統:

exp system/manager query='where salad_type='fruit'' tables=amy.salad_type

file=fruit log=fruit

unix系統:

exp system/manager query=\"where salad_type=\'fruit\'\" tables=amy.salad_type

file=fruit log=fruit

8. 用多個檔案分割一個匯出檔案

exp system/manager

file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)

log=paycheck, filesize=1g tables=hr.paycheck

9. 使用引數檔案

exp system/manager parfile=bible_tables.par

bible_tables.par引數檔案:

#export the sample tables used for the oracle8i database administrator's bible.

file=bible_tables

log=bible_tables

tables=(

amy.artist

amy.books

seapark.checkup

seapark.items

)10. 增量匯出

「完全」增量匯出(complete),即備份整個資料庫

exp system/manager inctype=complete file=990702.dmp

「增量型」增量匯出(incremental),即備份上一次備份後改變的資料

exp system/manager inctype=incremental file=990702.dmp

「累計型」增量匯出(cumulative),即備份上一次「完全」匯出之後改變的資料

exp system/manager inctype=cumulative file=990702.dmp

二、匯入:

1. 獲取幫助

imp help=y

2. 匯入一個完整資料庫

imp system/manager file=bible_db log=dible_db full=y ignore=y

3. 匯入一個或一組指定使用者所屬的全部表、索引和其他物件

imp system/manager file=seapark log=seapark fromuser=seapark

imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)

4. 將一個使用者所屬的資料匯入另一個使用者

imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy

imp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1)

5. 匯入一個表

imp system/manager file=tank log=tank fromuser=seapark tables=(a,b)

6. 從多個檔案匯入

imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)

log=paycheck, filesize=1g full=y

7. 使用引數檔案

imp system/manager parfile=bible_tables.par

bible_tables.par引數檔案:

#import the sample tables used for the oracle8i database administrator's

bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import

8. 增量匯入

imp system./manager inctype= rectore full=y file=a

2樓:定書雙台山

命令提示符下敲入exp, 就可以開始備份了。【最好先用cd命令切換到你想要備份到的資料夾,這樣後面就只需不停地下一步按回車】

同理,imp是還原。

3樓:

exp和imp,具體可查oracle文件

4樓:匿名使用者

exp/imp

下面介紹的是匯入匯出的例項,嚮匯入匯出看例項基本上就可以完成,因為匯入匯出很簡單。

資料匯出:

1 將資料庫test完全匯出,使用者名稱system 密碼manager 匯出到d:\daochu.dmp中

exp system/manager@test file=d:\daochu.dmp full=y

2 將資料庫中system使用者與sys使用者的表匯出

exp system/manager@test file=d:\daochu.dmp owner=(system,sys)

3 將資料庫中的表table1 、table2匯出

exp system/manager@test file=d:\daochu.dmp tables=(table1,table2)

4 將資料庫中的表table1中的欄位filed1以"00"打頭的資料匯出

exp system/manager@test file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"

上面是常用的匯出,對於壓縮我不太在意,用winzip把dmp檔案可以很好的壓縮。

不過在上面命令後面 加上 compress=y 就可以了

資料的匯入

1 將d:\daochu.dmp 中的資料匯入 test資料庫中。

imp system/manager@test file=d:\daochu.dmp

上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行匯入。

在後面加上 ignore=y 就可以了。

2 將d:\daochu.dmp中的表table1 匯入

imp system/manager@test file=d:\daochu.dmp tables=(table1)

如何刪除資料庫操作記錄,怎樣用命令刪除資料庫

方法如下 1 drop 命令格式 drop database 資料庫名 例如 刪除名為 runoob 的資料庫 mysql drop database runoob 2 mysqladmin 刪除資料庫 使用 mysql mysqladmin 命令在終端來執行刪除命令。例項 刪除資料庫 runoob...

怎樣用matlab中的命令fprintf將複數結果儲存到檔案中

將複數轉換成字串儲存 fprintf f fi real a img a matlab中怎麼把自定義函式輸出的兩列值 x和y 以txt格式儲存呢?請問你是怎麼儲存 的?matlab 用fprintf怎麼把一系列資料儲存出來?是不是你在迴圈裡寫開啟檔案了。你試試下邊的程式 y rand 16,18 f...

ghost和一鍵還原精靈怎樣做雙備份

這位朋友好像是經常是被程式出錯所困擾。害怕重灌了。沒必要用兩套備份。裝好的新系統,也可以用一鍵還原精靈備份。等把軟體都裝好,感覺系統執行速度快且穩定,可以清理一下系統的垃圾檔案,使用痕跡,優化系統。然後重啟電腦,把先頭安裝的一鍵還原卸掉,然後再重灌。不建議用ghost的。如果備份的檔案被病毒感染就失...