Db2
“符號連結”數據到新數據庫
我只是想找出一些方法來管理數據庫中部分/大部分應用程序數據的歸檔,並想知道這樣的事情是否可能:
- 歸檔任何狀態為已解決且數據更新超過 3 年的內容
- 將 MOST(但不是所有數據)移至存檔數據庫,並將目前生產數據庫中的值替換為指向存檔數據庫的“SymLink”?
這是一個簡化的範例:
####################################################################################################### ### Active_Prod ### ####################################################################################################### # ALIASAPPTYPE ALIASAPPREASON PZINSKEY PZPVSTREAM # # App_Type_1234 New Enrollee 132387Something6357997 <SYMLINKED to Archive_Prod.pzpvstream> # # # # # ####################################################################################################### ### Archive_Prod ### ####################################################################################################### # ALIASAPPTYPE ALIASAPPREASON PZINSKEY PZPVSTREAM # # App_Type_1234 New Enrollee 132387Something6357997 [BLOB Data] # #######################################################################################################
因此查詢
select * from Active_Prod
將返回以下結果:ALIASAPPTYPE ALIASAPPREASON PZINSKEY PZPVSTREAM App_Type_1234 New Enrollee 132387Something6357997 [BLOB Data]
我們不會關心更新或插入數據,因為
Archive_Prod
無論如何數據庫都將設置為只讀。我的想法是,我們可以Active
通過歸檔大部分日期來大幅減少 DB2 實例(無論如何,大部分數據都駐留在 BLOB 中),但將“Key”欄位保留在“Active”數據庫中以加快查找速度。但是通過創建數據的符號連結,我們可以提高 PEGA 的性能,並通過顯著減小數據庫的整體大小來縮短備份/恢復時間。
您可以使用聯合視圖來實現類似的目的。按照手冊中的說明配置聯合數據源後,您將為歸檔表創建一個暱稱。
CREATE NICKNAME Archive_Prod FOR archive_server.archive_schema.Archive_Prod;
之後,您將創建一個連接兩個表的視圖:
CREATE VIEW v_active_prod AS SELECT local.aliasapptype, local.aliasappreason, local.pzinskey, remote.pzpvstream FROM Active_Prod local INNER JOIN Archive_Prod remote ON (local.aliasapptype, local.aliasappreason, local.pzinskey) = (remote.aliasapptype, remote.aliasappreason, remote.pzinskey)
假設
aliasapptype, aliasappreason, pzinskey
是你的主鍵。如果您想獲取您的 BLOB,而不管它們位於何處,您可能需要選擇外部連接:
CREATE VIEW v_active_prod AS SELECT local.aliasapptype, local.aliasappreason, local.pzinskey, COALESCE(local.pzpvstream, remote.pzpvstream) FROM Active_Prod local LEFT JOIN Archive_Prod remote ON (local.aliasapptype, local.aliasappreason, local.pzinskey) = (remote.aliasapptype, remote.aliasappreason, remote.pzinskey)
不過,從聯合數據源讀取 BLOB 時,不要期望性能會非常出色。