中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle 11g rac ORA-01555快照過舊報錯的處理方法

發布時間:2021-11-12 15:07:56 來源:億速云 閱讀:1054 作者:柒染 欄目:關系型數據庫

今天就跟大家聊聊有關oracle 11g rac ORA-01555快照過舊報錯的處理方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

ORA-01555 快照過舊,是數據庫中很常見的一個錯誤,比如當我們的事務需要使用undo來構建CR塊的時候,

而此時對應的undo 已經不存在了, 這個時候就會報ORA-01555的錯誤。

環境是Oracle 11g RAC 由于客戶執行一個比較復雜的SQL,使用PLSQL運行了88分鐘后出現報錯,這是一個要查看報表的SQL。

臨時的處理方法如下:

以下為虛擬機模擬操作,建議數據庫安裝的時候這個參數一定要提前調整優化一下,不要使用默認值。

[root@ysdb1 ~]# su - oracle
[oracle@ysdb1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Fri Dec 23 10:39:44 2016
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SYS@ysdb1>show parameter undo;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900     --默認15分鐘
undo_tablespace                      string      UNDOTBS1
SYS@ysdb1>
SYS@ysdb1>alter system set undo_retention=10800 scope=both;
System altered.

--查看表空間容量

SYS@ysdb1>col tablespace_name for a15
SYS@ysdb1>col free_rate for a15
SYS@ysdb1>SELECT a.tablespace_name,
             ROUND (a.total_size) "total_size(MB)",
             ROUND (a.total_size) - ROUND (b.free_size, 3) "used_size(MB)",
             ROUND (b.free_size, 3) "free_size(MB)",
             ROUND (b.free_size / total_size * 100, 2) || '%' free_rate
      FROM ( SELECT tablespace_name, SUM (bytes) / 1024 / 1024 total_size
                  FROM dba_data_files
              GROUP BY tablespace_name) a,
             ( SELECT tablespace_name, SUM (bytes) / 1024 / 1024 free_size
                 FROM dba_free_space
             GROUP BY tablespace_name) b
    WHERE a.tablespace_name = b.tablespace_name(+);
TABLESPACE_NAME total_size(MB) used_size(MB) free_size(MB) FREE_RATE
--------------- -------------- ------------- ------------- ---------------
SYSAUX                     600       178.625       421.375 70.23%
UNDOTBS1                   200        56.062       143.938 71.97%
USERS                        5             1             4 80%
SYSTEM                     700         287.5         412.5 58.93%
UNDOTBS2                   200         6.687       193.313 96.66%
SYS@ysdb1> SELECT   tablespace_name, status, SUM (bytes) / 1024 / 1024 "Bytes(M)"
        FROM   dba_undo_extents
    GROUP BY   tablespace_name, status;
TABLESPACE_NAME      STATUS      Bytes(M)
TABLESPACE_NAME STATUS      Bytes(M)
--------------- --------- ----------
UNDOTBS1        UNEXPIRED         11
UNDOTBS2        UNEXPIRED      2.125
UNDOTBS1        EXPIRED      44.0625
UNDOTBS2        EXPIRED       3.5625

1.出現ORA-01555錯誤,通常有2種情況:

    1)SQL語句執行時間太長,或者UNDO表空間過小,或者事務量過大,或者過于頻繁的提交,導致執行SQL過程中進行一致性讀時,SQL執行后修改的前鏡像(即UNDO數據)在UNDO表空間中已經被覆蓋,不能構造一致性讀塊(CR blocks)。  這種情況最多。

    2)SQL語句執行過程中,訪問到的塊,在進行延遲塊清除時,不能確定該塊的事務提交時間與SQL執行開始時間的先后次序。 這種情況很少。

2.第1種情況解決的辦法:

  1)增加UNDO表空間大小

  2)增加undo_retention 時間,默認只有15分鐘

  3)優化出錯的SQL,減少查詢的時間,首選方法

  4)避免頻繁的提交

看完上述內容,你們對oracle 11g rac ORA-01555快照過舊報錯的處理方法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

论坛| 吉水县| 六盘水市| 开鲁县| 突泉县| 资讯| 紫阳县| 磴口县| 阿拉善盟| 军事| 芦山县| 义马市| 临海市| 准格尔旗| 广德县| 秀山| 津南区| 临澧县| 常熟市| 沧源| 青岛市| 永川市| 神木县| 广河县| 山阴县| 溧阳市| 禹州市| 阿合奇县| 金乡县| 清涧县| 江达县| 特克斯县| 邯郸县| 榆中县| 驻马店市| 仲巴县| 东兰县| 义马市| 常熟市| 靖江市| 鹿泉市|