oracle 中建方案和資料匯入匯出小結

2021-05-06 19:05:07 字數 3079 閱讀 5825

一般情況下@***xx.sql即可

先建立乙個方案(schema),這裡我的理解是oracle裡的方案其實是相當於其他資料庫中的"資料庫",因為如果oracle

裡沒特殊的要求,其實就在當前例項對應的資料庫裡建立不同的方案就可以了.

首先 1、 建立乙個表空間

2、 要在oracle中建立乙個使用者,因為oracle中的每個方案是與使用者對應的。比如,並設定使用者對該錶空間的操作許可權(connect,resource必須,

如果要匯入其他dba匯入的.dmp,則需要有dba許可權)

3、 這時方案已經建立成功了,這時還沒有在方案樹下面顯示出來,因為這個方案裡面為空。這時可以新建乙個表,

connect  使用者/密碼@sid as sysdba

,這時方案就可以從方案樹下面顯示出來                  

總的來說方案(schema)=user + user』s objects

建立乙個使用者,然後為該使用者建立一些objects(如table,index...),該使用者和其下的objects就構成乙個方案(schema)

匯入匯出:

資料匯出:

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 將資料庫中的表inner_notify、notify_staff_relat匯出

exp aichannel/aichannel@testdb2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)

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

imp aichannel/aichannel@hust full=y  file=d:datanewsmgnt.dmp ignore=y

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

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

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

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

基本上上面的匯入匯出夠用了。不少情況要先是將表徹底刪除,然後匯入。

注意:操作者要有足夠的許可權,許可權不夠它會提示。

資料庫時可以連上的。可以用tnsping test 來獲得資料庫test能否連上。

附錄一:

給使用者增加匯入資料許可權的操作

第一,啟動sql*puls

第二,以system/manager登陸

第三,create user 使用者名稱 identified by 密碼 (如果已經建立過使用者,這步可以省略)

第四,grant create user,drop user,alter user ,create any view ,

drop any view,exp_full_database,imp_full_database,

dba,connect,resource,create session  to 使用者名字

第五, 執行-cmd-進入dmp檔案所在的目錄,

imp userid=system/manager full=y file=*.dmp

或者 imp userid=system/manager full=y file=filename.dmp

執行示例:

f:workoracle_databackup>imp userid=test/test full=y file=inner_notify.dmp

連線到: oracle8i enterprise edition release 8.1.7.0.0 - production

with the partitioning option

jserver release 8.1.7.0.0 - production

經由常規路徑匯出由export:v08.01.07建立的檔案

已經完成zhs16gbk字符集和zhs16gbk nchar 字符集中的匯入

匯出伺服器使用utf8 nchar 字符集 (可能的ncharset轉換)

. 正在將aichannel的物件匯入到 aichannel

. . 正在匯入表                  "inner_notify"          4行被匯入

準備啟用約束條件...

成功終止匯入,但出現警告。

附錄二:

oracle 不允許直接改變表的擁有者, 利用export/import可以達到這一目的.

先建立import9.par,

然後,使用時命令如下:imp parfile=/filepath/import9.par

例 import9.par 內容如下:

fromuser=tgpms      

touser=tgpms2     (注:把錶的擁有者由fromuser改為touser,fromuser和touser的使用者可以不同)         

rows=y

indexes=y

grants=y

constraints=y

buffer=409600

file==/backup/ctgpc_20030623.dmp

log==/backup/import_20030623.log

oracle 中建方案和資料匯入匯出小結

一般情況下 xx.sql即可 先建立乙個方案 schema 這裡我的理解是oracle裡的方案其實是相當於其他資料庫中的 資料庫 因為如果oracle 裡沒特殊的要求,其實就在當前例項對應的資料庫裡建立不同的方案就可以了.首先 1 建立乙個表空間 2 要在oracle中建立乙個使用者,因為oracl...

ORACLE 匯入匯出表結構和資料

通過exp和imp匯入匯出表。這種方法的問題場景是,將a資料庫 可能是測試資料庫 中的表結構和資料批量匯入到b資料庫 正式資料庫 1 用oracle賬戶登入a server,進入 oracle home bin下 oracle home是事先定義的oracle所在路徑的環境變數 執行命令 exp u...

SQL hive建表 匯入資料

1 直接在資料庫中建立 use tmp ubtdb create table tablenamedemo field1 string comment field1 comment field2 string comment field2 comment comment table comment p...