我所從事的專案是多系統集成專案,我只是負責眾位系統中的其中之一。
情況這樣的,我們的系統是固定在凌晨12點?早上7點執行實施,會有大批量的資料對資料庫表進行更新,洗掉,插入操作。
我所負責的系統中,ORCALE的表大概有二千多個。投入的資料量也很龐大!
某天,我們系統的投入資料有問題,導致要精查這一天投入的資料情況。
所以資料庫管理員權限,是否可以查詢出凌晨12點?早上7點這個時間段內,有哪些表進行了“增”“刪”“改”的操作??
我不想在二千多個表中,一個個用SELECT陳述句來查詢更新時間(已經被洗掉的資料也不可能用SELECT來查詢)
uj5u.com熱心網友回復:
1、觸發器方式,如果是2000張表大量資料寫入,可能會影響你的資料庫整體性能。2、審計,建議使用這個。
3、分析日志,操作上要復雜一些。
uj5u.com熱心網友回復:
dbms_logmnruj5u.com熱心網友回復:
謝謝版主的回復。
我所管理的這個專案是某國家銀行系統。銀行可想而知,資料量很大。僅資料庫就分為ORACLE,DB2,MONGO。
對于ORACLE又分為多個系統的SCHEMA,我們2000多個表是歸屬于我們系統獨立的SCHEMA管理
我所從事的是JAVA和SHELL,資料庫并不是我所管,我們在國外有專門的DBA
但對于這次的資料問題,要做出解決計畫。
這個計畫要由我們來制訂,計畫和實行方案都由我們提交給國外的DBA來進行實施。
所以,第一,我對于ORACEL 的DBA得確能力有限,需要幫助;第二,也想知道有哪些辦法可以解決查詢到有哪些表被進行過改動
uj5u.com熱心網友回復:
銀行系統應有主檔案及異動檔看異動檔就好了
銀行系統沒有洗掉功能,只有注記為洗掉而已
uj5u.com熱心網友回復:
不是不會洗掉,而是會洗掉。
從業務上來說,系統中會有臨時表,當臨時表寫入主表后,臨時表的資料會被物理洗掉。
現在的問題不是系統崩潰,而是系統正常執行。不過對于資料有問題,所以也和異動檔沒有問題
uj5u.com熱心網友回復:
不知道你的系統是什么樣子,但是銀行的系統,應該很龐大,而且會有一些規范,不會輕易讓你修改資料庫上的一些內容。所以,增加觸發器的方案,無論是從資料庫的穩定性,還是效率上來說,都是不可行的。
通常來說,像這樣專案的資料庫,資料是不會直接用DELETE物理洗掉掉的,是在表里,增加DELETE_FLAG標志位,來實作資料的物理洗掉的。臨時表另當別論,而且臨時表的資料,統計起來也沒啥意義。
還會有CREATE_TIME和UPDATE_TIME來記錄資料的創建時間和最后更新時間的。
您可以根據這3個欄位,在不修改現有資料庫任何內容的情況下,統計出您需要的資料的。
uj5u.com熱心網友回復:
SELECT * FROM USER_TAB_MODIFICATIONS;轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/34731.html
標籤:高級技術
上一篇:oracle怎么日期查詢
下一篇:找不到oracle ole db
