程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> Data Studio Administrator V1.2 中的數據保留和數據遷移

Data Studio Administrator V1.2 中的數據保留和數據遷移

編輯:DB2教程

您需要對數據庫進行復雜的變更嗎?例如,保留原有數據的同時將列轉移到另一個表中。通過使用 Data Studio Administrator for DB2® for Linux®, UNIX®, and Windows®(即以前的 DB2 Change Management Expert),可以在對數據庫進行復雜的變更時保留有價值的數據。本文學習一個場景,在此場景中,DBA 使用 Data Studio Administrator 創建一個新表,然後用現有表中的數據填充這個新表。

注意:本文是對一篇關於 DB2 Change Management Expert 的文章的更新。本文介紹了 IBM Data Studio Administrator for DB2 for Linux, UNIX, and Windows,以及在 Data Studio Administrator Version 1.2 中可用的其他變化。

簡介

本文演示一家虛構公司 JK Enterprises 的一名 DBA 如何使用 IBM Data Studio Administrator 對 DB2 數據庫進行變更,同時又保留數據。該 DBA 還在將目標模型部署到生產數據庫之前,使用 Data Studio Administrator 驗證和測試目標模型上的變更。

首先,回顧在進行復雜變更時 Data Studio Administrator 將幫助您執行的步驟:

通過一個豐富的、交互式的用戶界面快速識別要變更的數據庫對象

創建一個部署腳本,用於管理變更

在一個模型上實現這些變更

識別哪些視圖、函數、過程和觸發器在變更後不起作用,哪些視圖、函數、過程和觸發器在變更後還起作用

使用部署腳本生成 SQL,以應用變更

使用導出和導入命令保留數據

將變更部署到數據庫

先決條件

本場景使用 Data Studio Administrator Version 1, Release 2。要完成本場景,必須在計算機上安裝 Data Studio Administrator(參見 參考資料 小節)。

重要:本場景使用 DSADEMO 數據庫。可以從本文的 下載 小節下載 sample02.zip 文件並將其解壓縮到一個本地目錄,然後安裝 Data Definition Language(DDL)(CreateDSADEMO.chx)以創建和設置這個數據庫。下面是設置該數據庫的步驟:

選擇 File > Import > General > Existing Projects into Workspace,從 sample02.zip 中導入名為 test 的項目。

單擊 Select archive file,找到 sample02.zip 的位置。在 Project 域中單擊 test 旁邊的復選框。

圖 1. 將項目導入到工作區

Data Studio Administrator V1.2 中的數據保留和數據遷移

單擊 Finish 完成項目 test 的導入。

在 Data Studio Administrator 的 Data Project Explorer 視圖中,展開 test 項目中 SQL Scripts 文件夾的內容,右鍵單擊 CreateDSADEMO.chx 文件,並選擇 Run SQL。

驗證是否選擇了適當的數據庫版本。輸入用戶名和密碼,不要選中 Create Deployment Project and Script file 復選框,然後單擊 Finish。

在 Database Explorer 視圖中,驗證 DSADEMO 數據庫是否已創建,並且存在一個連接。本文接下來繼續完成其他步驟。

場景概述

JK Enterprises 已決定,他們需要將雇員的薪水和酬金信息與雇員的其他信息分開。例如,他們決定只有管理層可以看到敏感的雇員酬金信息。如果其他人想運行雇員報告,那麼將看不到該信息。作為 JK Enterprises 的 DBA,您現在必須對數據庫進行變更,添加一個新表,其中有 4 個新的列,這些列包含來自原始表的數據。在 Data Studio Administrator 中,只需通過幾次單擊,就可以完成該任務,並確保原始數據被保留,以便在以後將其裝載到新表中。

本文分為兩個部分,以反映兩個主要的任務:

創建用於存放敏感薪水信息的新表,並將數據從舊表遷移到新表。

從舊表中刪除敏感列,並保留 那些列中的數據,以便用於審計或者確保可以執行撤銷。

第 1 部分:創建和填充新表

要將薪水和酬金信息與雇員表分開,需要創建一個 change-in-place 部署腳本。該腳本執行以下步驟:

按以下步驟創建新的 EMPLOYEEPAYINFO 表,並填充 4 個新列:

