转自: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表空间,有个缺点就是一个表空间只能创建一个数据文件,表空间无法扩展;另外修改数据库大小也可以,但是往往会有不小的风险,如果你不是高级用户的话,建议放弃吧。