oracle資料庫單個數據檔案的大小限制
轉自:https://www.cnblogs.com/snake-hand/p/3144942.html
之前沒有仔細想過這個問題,因為總是不會用到,也沒有犯過類似錯誤。
順便提一下學習方法吧。
滷肉的學習方法是:常用知識點,熟悉理論並反覆做實驗,深入理解;不常用的知識點,相關內容都瞭解大概,遇到問題時想得起來能知道去哪裡查就可以;所有知識點都必須要用實驗驗證,否則學習效果會大打折扣,光看書或看視訊是沒有用的,我保證一個月之後,你忘記的乾乾淨淨的,哈哈。
比如今天這個問題,滷肉看到報錯就會想到可能是資料檔案大小和限制規則衝突了,因為以前瞭解過相關的知識點,有點印象,於是上網去google一下,果然如此。處理過程如下:
環境背景資訊:suse linux11sp1, oracle10.2.0.5
SQL> CREATE TABLESPACE hubtemsTBS
2 NOLOGGING
3 DATAFILE
4 '/oracle/oradata/hubtems01.dbf' SIZE 8000M,
5 '/oracle/oradata/hubtems02.dbf' SIZE 8000M,
6 '/oracle/oradata/hubtems03.dbf' SIZE 8000M,
'/oracle/oradata/hubtems04.dbf' SIZE 8000M,
7 8 '/oracle/oradata/hubtems05.dbf' SIZE 8000M,
9 '/oracle/oradata/hubtems06.dbf' SIZE 8000M
10 AutoExtend On Next 10M Maxsize 50000M
11 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K
SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE hubtemsTBS
*
ERROR at line 1:
ORA-03206: maximum file size of (6400000) blocks in AUTOEXTEND clause is out of
range
SQL> show parameter db_block
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_buffers integer 0
db_block_checking string FALSE
db_block_checksum string TRUE
db_block_size integer 8192
A smallfile tablespace is a traditional Oracle tablespace, which can contain 1022 datafiles or tempfiles, each of which can contain up to approximately 4 million (2^22) blocks. 我的資料塊是大小是8k ,那麼能建立的最大的資料檔案大小是:2^22*8K=32G,而我指定的是‘/oracle/oradata/hubtems06.dbf',大小8G,最大打下是50G,超過限制了,所以報錯。 |
問題搞清楚就好辦了,解決辦法如下:
1、修改資料檔案最大大小為unlimited或者直接寫出32G;若果表空間整體資料空間大小不夠的話,那你就勤快一點,多寫幾行,多加幾個資料檔案吧
2、不推薦的思路也有一些,適用於特定的場合:建立BIGFILE表空間,有個缺點就是一個表空間只能建立一個數據檔案,表空間無法擴充套件;另外修改資料庫大小也可以,但是往往會有不小的風險,如果你不是高階使用者的話,建議放棄吧。