oracle数据库单个数据文件的大小限制
oracle数据库单个数据文件的大小限制
比如今天这个问题,卤肉看到报错就会想到可能是数据文件大小和限制规则冲突了,因为以前了解过相关的知识点,有点印象,于是上网去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表空间,有个缺点就是一个表空间只能创建一个数据文件,表空间无法扩展;另外修改数据库大小也可以,但是往往会有不小的风险,如果你不是高级用户的话,建议放弃吧。