淺談VB.NET UNDO表空間的三大操作
本人很喜歡VB.NET UNDO表空間,在工作中也很喜歡總結(jié)關(guān)于VB.NET UNDO表空間的經(jīng)驗(yàn)教訓(xùn),下面就這個(gè)問(wèn)題來(lái)詳細(xì)說(shuō)說(shuō)吧。建立VB.NET UNDO表空間,VB.NET UNDO表空間專門用于存放UNDO數(shù)據(jù),并且在UNDO表空間尚不能建立任何數(shù)據(jù)對(duì)象(表,索引,簇)
1.使用CREATE DATABASE命令建立UNDO表空間。
當(dāng)使用CREATE DATABASE命令建立數(shù)據(jù)庫(kù)時(shí),通過(guò)指定UNDO TABLESPACE選項(xiàng),可以建立UNDO表空間。示例如下:
- CREATE DATABASE db01
- …
- UNDO TABLESPACE undotbs_01
- DATAFILE ‘/u01/oracle/rbdb1/undo0101.dbf’ SIZE 30M;
注意:UNDO TABLESPACE 子句不是必須的,如果使用自動(dòng)UNDO管理模式,并且沒有指定該子句,那么建立數(shù)據(jù)庫(kù)時(shí)會(huì)自動(dòng)生成名為SYS_UNDOTBS的UNDO表空間。
2.使用CREATE UNDO TABLESPACE命令建立UNDO表空間。
- CREATE UNDO TABLESPACE undotbs3
- DATAFILE ‘D:demoundotbs3.dbf’ SIZE 10M;
修改VB.NET UNDO表空間,使用ALTER TABLESPACE命令修改UNDO表空間。當(dāng)事務(wù)用盡了UNDO表空間后,使用ALTER TABLESPACE … ADD DATAFILE增加數(shù)據(jù)文件當(dāng)UNDO表空間所在的磁盤填滿是,使用ALTER TABLESPACE … RENAME DATAFIEL 命令移動(dòng)數(shù)據(jù)文件到其他磁盤上。使用ALTER DATABASE … OFFLINE/ONLINE使表空間脫機(jī)/聯(lián)機(jī)。當(dāng)數(shù)據(jù)庫(kù)處于ARCHIVELOG模式時(shí),使用ALTER TABLESPACE …BEGIN BACKUP/END BACKUP命令備份UNDO表空間。
切換VB.NET UNDO表空間。
啟動(dòng)例程并打開數(shù)據(jù)庫(kù)后,同一時(shí)刻特定例程只能使用一個(gè)UNDO表空間,切換UNDO表空間是指停止例程當(dāng)前使用的UNDO表空間,并啟動(dòng)其他UNDO表空間,下面以啟用undotbs2表空間為例,說(shuō)明切換UNDO表空間的方法。
- ALTER SYSTEM SET undo_tablespace=undotbs02;
在RAC(Real Application Cluster)機(jī)構(gòu)中,不同例程必須使用獨(dú)立的UNDO表空間,而不能共用同一個(gè)UNDO表空間。
刪除VB.NET UNDO表空間。
當(dāng)前例程正在使用的VB.NET UNDO表空間是不能被刪除的,如果確定要?jiǎng)h除當(dāng)前例程正在使用的UNDO表空間,應(yīng)首先切換UNDO表空間。然后刪除相應(yīng)的UNDO表空間。DROP TABLESPACE undotbs3;
1.確定當(dāng)前例程正在使用的UNDO表空間。Show parameter undo_tablespace
2.顯示數(shù)據(jù)庫(kù)的所有UNDO表空間。SELECT tablespace_name FROMdba_tablespaces WHERE contents=’UNDO’;
3.顯示UNDO表空間統(tǒng)計(jì)信息。
使用自動(dòng)UNDO管理模式時(shí),需要合理地設(shè)置UNDO表空間的尺寸,為例合理規(guī)劃UNDO表空間尺寸,應(yīng)在數(shù)據(jù)庫(kù)運(yùn)行的高峰階段搜集UNDO表空間的統(tǒng)計(jì)信息。最終根據(jù)該統(tǒng)計(jì)信息確定UNDO表空間的尺寸。通過(guò)查詢動(dòng)態(tài)性能視圖V%UNDOSTAT,可以搜集UNDO統(tǒng)計(jì)信息。
- SELECT TO_CHAR(BEGIN_TIME,’HH24:MI:SS’) BEGIN_TIME, TO_CHAR
(END_TIME,’HH24:MI:SS’) END_TIME, UNDOBLKS- FROM V$UNDOSTAT;
BEGIN_TIME用于標(biāo)識(shí)起始統(tǒng)計(jì)時(shí)間,END_TIME用于標(biāo)識(shí)結(jié)束統(tǒng)計(jì)時(shí)間,UNDOBLKS用于標(biāo)識(shí)UNDO數(shù)據(jù)所占用的數(shù)據(jù)塊個(gè)數(shù)。oracle每隔10分鐘生成一行統(tǒng)計(jì)信息。
【編輯推薦】