我有一個包含大量數據的表(TMain),它歸檔到一個歸檔表(TArchive) - 記錄超過3個月。由於TMain是一個易失性表,並且它的列在一段時間內被更改/刪除,所以我想要進行某種控制,以便在TMain更改時TArchive始終保持同步。保存存檔表結構(列等)與實時表同步
在Oracle中實現此目的的最佳方式是什麼?
任何建議和解決方案,讚賞。
我有一個包含大量數據的表(TMain),它歸檔到一個歸檔表(TArchive) - 記錄超過3個月。由於TMain是一個易失性表,並且它的列在一段時間內被更改/刪除,所以我想要進行某種控制,以便在TMain更改時TArchive始終保持同步。保存存檔表結構(列等)與實時表同步
在Oracle中實現此目的的最佳方式是什麼?
任何建議和解決方案,讚賞。
Oracle中的DDL不是事務性的。這意味着在兩個對象中跨DDL複製DDL的自動化過程將會有些缺陷。如果第二個DDL語句失敗怎麼辦?你不能回滾第一個,你卡住了。
此外,您應該已經有一個外部組織過程來驗證DDL。例如,在許多組織中,開發人員只能對開發數據庫進行更改。這些更改會傳播到臨時數據庫以用於測試目的。只有數據庫管理員可以將這些更改一經驗證即可推向生產。即使開發人員和DBA是同一個人,您也應該遵循以下準則:驗證每個DDL。
由於這些原因,我建議不要自動化DDL複製。這看起來太麻煩了。相反:
保存歷史數據的最佳解決方案與存儲當前數據的方式相同,即分區。
你也可以在11G中設置間隔,oracle會自動創建新的分區。儘管如此,如果您想要使用壓縮功能,請考慮在存在壓縮分區時無法進行DDL更改。
建立一個組織過程,以便表上的DDL遵循一組規則? – 2013-02-21 12:09:06
@你試過了什麼?你的研究成果是什麼?請詳細說明。 – Jesse 2013-02-21 12:12:06