oracle資料庫中exp/imp之初次使用

來源:互聯網
上載者:User

標籤:oracle資料庫中exp/imp

    最近使用oracle9i時,遇到了Database Backup和恢複的問題,很多時候與exp和imp的命令使用有關。針對遇到的問題,簡單的總結。

    問題的背景,就是需要對某張表匯入和匯出。資料庫database1,dateabase2在資料庫中涉及的使用者主要是 user1,user2,備份的對象主要是表table1。

    對於exp和Imp命令的內容網上較多的解說,這裡主要解決具體的問題,使用的只是常用的命令項。

1.從database2中匯出表 table1

     exp userid=system/[email protected] tables=(user1.table1) rows=y  log=d:\log.txt file=d:\table1.dmp 

     這個一般沒有什麼問題,最好是在命令列視窗中運行。把database2資料庫中user1方案中的table1匯出。匯出似乎有一個原則,哪個方案(使用者)的表,只有擁有者可以執行。也就是說,雖然使用的是system使用者,但是在exp時,資料庫會把使用者切換為user1,就是table1的擁有者,在開始exp。不過一般匯出時還是使用許可權相對高一些的使用者比如sysem。

exp userid=lj/[email protected] full=n tables=(CT231) rows=y  log=d:\log1.txt file=d:\ct2311.dmp 


2. 在Imp時,遇到的問題如下:

  1)許可權對等的使用者才可以執行匯入。

如果這樣寫命令,imp user2/[email protected] tables=(table1) rows=y  log=d:\log.txt file=d:\table1.dmp 

提示:有dba許可權的使用者匯出,匯入也要是用同等許可權的使用者匯入。就是要匯入的使用者user2,不具有dba的許可權,不允許匯入

 2)IMP-00033: 警告: 在匯出檔案中未找到表

    imp system/[email protected] rows=y  log=d:\log.txt file=d:\table1.dmp 

     --IMP-00033: 警告: 在匯出檔案中未找到表 

    通過查詢相關資料,應該是沒有指定方案的備份對象,就在命令中加入了touser=user2,運行問題還是存在,imp system/[email protected] rows=y  log=d:\log.txt file=d:\table1.dmp touser=user2 --IMP-00033: 警告: 在匯出檔案中未找到表 

    又思考是不是必須在database1中建立一個與user2不同命的方案,又建立了user3方案,還是同樣的問題。imp system/[email protected] rows=y  log=d:\log.txt file=d:\table1.dmp touser=user3 --user3實在database2 資料庫中建立的使用者(方案)不同於database1中user1。

    在繼續的查閱中,很多人都指出了一個問題,就是命令在使用的時候,必須要保證最低的完整,就是方案,擁有者要指明,也就是fromuser=user1 ,touser=user2 要給出。問題就解決了。

    imp system/[email protected] fromuser=user1 touser=user2 rows=y  log=d:\log.txt file=d:\table1.dmp

    其實touser也可以指明在目標資料庫中的不同名使用者,不僅可以是user2,還可以是其他的使用者,這樣table1在目標資料庫中的擁有者就變換成指明的使用者。這樣就可以更改某一張表的owner,在Oracle資料庫中通常資料對象的所有者是不能更改的。

    資料表的匯入匯出可以多張表。一般是很難保證資料表條件約束和建立的其他對象的完整。如果指明是owner=(),就是說要匯出某個方案,此時就不能指定tables=(),這樣會有衝突。

    整個資料庫匯入匯出也是可以的。當然也可以全庫匯出,只匯入需要的部分方案,只需修改命令參數使用。


oracle資料庫中exp/imp之初次使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.