2012-09-06 28 views
1

我想每天從一個架構將數據從一個架構加載到另一個架構。Oracle PL/SQL和Shell腳本:從一個架構到另一個架構

  • 表是在不同的數據庫中,以便創建數據庫鏈接不會是一種選擇,由於一些安全目的....
  • 約300萬的記錄將獲取進程....
  • 數據庫是不同的服務器,從數據庫「A」我通過將emp細節和emp狀態表合併爲一個月的週期來獲取Employee presence細節,並將此數據加載到數據庫「B」的其他表中。需要每天運行此活動。
  • 我需要在低峯時段每天運行一個作業,以獲得其他分區的完整副本...
  • 將在sqlldr的幫助下導入/導出或加載數據?

請讓我知道正確的方式.. 在此先感謝..

什麼是我最好的選擇嗎?

回答

1

如果要定期運行此,這聽起來像你可能想看看甲骨文計劃

概述:http://docs.oracle.com/cd/B28359_01/server.111/b28310/schedover001.htm

要導出數據,並將其添加到新的數據庫,你可能想要使用Oracle DataPump,它可以安全地爲您執行導出和導入。

數據泵導出:http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_export.htm

所以你的賭注可能會創建一個使用數據泵來創建數據庫2號出口文件,然後一個shell腳本再次使用數據泵導入所述文件到數據庫數1 。 一旦你有了這個腳本,你可以安排它在夜間或任何時候流量很低的時候運行。

Regards

3

那麼,似乎使用數據庫鏈接將最適合您的情況。如果你想從數據庫中讀取表,你應該有讀權限。也許你可以讓DBA創建一個僅對特定表具有讀權限的帳戶(用戶)。然後您可以使用數據庫鏈接與新用戶連接。 您無法更新或刪除表中的數據,因爲您連接的用戶沒有寫權限。這可以解決安全問題。

exp/imp和sqlldr是不同的工具。他們不一起工作。您只能從導出文件導入數據。您無法使用sqlldr加載導出文件。

+0

+1創建特定的dblink acct和privs是我所見過的。是否推動或拉動數據是另一個問題。 – tbone

+0

您也可以僅在數據庫的_one_上創建數據庫鏈接,因此如果有人說互聯網/客戶端面臨它,則永遠不需要知道另一個存在。 – Ben

相關問題