oracle创建表空间blocksize,oracle表空间大小的限制和DB_BLOCK_SIZE的概念
而Oracle默認(rèn)分配的為8K,也就是對(duì)應(yīng)于32768M左右的空間大小,如果想繼續(xù)增大表空間的話,只需要通過(guò)alter tablespace name add datafile ‘path/file_name‘ size 1024M;添加數(shù)據(jù)文件的方式就可以了。
數(shù)據(jù)塊是oracle中最小的空間分配單位,各種操作的數(shù)據(jù)就的放在這里,oracle從磁盤(pán)讀寫(xiě)的也是塊。一旦create database,db_block_size就是不可更改的。因?yàn)閛racle是以塊為單位存儲(chǔ)數(shù)據(jù)的,任何一個(gè)存儲(chǔ)元素最少占用一個(gè)塊,如果你改變了db_block_size,必然導(dǎo)致部分塊不能正常使用。
其實(shí)在unix類(lèi)操作系統(tǒng)中,文件塊和oracle塊的關(guān)系非常緊密(建議相等),這樣才能保證數(shù)據(jù)庫(kù)的執(zhí)行效率。在windows下可能就不這么講究了。建議使用8k以上的塊,有人做過(guò)測(cè)試,同樣的配置,8k的塊比4k快大約40%,比2k快3倍以上。
1. 多個(gè)數(shù)據(jù)文件累加
將表空間存儲(chǔ)為多個(gè)數(shù)據(jù)文件,每個(gè)文件不大于32GB(精確的值為32768M)
語(yǔ)法如下:(不夠的話繼續(xù)添加數(shù)據(jù)文件)
create tablespace JC_DATA
logging
datafile‘F:\app\oracle\oradata\orcl\JC_DATA01.dbf‘size 50m
autoextend on
next 50m maxsize 32767m
extent management local;--為表空間增加數(shù)據(jù)文件
alter tablespace JC_DATA
add datafile‘F:\app\oracle\oradata\orcl\JC_DATA02.dbf‘size 50m
autoextend on next 50m maxsize 32767m;
2.?擴(kuò)大db_block_size
根據(jù)oracle的算法,我們很容易想到這個(gè)解決方法。數(shù)目衡定,但是db_block_size可以更改(db_block_size的最大大小為32KB)。如果把db_block_size擴(kuò)大到32KB,那么我們的系統(tǒng)就可以支持單個(gè)數(shù)據(jù)文件最大128GB。
這個(gè)方案聽(tīng)起來(lái)好像很迷人,但是實(shí)際上并不是那么回事。因?yàn)橐薷膁b_block_size并不是很容易的事。因?yàn)檫@個(gè)db_block_size在創(chuàng)建實(shí)例的時(shí)候就要指定。而且不能通過(guò)簡(jiǎn)單修改參數(shù)來(lái)指定db_block_size。db_block_size的默認(rèn)值為8192 bytes,是不能被用戶修改的。因?yàn)閐b_block_size對(duì)應(yīng)于一個(gè)實(shí)例,所以意味著在數(shù)據(jù)庫(kù)創(chuàng)建(建庫(kù))以后是不能修改的,如需修改,可行的方式是重新建庫(kù)并把原庫(kù)的數(shù)據(jù)export到新庫(kù)。當(dāng)然最好的方式是在建數(shù)據(jù)庫(kù)之前就規(guī)劃好,一般如果是OLTP系統(tǒng),可以保持默認(rèn)值;OLAP環(huán)境可以考慮適當(dāng)調(diào)大。
3.?創(chuàng)建bigfile表空間
在oracle11g中引進(jìn)了bigfile表空間,他充分利用了64位CPU的尋址能力,使oracle可以管理的數(shù)據(jù)文件總量達(dá)到8EB。單個(gè)數(shù)據(jù)文件的大小達(dá)到128TB,即使默認(rèn)8K的db_block_size也達(dá)到了32TB。
創(chuàng)建bigfile的表空間使用的sql語(yǔ)句和創(chuàng)建表空間的語(yǔ)句使用基本相同。
create bigfile tablespace···
需要注意的是使用bigfile表空間,它只能支持一個(gè)數(shù)據(jù)文件。也就是說(shuō)這個(gè)文件的最大大小就是表空間最大大小,你不可能通過(guò)增加數(shù)據(jù)文件來(lái)擴(kuò)大該表空間的大小。
參考:
http://blog.sina.com.cn/s/blog_4b1c9e12010006vj.html
https://www.cnblogs.com/gavanwanggw/p/6714388.html
https://blog.csdn.net/zhangzheng0413/article/details/8271322
https://blog.csdn.net/dragoo1/article/details/8500241
總結(jié)
以上是生活随笔為你收集整理的oracle创建表空间blocksize,oracle表空间大小的限制和DB_BLOCK_SIZE的概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 为何不公布ChatGPT训练细节?Ope
- 下一篇: Oracle如何手工执行job,求助高手