oracle資料庫的還原與備份

2021-05-02 11:41:36 字數 2895 閱讀 6726

oracle

提供兩個工具

imp.exe

和exp.exe

分別用於匯入和匯出資料。這兩個工具位於

oracle_home/bin

目錄下。

匯入資料

exp

1 將資料庫

atstestdb

完全匯出

,使用者名稱

system

密碼123456

匯出到c:/export.dmp

中exp system/123456@atstestdb file=c:/export.dmp full=y

其中atstestdb

為資料庫名稱,

system

為該資料庫裡的賬戶,

123456

為其密碼。

2 將資料庫中

system

使用者與sys

使用者的所有相關資源匯出(表,儲存過程,方法,檢視等等)

exp system/123456@atstestdb file= c:/export.dmp owner=(system,sys)

3 將資料庫中的表

sys.table1

、owbsys.table2

匯出exp system/123456@atstestdb file= c:/export.dmp tables=( sys.table1, owbsys.table2)

注意,需要加上表的

schema

名稱,如果沒有加的話預設是導當前

connected

使用者的表,當然你連線上去的賬戶要對相應的表有許可權。

4 將資料庫中的表

table1

中的字段

title

以"gangge"

打頭的資料匯出

exp system/123456@atstestdb file= c:/export.dmp tables=(table1) query=/" where title like 'gangge%'/"

斜槓「/」

後面跟冒號是為了轉義字元冒號

」 「 「

用的,因為後面是一條條件查詢語句。

query

引數只能指定乙個,如果

query

要為多張表,所以同樣,

tables

裡面也只能有一張表,或者多張表,然後

query

裡面的條件在這些表上面都可以執行。否則只好多寫幾條

exp語句了。

匯出後,或許發現資料比較大,我們可以用一些壓縮工具對資料進行二次壓縮,例如用

winzip, winrar, 7zip

等第三方工具。同樣,

exp支援乙個引數使用者直接對資料進行壓縮:

compress = y,

這個引數直接加到命令的後面即可實現匯出的同時壓縮資料。

匯入資料

imp

我們知道怎麼提取資料,那麼還原的時候,就需要使用

imp命令把匯出的資料載入進去。1 向

atstestdb

裡面載入

c:/export.dmp

資料imp system/123456@atstestdb file=c:/export.dmp

好了,導資料得時候,有可能報錯了。為什麼?有兩種主要的原因:

a. 匯入的物件(表,檢視,方法等)原本不屬於當前連線的使用者的

b. 匯入的物件在該資料庫的指定使用者下已經存在

c. 匯入的物件的原本使用者不再這個資料庫裡

所有物件全部匯入到指定的賬戶下:

imp system/123456@atstestdb file=c:/export.dmp fromuser=sys touser=system

其中fromuser=sys

為.dmp

檔案裡的物件的原先的

owner, touser=system

為作為匯入的物件的新的

owner. 忽略/

插入資料

imp system/123456@atstestdb file=c:/export.dmp ignore=y

其中ignore=y

告訴imp.exe

把資料直接插入到相應物件(並且如果匯入的物件裡面有其他的物件,如約束,索引等,會在資料插入後被建立)。

2 載入其中的指定表

table1,table2

imp system/123456@atstestdb file=c:/export.dmp tables=(table1,table2)

3 忽略載入約束

有時候導資料進來的時候,我們不需要把它的約束,比如一些外來鍵約束等都導進來,可以加上引數

constraints=n

imp system/123456@atstestdb file=c:/export.dmp tables=(table1,table2) constraints=n

4 不載入索引(比如唯一性的索引)

imp system/123456@atstestdb file=c:/export.dmp tables=(table1,table2) indexs=n

5 只載入結構,不載入資料

如果只要表的結構等定義(約束,觸發器),那麼不要裡面的資料,可以加上引數

rows=n

imp system/123456@atstestdb file=c:/export.dmp tables=(table1,table2) rows=n

對於上述操作登陸操作的物件

system

是管理員,如果不是管理員,而是普通使用者,那麼這個使用者必須有建立刪除物件的權利,物件可能包括

表,檢視,方法,儲存過程等等常見的物件。為什麼「可能

」包括?因為這個視匯入匯出的時候是否涉及相關型別的物件而定。

oracle資料庫還原與備份

1.首先查詢目標使用者的當前程序,注意是serial 而不是serial,網上有的介紹漏掉了 select sid,serial from v session where username bjrl 對應資料庫的使用者名稱,注意大寫 使用此語句會返回乙個程序列表,每行有兩個數字,然後用數字替代下面的...

oracle資料庫的備份與還原

備份庫 1.先查詢該sql然後執行查詢出來的sql,不然空表導不出來 select alter table t.table name allocate extent from user tables t where t.num rows 0 2.匯出資料庫dmp檔案到指定位置 需在命令視窗執行,電腦...

oracle備份還原資料庫

1 備份資料庫 exp 使用者名稱 密碼 資料庫名 file e oracle date databack 2013 11 03 init dmp。2 還原資料庫 imp 使用者名稱 密碼 資料庫名 file e oracle date databack 2013 11 03 init dmp fu...