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