創建一個名為 EMPLOYEEINFO 的新表。EMPLOYEEINFO 表將包括 4 個列:EMPO、SALARY、BONUS 和 COMM。

創建一個外鍵,以便將這個新表與已有的雇員表相連接。

從 EMPLOYEE 表中遷移薪水數據,填充這個新表。

完成以下步驟,以創建一個新的 Data Design Project 和 EMPLOYEEPAYINFO 表,並用另一個表中的數據填充 4 個新列:

創建一個名為 EmployeeChanges.deployXML 的新部署腳本。

從菜單中,選擇 File > New > Deployment Script 啟動 Deployment Script 向導。

輸入 EmployeeChangeManagement 作為項目名稱,輸入 EmployeeChanges 作為部署腳本名稱。

單擊 Next 繼續。

可選:這可能會提示您提供一個 Database Connection。選擇 DSADEMO 作為用於創建 Deployment Script 的數據庫。

選擇 Change in Place 作為過程,然後選擇選項 Migrate Table Data。

圖 2. Deployment Script Process 選擇頁面

Data Studio Administrator V1.2 中的數據保留和數據遷移

單擊 Next 繼續。

當提示選擇一個模式時,選擇 HR 模式。

單擊 Finish 為 DSADEMO 數據庫創建一個新的部署腳本。

使用 Data Studio Administrator 創建了部署腳本後,展開 Data Model 文件夾,可以看到 EmployeeChangeManagement 項目中創建了基本模型和目標模型。

Overview Page(有時候也稱 Deployment Script Editor)是集中管理變更的地方。部署腳本的 OvervIEw Page 的 4 個主要區域包含以下信息:

數據模型

變更命令

撤銷變更

圖 3. 在變更過程中使用 OvervIEw Page 作為指南

Data Studio Administrator V1.2 中的數據保留和數據遷移

在 OvervIEw Page 上,單擊 Target Model 下的 Edit。這將打開物理模型,即 EmployeeChanges_target.dbm。

在右側的 Outline VIEw 中,展開 DSADEMO 數據庫旁邊的節點。右鍵單擊 HR 模式,然後選擇 New > Table。

Data Object PropertIEs 面板顯示在 Data Studio Administrator 的主區域。為了為表提供一個名稱,在 name 文本域中輸入 EMPLOYEEPAYINFO。

在 EMPLOYEEPAYINFO 表中,添加 4 個列:EMPNO、SALARY、BONUS 和 COMM。

在 Data Object PropertIEs 面板中單擊 Columns 選項卡。

對於要創建的每個列,單擊 Data Studio Administrator V1.2 中的數據保留和數據遷移(Add New)。創建以下 4 個列:EMPNO、SALARY、BONUS 和 COMM。

在 data type 域中雙擊右鍵,並從下拉列表中進行選擇,指定各個列的數據類型。對於需指定長度的數據類型,雙擊並輸入一個值。按照以下列表指定該表中每個列的數據類型:

EMPNO 列的數據類型為 SMALLINT。

SALARY 列的數據類型為 DECIMAL(長度為 9,小數點後位數為 2)。

BONUS 列的數據類型為 DECIMAL(長度為 9,小數點後位數為 2)。

COMM 列的數據類型為 INTEGER。

圖 4. EMPLOYEEPAYINFO 表包含的 4 個新列及其屬性

Data Studio Administrator V1.2 中的數據保留和數據遷移

在 Data Object PropertIEs 面板中選擇 Tables Spaces 選項卡。

從 Regular 表空間下拉菜單中,選擇 USERSPACE1 作為這個表的表空間。

為 EMPLOYEEPAYINFO 表的 EMPNO 列添加一個外鍵,該外鍵引用 EMPLOYEE 表的 EMPNO 列。

在 Data Object PropertIEs 面板中,右鍵點擊 EMPLOYEEPAYINFO 並選擇 New > Foreign Key,如圖 5 所示。

圖 5. EMPLOYEEPAYINFO 表上的外鍵

Data Studio Administrator V1.2 中的數據保留和數據遷移

在 Add Foreign Key 向導中,選擇 EMPLOYEE 表作為引用,並單擊 Next 繼續。

