mysql 回滚段 表空间_oracle回滚段和回滚表空间
昨晚因為做了一個大批量的刪除,用的 delete 。大約用了 6 個小時,導致了回滾段自動擴展到將近 30 個 G 。(以后記著,做大批量刪除的時候,一定要用腳本實現,分批量提交事務。那樣就不會占用太多的 UNDO 表空間了!) 從網上搜了一個普遍的方法,更換新的
昨晚因為做了一個大批量的刪除,用的delete。大約用了6個小時,導致了回滾段自動擴展到將近30個G。(以后記著,做大批量刪除的時候,一定要用腳本實現,分批量提交事務。那樣就不會占用太多的UNDO表空間了!)
從網上搜了一個普遍的方法,更換新的UNDO表空間,然后刪除原來的UNDO表空間,釋放出磁盤容量。
具體方法如下:(參考網上的資料)
1、查詢回滾段信息:狀態為ONLINE,當前UNDO表空間為undotbs1
SQL>select segment_name, owner, tablespace_name, status from dba_rollback_segs;
SEGMENT_NAME OWNER TABLESPACE_NAME STATUS
------------------------------ ------ ------------------------------ ----------------
SYSTEM SYS SYSTEM ONLINE
_SYSSMU1$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU2$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU3$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU4$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU5$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU6$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU7$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU8$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU9$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU10$ PUBLIC UNDOTBS1 ONLINE
11 rows selected.
2、創建一個新的回滾段:
SQL>CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE 'd:/oracle/oradata/oradev/UNDOTBS2.dbf' SIZE 50M
注:UNDOTBS2為新建回滾段名稱,可自擬。'd:/oracle/oradata/oradev/UNDOTBS2.dbf'是表空間數據文件地址,可根據情況設定。
3、切換回滾段:
SQL> alter system set undo_tablespace=undotbs2 scope=both;
這樣系統默認UNDO表空間就是新建的undotbs2了。
4、重啟數據庫后,即可刪除原來的回滾段,這樣就能釋放磁盤空間了。
SQL>drop rollback segment undotbs1;
SQL>drop tablespace undotbs1 including contents and datafiles;
5、對回滾段的大小,可以根據情況進行調整,也可以改為自動擴展。
下面是網友提供的一個小技巧:
調小了回滾段后,在imp導入數據時,提示回滾段無法擴展的錯誤。
解決方法:在imp時,加入參數commit=y,直接提交,避免占用大回滾段。
本條技術文章來源于互聯網,如果無意侵犯您的權益請點擊此處反饋版權投訴
本文系統來源:php中文網
總結
以上是生活随笔為你收集整理的mysql 回滚段 表空间_oracle回滚段和回滚表空间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机发送数据到mysql_单片机的数据
- 下一篇: mysql5.7+主从不一致_Mysql