Oracle Undo表空間

          Posted on 2008-06-03 11:56 sdl 閱讀(2075) 評論(2)  編輯  收藏 所屬分類: Oracle
              在開發過程中遇到這樣一個問題:
              2008-06-02 16:29:23,262 WARN [org.hibernate.util.JDBCExceptionReporter] SQL Error: 30036, SQLState: 99999
          2008-06-02 16:29:23,263 ERROR [org.hibernate.util.JDBCExceptionReporter] ORA-30036: unable to extend segment by 1024 in undo tablespace 'UNDOTBS2'
          后來查資料才發現是Undo表空間的問題。查看了一下Undo表空間剩的空間已經很少了。這種問題解決方法如下:

              


          UNDO表空間用于存放UNDO數據,當執行DML操作(INSERT,UPDATE和DELETE)時,oracle會將這些操作執行前的舊數據寫入到UNDO段,在oracle9i之前,管理UNDO數據時使用(Rollback Segment)完成的.從oracle9i開始,管理UNDO數據不僅可以使用回滾段,還可以使用UNDO表空間.因為規劃和管理回滾段比較復雜,所有oracle database 10g已經完全丟棄用回滾段.并且使用UNDO表空間來管理UNDO數據.

          1:查看所有的Undo表空間

          SELECT * FROM dba_tablespaces where contents='UNDO'


          2:Undo大小計算公式:

          SELECT ((UR * (UPS * DBS)) + (DBS * 24))/1048576 AS "MB"
          FROM (SELECT value AS UR
          FROM v$parameter
          WHERE name = 'undo_retention'),
          (SELECT (SUM(undoblks)/SUM
          (((end_time-begin_time)*86400))) AS UPS
          FROM v$undostat),
          (SELECT value AS DBS
          FROM v$parameter
          WHERE name = 'db_block_size');
          3:修改Undo表空間大小

           先刪除原來的表空間:
           drop tablespace UNDOTBS2 including contents and datafiles
           再建立一個和原來名稱一樣的表空間
           create undo tablespace UNDOTBS2 datafile '/home/oracle/oradata/depsight/undotbs2.dbf' size 50m

          Feedback

          # re: Oracle Undo表空間  回復  更多評論   

          2008-11-05 23:04 by rrr
          兄弟,不對吧,UNDO段是循環使用的,Undo表空間剩的空間已經很少時,oracle可以循環使用的,出現以上的原因是UNDO表空間太小吧

          # re: Oracle Undo表空間[未登錄]  回復  更多評論   

          2009-10-10 13:47 by dd
          暈,不懂就不要寫

          posts - 12, comments - 2, trackbacks - 0, articles - 0

          Copyright © sdl

          主站蜘蛛池模板: 应城市| 旬邑县| 古交市| 大化| 双鸭山市| 永川市| 佛山市| 额尔古纳市| 彩票| 牡丹江市| 云龙县| 镇雄县| 宣化县| 哈尔滨市| 高安市| 涡阳县| 株洲市| 浦县| 沅江市| 郧西县| 滨海县| 榆社县| 乐东| 永川市| 林口县| 阿鲁科尔沁旗| 睢宁县| 花莲市| 夏邑县| 沙河市| 开封县| 林周县| 方正县| 平果县| 陇南市| 高碑店市| 遂昌县| 徐闻县| 元阳县| 汽车| 牡丹江市|