在左側的 Primary Key Columns 域中選擇 EMPNO。按住 Shift 鍵,並在右側的 Foreign Key Columns 域中選擇 EMPNO。單擊 Data Studio Administrator V1.2 中的數據保留和數據遷移(Pair)按鈕將所選擇的列配對。

圖 6. 將 EMPLOYEE 與 EMPLOYEEPAYINFO 中的 EMPNO 列配對

Data Studio Administrator V1.2 中的數據保留和數據遷移

單擊 Finish。

圖 7. 引用 EMPNO 列主鍵的 EMPLOYEEPAYINF_FK 外鍵

Data Studio Administrator V1.2 中的數據保留和數據遷移

在主菜單上,單擊 File > Save 保存目標模型。記得經常保存更改。

單擊 EmployeeChanges.deployXML 選項卡返回到部署腳本。 Data Studio Administrator V1.2 中的數據保留和數據遷移

單擊過程流程圖中的 Generate,生成用於指定的變更的變更命令。這時會打開 Generate Change Commands 向導。

圖 8 顯示了 Generate Change Commands 向導,其中有用於變更的 DDL,以便查看生成的變更命令。

圖 8. Generate Change Commands 向導,其中包含用於變更的 DDL

Data Studio Administrator V1.2 中的數據保留和數據遷移

如果有破壞性變更,Data Studio Administrator 允許裝載或卸載數據。現在是創建表,因此沒有破壞性的變更。所以,在該向導出現時,單擊 Next。

通過 Unload and Reload Information 向導可以使用 auto cast 解決數據類型沖突。由於沒有任何破壞性的變更,單擊 Next 繼續。

在 DB2 Maintenance Commands 頁面上,可以看到以下選項:

Generate Reorg Commands

Generate Runstats Commands

Generate Flush Package Commands

Generate Rebind Commands

-

在變更管理過程中,數據庫包可能不可用,並且統計信息也有可能不准確。例如,當刪除對象時,DB2 將包標記為無效(invalid)或不起作用(inOperative)。當從部署腳本編輯器中生成變更命令時,可以指定 Data Studio Administrator 發出 rebind 命令,以便重新創建包並運行 RUNSTATS 來更新統計信息。這樣可以節省時間和精力。

圖 9. DB2 Maintenance Commands 頁面

Data Studio Administrator V1.2 中的數據保留和數據遷移

單擊 Next 繼續。

在最後一個頁面上,檢查生成的變更命令,然後單擊 Finish。

在 Data Studio Administrator 中可以查看變更報告,該報告總結了對數據庫進行的變更。

可選:單擊 Yes 查看變更報告,或者單擊 No 繼續。

為了將數據從 EMPLOYEE 表遷移到 EMPLOYEEPAYINFO 表,在 OvervIEw Page 面板上單擊 Migrate Data。

當 Migrate Data Wizard 出現時,選擇選項 Add the generated data migration commands to the deployment script,並單擊 Next。

圖 9a. 將數據遷移命令添加到部署腳本中

Data Studio Administrator V1.2 中的數據保留和數據遷移

當提示您提供一個數據庫連接時,使用一個現有連接,選擇連接 DSADEMO。單擊 Next 繼續。

選擇默認的數據保留提供程序。對於本場景,在 Data Unload Provider 域中選擇 EXPORT for DEL data format,在 Data Load Provider 域中選擇 LOAD,如圖 9b 所示。

注意:如果要卸載大量的數據,可以使用 IBM DB2 High Performance Unload 作為卸載提供程序。IBM DB2 High Performance Unload 可以提供高速數據卸載功能和更高的性能。

圖 9b. 變更的正確數據保留選項

Data Studio Administrator V1.2 中的數據保留和數據遷移

單擊 Next 繼續。

在 Map Unload and Reload Tables(圖 10)上,將原始的 EMPLOYEE 表與新的 EMPLOYEEPAYINFO 表配對。

單擊該頁面右上角的 Add 圖標 Data Studio Administrator V1.2 中的數據保留和數據遷移,添加一個新條目 HR.EMPLOYEE。

