Oracle

從 Oracle 創建一個“定義”文件

  • April 24, 2012

我繼承了一個oracle數據庫,沒有oracle經驗。我的任務是在新伺服器上建構數據庫的“複製”。我正在四處尋找,但沒有找到我正在尋找的東西,也許我的術語是錯誤的。

有沒有辦法在 oracle 數據庫中執行命令,並最終得到一個可以在新伺服器上執行的大型 SQL 文件,以便創建所有表、函式、儲存過程等。我不知道不需要任何實際數據,只需要數據庫的結構。這將用於新客戶,我們絕對不想共享以前的客戶數據。

這個數據庫已經使用了好幾年了,有數百個表、儲存過程等,沒有集中控制,所以我需要從正在執行的數據庫中提取它。(並將其存檔在原始碼管理中!)

除非你的 oracle 版本是 9 或更低,否則你真的想避免使用 exp 或 imp,它們不如替換 expdp 和 impdp 靈活和強大。

我假設您只想導出一個模式。如果要導出整個數據庫實例(不建議),即使用所有 sys/system/etc。模式和表空間,使用 full=y 並且沒有模式語句。

要完成您對 expdp 的要求,請執行以下操作:

expdp dumpfile=example.dmp log=example.log content=metadata_only schemas=example_schema

要獲取帶有 sql 語句的文本文件,您可以使用上面創建的轉儲文件執行以下操作:

impdp dumpfile=example.dmp sqlfile=example.sql

引用自:https://serverfault.com/questions/382691