database

Oracle ORA-01555 ::snapshot too old Error Message

ORA-01555 ::snapshot too old Error Message 標籤: Oracle ORA-01555 Error Message   出現ORA-01555錯誤,通常有下列情況:             SQL語句執行時間太長,或者UNDO表空間過小,或者事務量過大,或者過於頻繁的提交,導致執行SQL過程中進行一致性讀時,SQL執行後修改的前鏡像(即UNDO資料)在UNDO表空間中已經被覆蓋,不能構造一致性讀塊(CR blocks)。  這種情況最多。    解決的辦法: (1)增加UNDO表空間大小 (2)增加undo_retention 時間,默認只有15分鐘 (3)優化出錯的SQL,減少查詢的時間,首選方法 (4)避免頻繁的提交 ORA-01555 caused by SQL statement below (SQL ID: 52ssczq4j3vp6, Query Duration=
ipstor

Oracle ORA-00060: Deadlock Detected

ORA-00060: Deadlock Detected 標籤: Oracle ORA-00060: Deadlock Detected   關於資料庫鎖死的檢查方法   一、 資料庫鎖死的現象 程式在執行的過程中,點擊確定或保存按鈕,程式沒有回應,也沒有出現報錯。 二、鎖死的原理 當對於資料庫某個表的某一列做更新或刪除等操作,執行完畢後該條語句不提 交,另一條對於這一列資料做更新操作的語句在執行的時候就會處於等待狀態, 此時的現象是這條語句一直在執行,但一直沒有執行成功,也沒有報錯。 三、鎖死的定位方法 通過檢查資料庫表,能夠檢查出是哪一條語句被鎖死,產生鎖死的機器是哪一台。       當從alter log發現ORA-00060,代表Deadlock已經解除Detected. Alter log:發生Deadlock,查看此檔案 Wed Nov  6 10:10:04 2013 ORA-00060: Deadlock detected. More info in file
ipstor

Oracle Drop Partition & MView Rsync & Index確認

Drop Partition & MView Rsync & Index確認 標籤: Oracle 步驟: 一、確認要刪的Table Partition是否為Mview rsync資料  二、確認db大小,可以知道刪除多少資料  三、Report Mview jobs stop  四、Drop Partition(MES & Report)  五、使用Complete更新Mview物件  六、啟用Mview job  七、確認index狀態  八、確認刪除的大小  0.架構說明:  Oracle DB:10.2.0.4  資料來源:MESDB  Mview 抓取資料Server:ReportDB
ipstor

Oracle的優化器(Optimizer)-Analysis

Oracle的優化器(Optimizer)-Analysis 標籤: Oracle   Oracle的優化器(Optimizer)有兩種優化方式, Hint也不例外,除了/*+rule*/其他的都是CBO優化方式   基於規則的優化方式(Rule-Based Optimization,簡稱為RBO) 基於成本的優化方式(Cost-Based Optimization,簡稱為CBO)   RBO(Rule-Based Optimization)方式:優化器在分析SQL語句時,所遵循的是Oracle內部預定的一些規則。比如我們常見的,當一個where子句中的一列有索引時去走索引。 CBO(Cost-Based Optimization)方式:它是看語句的成本(Cost),這裡的成本主要指CPU和記憶體RAM。   優化器在判斷是否用這種方式時,主要參照的是表及索引的統計資訊。統計資訊給出表的大小、 有多少行、每行的長度等資訊。這些統計資訊起初在庫內是沒有的,是做 Analyze 後才出現的,很多的時侯過期統計資訊會令優化器做出一個錯誤的執行計畫, 因些應及時更新這些資訊
ipstor

Oracle Flashbackup/Recyclebin資料回覆

Flashbackup/Recyclebin資料回覆 標籤: Oracle 1.Flashbackup:使用DML資料誤刪 2.Recyclebin:使用Drop指令誤刪除料 3.OERR-ORA Error錯誤查詢 4.11g獨有的自動修復功能       使用flashbackup回覆資料:   一、指定單一時間點的資料 先查詢之前的狀態是否錯誤 Meth1: select salary from hr.emp as of timestamp to_date('2013-12-19:15:54:52','YYYY-MM-DD:HH24:MI:SS') where employee_id=100; Meth2:回到n分鐘前 select salary
ipstor