從 Unload Table 下拉菜單中,選擇 HR.EMPLOYEE,並雙擊 Reload Table 下拉框。然後,選擇 HR.EMPLOYEEPAYINFO 並單擊該頁面右上角的 Pair 圖標 Data Studio Administrator V1.2 中的數據保留和數據遷移,將這兩個表配對。為了將數據從舊的 EMPLOYEE 表導入到新的 EMPLOYEEPAYINFO 表中,必須完成這樣的配對。

圖 10. 數據遷移過程的映射表階段

Data Studio Administrator V1.2 中的數據保留和數據遷移

單擊 Next 繼續。

Customize Unload Commands 頁面顯示數據的導出命令。在此,從 Employee 表中選擇要導出到 select 語句的列。導航到 HR > Employee,將 EMPNO、SALARY、BONUS 和 COMM 列從 Database Objects for Unload 域拖到 Customize Query 域。

圖 10a. 定制卸載命令

Data Studio Administrator V1.2 中的數據保留和數據遷移

單擊 Next 繼續。

在 Customize Reload Commands 頁面上,從 EMPLOYEE 表中卸載的列的類型必須與 EMPLOYEEPAYINFO 表中重新裝載的列的類型相匹配。Unload Column 中 COMM 列的數據類型是小數(decimal),而 Reload Column 中該列的數據類型是整數。為了消除這種差異,必須轉換數據類型。

查看 HR.EMPLOYEEPAYINFO 表,您應該注意到該表旁邊的 Data Studio Administrator V1.2 中的數據保留和數據遷移。這表明存在不匹配的列類型。右鍵單擊 COMM column,並選擇 Autocast 將小數類型的數據以整數類型導出,從而與 EMPLOYEEPAYINFO 表中 COMM 列的數據類型相匹配。圖 11 顯示了這個過程。

圖 11. 自動轉換原始列中的數據,使其與新列的數據類型相匹配

Data Studio Administrator V1.2 中的數據保留和數據遷移

單擊 Finish。

可選:要查看變更命令:

在 OvervIEw Page 上,單擊 Change Commands 下的 Customize 鏈接。

雙擊變更命令文件 /EmployeeChangeManagement/EmployeeChanges_deltadd.chx。這將在 Change Command Editor 中打開該文件。

圖 12. 查看生成的命令

Data Studio Administrator V1.2 中的數據保留和數據遷移

注意:遷移數據的命令按適當的順序穿插在生成的命令中。

要返回 OvervIEw Page,可單擊 EmployeChanges.deployXML 選項卡,並在底部的選項卡上單擊 OvervIEw。

將變更部署到數據庫需要:

在 OvervIEw Page 上單擊 Deploy,以將變更部署到目標數據庫。

完成 Deploy Change Commands 向導中的步驟,將變更部署到數據庫。

第 2 部分:在破壞性變更之後保留數據

本場景涉及 Data Studio Administrator 中的數據保留特性。現在,您已創建了新的 EMPLOYEEINFO 表,接下來需要創建一個單獨的 change-in-place 部署腳本,通過該腳本可以刪除薪水列,同時保留那些列中的數據。

創建一個新的名為 EmployeeChanges_2.deployXML 的部署腳本:

在 Data Project Explorer 中,選擇 EmployeeChangeManagement 項目,然後右鍵單擊該項目,並選擇 New > Deployment Script,以啟動 Deployment Script 向導。

選擇 EmployeeChangeManagement 作為項目名稱,並輸入 EmployeeChanges_2 作為部署腳本名稱。

選擇 DSADEMO 作為數據庫連接,然後單擊 Next。

選擇 Change in Place 作為過程,然後單擊 Next。

選擇 HR 作為反向工程的模式。

單擊 Finish 完成部署腳本。

在 Data Model Editor 中,單擊 OvervIEw Page 圖上的 Edit,打開目標模型。

在右側面板上的 Outline 視圖中,導航到 EMPLOYEE 表。

單擊 columns 選項卡,查看 HR.EMPLOYEE 表中的列。為了刪除 HR.EMPLOYEE 表中的列 SALARY、BONUS 和 COMM,選擇要刪除的列,並單擊 Delete Data Studio Administrator V1.2 中的數據保留和數據遷移

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved