Backup
如何從 DB2(備份結構)中提取結構?
db2 中有沒有辦法在沒有實際數據的情況下備份數據庫結構(元數據)?
我的目的是將現有數據庫中的結構(表、視圖、索引、觸發器、過程和函式)拉入新數據庫。
表格可以是空白的。
由於 YperSillyCube(TM) 堅持,我將添加他的答案。db2look 是 DB2 附帶的用於從數據庫中提取 DDL 的工具。您可以提取表、約束、索引、觸發器、儲存過程等內容,以及安全語句、聯合設置、緩衝池和表空間以及一些數據庫設置。
我強烈推薦使用它。我在使用 DB2 時一直使用它。非常便利。尤其是與 Beyond Compare 等工具結合使用以比較環境之間的 DDL 等時。
IBM Knowledge Center 連結是很好的閱讀文件。Ember Crooks 在此處和此處發布了兩篇關於 db2look 的精彩文章。
就個人而言,我傾向於在命令中最多使用以下選項。
db2look -d <databasename> -a -l -e -x -o <file to extract to> -td"@"
這允許我獲取除了預設值之外的幾個對象、表空間和緩衝池、一些安全設置,然後確保我將
@
符號設置為語句終止符,以防我有觸發器、函式或儲存過程。然後,您可以使用以下命令將它們導入新數據庫
db2 -td@ -vf <filename>
,然後像我在 Unix 上所做的那樣將結果重定向或通過管道傳輸到 tee。請注意,您在 db2look 命令中用作語句終止符的字元需要與導入文件時提供的語句終止符匹配。