Oracle
將 Oracle 數據庫轉儲到文本 SQL 腳本中
我在想什麼
mysqldump
或pg_dump
正在做什麼。因此,他們將活動數據庫轉儲到包含 SQL 查詢的文本文件中,從而重現整個數據庫。在 MySQL 和 PostgreSQL 中,這是正常的數據庫轉儲格式。它存在於 Oracle 上嗎?如何做呢?
如果它不是標準的 Oracle 東西,那絕對不是問題。我需要解決這個問題。導出單個表是不夠的,我要求轉儲整個數據庫。
它是一個大型項目(具有數百萬行數據庫)的簡化開發環境,但仍然具有數百個表和非常複雜的結構。而且,我想快速玩它。當我在玩它時,我還需要能夠對其執行棘手的修改。在二進制轉儲上我不能這樣做,在文本上我可以。
數據庫本身沒有這樣的東西。
您可以使用數據庫導出工具在 SQL Developer 中執行類似的操作。
使用工具/數據庫導出工具,您可以指定要導出的對象,然後 SQL Developer 生成用於重新創建它們的 SQL 文件,其中數據作為插入語句。
它存在於 Oracle 上嗎?
Oracle 環境中存在類似的實用程序,稱為數據泵。
如何做呢?
使用 expdp 命令行工具執行完整的數據庫導出。
例子:
expdp hr DIRECTORY=dpump_dir2 DUMPFILE=expfull.dmp FULL=YES NOLOGFILE=YES
然後可以使用
impdp
將其導入另一個數據庫。例子:
impdp hr DUMPFILE=dpump_dir1:expfull.dmp FULL=YES LOGFILE=dpump_dir2:full_imp.log
如果您指定
DUMPFILE
參數,它會寫入一個名為轉儲文件的二進製文件。使用SQLFILE參數 (SQLFILE=/my/file/name.sql
),您可以獲得 Import 將執行的所有 SQL DDL。更多取決於它的要求。
Oracle 文件在這裡解釋的比我所能解釋的更多。