UNDO Tablespace
生活随笔
收集整理的這篇文章主要介紹了
UNDO Tablespace
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
UNDO表空間用于存放UNDO數(shù)據(jù),當執(zhí)行DML操作(insert、update、delete)的時候,oracle會將這些操作的舊數(shù)據(jù)寫入到UNDO段。
UNDO數(shù)據(jù)也稱為回滾數(shù)據(jù),用于確保數(shù)據(jù)的一致性。作用包括:1、回退事務2、讀一致性3、事務恢復4、閃回查詢
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 一個undo_segment ?<<=============>> ?多個undo_block ? ?☆☆一個undo_segment <<==============>> 多個transaction ? ? ?☆☆一個transaction ? ? ? <<==============>> ?一個undo_block ? ? ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
undo管理的參數(shù):1、UNDO_MANAGEMENT用于指定undo數(shù)據(jù)的管理方式。如果使用自動管理,必須設置為AUTO;如果手動管理,必須設置為MANUAL。使用自動管理的時候,oracle會使用UNDO表空間管理UNDO數(shù)據(jù);使用手動管理時,oracle會使用回滾段管理UNDO數(shù)據(jù)。
2、UNDO_TABLESPACE用于指定例程所要使用的UNDO表空間。設置的時候,必須保證該表空間存在,否則會導致例程啟動失敗。使用RAC的時候,因為一個UNDO不能由多個例程同時使用,所以必須為每個例程配置一個獨立的UNDO表空間。
3、UNDO_RETENTION用于控制UNDO數(shù)據(jù)的最大保留時間,其默認值為900秒。即:一個transaction所屬的undo_block,在undo_tablespace保留最長的時間是900秒。(必須保存900秒后才能被覆蓋)SQL>Alter system set undo_retention=n;
===================================================================
★UNDO表空間和普通表空間的管理差不多★
建立UNDO表空間1、使用CREATE DATABASE命令建立UNDO表空間如果使用的是UNDO管理模式,但是沒有指定UNDO TABLESPACE,那么建立數(shù)據(jù)庫的時候oracle會自動生成名稱為SYS_UNDOTBS的UNDO表空間。SQL>create database db01. . .undo tablespace undo1datafile '/u01/oradata/undo1db01.dbf' size 20Mautoextend on;
2、使用CREATE UNDO TABLESPACE 命令建立UNDO表空間建立數(shù)據(jù)庫以后,可以使用該命令建立UNDO表空間。SQL>create undo tablespace undo1datafile '/u01/oradata/undo1db01.dbf'size 20M;
修改UNDO表空間當事務用盡UNDO表空間后,增加數(shù)據(jù)文件SQL>Alter tablespace undotbsadd datafile '/u01/oradata/undotbs.dbf'size 30Mautoextend on;?
切換UNDO表空間啟動并打開oracle數(shù)據(jù)庫后,同一時刻只能使用一個UNDO表空間。可以切換UNDO表空間:SQL>ALTER SYSTEM SET undo_tablespace=undotbs02;
刪除UNDO表空間當前使用的UNDO表空間不能被刪除,如果要刪除當前實例使用的UNDO,需要先切換,然后刪除:SQL>DROP TABLESPACE undotbs01;
===========================================================================
視圖:v$transaction ? ? ? ? ? ? ? ? ? 當前活動的transactionused_ublk ? ? ? ? ? ? ? ? ? ? ? ?一個transaction用了多少block
v$undostat ? undo 表空間的歷史信息end_time ? ? ? ? ? ? begin_time ? ? ? ? ? ? ? ? ? ?undoblks結束時間 ? ? ? ? ? ? ? 開始時間 ? ? ? ? ? ?這段時間所需要的undo_block
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆計算undo表空間需要的大小
1.transaction一秒鐘所需要的最多塊數(shù)①select max(undoblks/((end_time - begin_time)*24*3600)) from v$undostat
2.show parameter undo②參數(shù)undo_retention
3.show parameter block③參數(shù)db_block_size
undo表空間需要的最小空間=①×②×③
UNDO數(shù)據(jù)也稱為回滾數(shù)據(jù),用于確保數(shù)據(jù)的一致性。作用包括:1、回退事務2、讀一致性3、事務恢復4、閃回查詢
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 一個undo_segment ?<<=============>> ?多個undo_block ? ?☆☆一個undo_segment <<==============>> 多個transaction ? ? ?☆☆一個transaction ? ? ? <<==============>> ?一個undo_block ? ? ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
undo管理的參數(shù):1、UNDO_MANAGEMENT用于指定undo數(shù)據(jù)的管理方式。如果使用自動管理,必須設置為AUTO;如果手動管理,必須設置為MANUAL。使用自動管理的時候,oracle會使用UNDO表空間管理UNDO數(shù)據(jù);使用手動管理時,oracle會使用回滾段管理UNDO數(shù)據(jù)。
2、UNDO_TABLESPACE用于指定例程所要使用的UNDO表空間。設置的時候,必須保證該表空間存在,否則會導致例程啟動失敗。使用RAC的時候,因為一個UNDO不能由多個例程同時使用,所以必須為每個例程配置一個獨立的UNDO表空間。
3、UNDO_RETENTION用于控制UNDO數(shù)據(jù)的最大保留時間,其默認值為900秒。即:一個transaction所屬的undo_block,在undo_tablespace保留最長的時間是900秒。(必須保存900秒后才能被覆蓋)SQL>Alter system set undo_retention=n;
===================================================================
★UNDO表空間和普通表空間的管理差不多★
建立UNDO表空間1、使用CREATE DATABASE命令建立UNDO表空間如果使用的是UNDO管理模式,但是沒有指定UNDO TABLESPACE,那么建立數(shù)據(jù)庫的時候oracle會自動生成名稱為SYS_UNDOTBS的UNDO表空間。SQL>create database db01. . .undo tablespace undo1datafile '/u01/oradata/undo1db01.dbf' size 20Mautoextend on;
2、使用CREATE UNDO TABLESPACE 命令建立UNDO表空間建立數(shù)據(jù)庫以后,可以使用該命令建立UNDO表空間。SQL>create undo tablespace undo1datafile '/u01/oradata/undo1db01.dbf'size 20M;
修改UNDO表空間當事務用盡UNDO表空間后,增加數(shù)據(jù)文件SQL>Alter tablespace undotbsadd datafile '/u01/oradata/undotbs.dbf'size 30Mautoextend on;?
切換UNDO表空間啟動并打開oracle數(shù)據(jù)庫后,同一時刻只能使用一個UNDO表空間。可以切換UNDO表空間:SQL>ALTER SYSTEM SET undo_tablespace=undotbs02;
刪除UNDO表空間當前使用的UNDO表空間不能被刪除,如果要刪除當前實例使用的UNDO,需要先切換,然后刪除:SQL>DROP TABLESPACE undotbs01;
===========================================================================
視圖:v$transaction ? ? ? ? ? ? ? ? ? 當前活動的transactionused_ublk ? ? ? ? ? ? ? ? ? ? ? ?一個transaction用了多少block
v$undostat ? undo 表空間的歷史信息end_time ? ? ? ? ? ? begin_time ? ? ? ? ? ? ? ? ? ?undoblks結束時間 ? ? ? ? ? ? ? 開始時間 ? ? ? ? ? ?這段時間所需要的undo_block
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆計算undo表空間需要的大小
1.transaction一秒鐘所需要的最多塊數(shù)①select max(undoblks/((end_time - begin_time)*24*3600)) from v$undostat
2.show parameter undo②參數(shù)undo_retention
3.show parameter block③參數(shù)db_block_size
undo表空間需要的最小空間=①×②×③
總結
以上是生活随笔為你收集整理的UNDO Tablespace的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vb检查磁盘类型
- 下一篇: Oracle 练习作业10.1-1-2