oracle表存储表空间,Oracle的存储信息-表空间信息记录
經(jīng)過(guò)前面的介紹,我們已經(jīng)能夠?qū)racle的存儲(chǔ)結(jié)構(gòu)有了深入的了解,總結(jié)一下前面的內(nèi)容:Oracle最小的數(shù)據(jù)存儲(chǔ)單位是數(shù)據(jù)塊(Block),如果以單個(gè)數(shù)據(jù)塊進(jìn)行對(duì)象空間分配,那么顯然分配將過(guò)于頻繁,所以O(shè)racle使用多個(gè)數(shù)據(jù)塊組成了區(qū)間(Extent),區(qū)間是Oracle數(shù)據(jù)庫(kù)對(duì)象的最小空間分配單位,對(duì)象的空間分配和擴(kuò)展只能以區(qū)間為單位進(jìn)行,多個(gè)區(qū)間組成了段(Segment),根據(jù)用途的不同,Oracle數(shù)據(jù)庫(kù)又存在不同的段類型。段存儲(chǔ)在表空間中,一個(gè)數(shù)據(jù)庫(kù)最終由一系列的表空間構(gòu)成。
將以上的描述通過(guò)圖5-6來(lái)表示(圖中的數(shù)據(jù)塊大小為2kB)。
圖5-6? 存儲(chǔ)的物理結(jié)構(gòu)示意圖
Oracle對(duì)于Block的空間管理使用手工段空間管理和自動(dòng)段空間管理技術(shù),對(duì)于Extent的管理則通過(guò)字典管理和本地管理兩種技術(shù)實(shí)現(xiàn)。Oracle的存儲(chǔ)信息可以通過(guò)不同的數(shù)據(jù)字典查詢得到,接下來(lái)將介紹一些主要的數(shù)據(jù)字典視圖。
表空間信息記錄(DBA_TABLESPACES)
DBA_TABLESPACES視圖記錄了數(shù)據(jù)庫(kù)的表空間信息,表空間是數(shù)據(jù)庫(kù)的一個(gè)邏輯概念,一個(gè)表空間可以由多個(gè)物理的數(shù)據(jù)文件組成。這個(gè)視圖中記錄了表空間的數(shù)據(jù)塊大小、Segment、Extent管理方式等重要信息:SQL>?select?tablespace_name,block_size,extent_management,
2??segment_space_management,contents,retention,bigfile
3??from?dba_tablespaces;
TABLESPACE_NAME?BLOCK_SIZE?EXTENT_MAN?SEGMEN?CONTENTS??RETENTION???BIG
---------------?----------?----------?------?---------?-----------?---
SYSTEM???????????????32768?LOCAL??????MANUAL?PERMANENT?NOT?APPLY???NO
UNDOTBS1?????????????32768?LOCAL??????MANUAL?UNDO??????NOGUARANTEE?NO
SYSAUX???????????????32768?LOCAL??????AUTO???PERMANENT?NOT?APPLY???NO
TEMP?????????????????32768?LOCAL??????MANUAL?TEMPORARY?NOT?APPLY???NO
USERS????????????????32768?LOCAL??????AUTO???PERMANENT?NOT?APPLY???NO
BOSSMGR??????????????32768?LOCAL??????AUTO???PERMANENT?NOT?APPLY???YES
DBMON????????????????32768?LOCAL??????AUTO???PERMANENT?NOT?APPLY???NO
TEMP1????????????????32768?LOCAL??????MANUAL?TEMPORARY?NOT?APPLY???NO
8?rows?selected.
注意這個(gè)視圖中的retention、bigfile信息都是Oracle 10g中增加的,BIGFILE指示一個(gè)表空間是否是大文件表空間,在本章后面的小節(jié)中將會(huì)詳細(xì)介紹大文件表空間;而Retention則和UNDO表空間的數(shù)據(jù)保留策略有關(guān)。
在AUM(Auto Undo Management)模式下,UNDO_RETENTION參數(shù)用以控制事務(wù)提交以后UNDO信息保留的時(shí)間,UNDO信息可以用于減少ORA-01555錯(cuò)誤及一系列的閃回操作(Flashback)。該參數(shù)以秒為單位,在Oracle 9iR1中初始值為900秒,在Oracle 9iR2增加為10800秒。但是這是一個(gè)非擔(dān)保性(NO Guaranteed)限制,也就是說(shuō),如果有其他事務(wù)需要回滾空間,而空間出現(xiàn)不足時(shí),這些信息仍然會(huì)被覆蓋,很多時(shí)候這是不希望被看到的。
從Oracle 10g開(kāi)始,默認(rèn)Oracle會(huì)啟用自動(dòng)調(diào)整以滿足最長(zhǎng)運(yùn)行查詢的需要,而不管UNDO_RETENTION的值是多少。SQL>?select?*?from?v$version?where?rownum?<2;
BANNER
--------------------------------------------------------------------------------
Oracle?Database?11g?Enterprise?Edition?Release?11.2.0.1.0?-?64bit?Production
SQL>?show?parameter?undo_retention;
NAME?????????????????????????????????TYPE????????VALUE
------------------------------------?-----------?------------------------------
undo_retention???????????????????????integer?????900
SQL>?select?begin_time,end_time,undotsn,undoblks,tuned_undoretention?from?v$undostat
2??where?rownum<5?order?by?begin_time?desc;
BEGIN_TIME???????????END_TIME????????????????UNDOTSN???UNDOBLKS?TUNED_UNDORETENTION
--------------------?--------------------?----------?----------?-------------------
2011-1-4?18:21:56????2011-1-4?18:29:04?????????????2?????????23?????????????1896067
2011-1-4?18:11:56????2011-1-4?18:21:56?????????????2?????????20?????????????1894612
2011-1-4?18:01:56????2011-1-4?18:11:56?????????????2?????????26?????????????1891101
2011-1-4?17:51:56????2011-1-4?18:01:56?????????????2????????146?????????????1887939
從結(jié)果里可以看到,盡管當(dāng)前的undo_retention的值是900,但是在2011-1-4 18:21:56至2011-1-4 18:29:04這段時(shí)間內(nèi),oracle自動(dòng)將undo_retention的值調(diào)整成了1896067。
但這并不代表著默認(rèn)的undo_retention的值(Oracle 10gR2開(kāi)始,這個(gè)默認(rèn)值是900)沒(méi)有作用,實(shí)際上,即使undo_retention的自動(dòng)調(diào)整默認(rèn)已被oracle采用,但由于oracle并不支持對(duì)lob字段的undo retention的自動(dòng)調(diào)整,所以u(píng)ndo_retention的值依然對(duì)lob字段有效。同時(shí)Oracle增加了Guarantee控制,也就是說(shuō),你可以指定UNDO表空間必須嚴(yán)格滿足UNDO_RETENTION的限制,即使UNDO空間不足,Oracle也不會(huì)回收未過(guò)期的UNDO空間,這樣如果有用戶請(qǐng)求UNDO空間得不到滿足,則會(huì)報(bào)錯(cuò)退出。Oracle通過(guò)這種機(jī)制使得用戶的期望可以被確保。
可以通過(guò)如下命令修改UNDO表空間的保證機(jī)制:SQL>?alter?tablespace?undotbs1?retention?guarantee;
Tablespace?altered
SQL>?alter?tablespace?undotbs1?retention?noguarantee;
Tablespace?altered
這個(gè)屬性有3個(gè)選項(xiàng):GUARANTEE、NOGUARANTEE和NOT APPLY。對(duì)于其他表空間這個(gè)屬性不適用,顯示為NOT APPLY。
總結(jié)
以上是生活随笔為你收集整理的oracle表存储表空间,Oracle的存储信息-表空间信息记录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php server 连接字符串,sql
- 下一篇: c语言字符比较思路,C语言讲解思路资料