实习一--表空间

实习第一天,啪怕  长见识了。

首先新建表空间 

CREATE TABLESPACE "NETGEO_DATA" 
    LOGGING 
    DATAFILE 'E:\app\caizongyu\NETGEO_DATA.ora' SIZE 20000M 
    AUTOEXTEND 
    ON NEXT  1024000K MAXSIZE  35000M EXTENT MANAGEMENT LOCAL SEGMENT 
    SPACE MANAGEMENT  AUTO ;

创建空间名为NETGEO_DATA的表空间,动不动就30个G,企业就是..........

导入数据到了一个多小时.......

发现表空间其实不是什么稀奇的东西,因为其实我们一直都在使用它,我们却并没有发觉

表空间:

表空间是数据库的逻辑上划分,且一个表空间只能属于一个数据库,每个数据库也必须有一个以上的表空间(system),所以我们一直都在用...;且在数据库中,我们存放的数据大多是以表的形式来存储的,所以表空间的主要存储的也是表;

我们想要建立表,那么就要建立用户,建立用户,我们就要为建立的用户指定表空间,并且如果使用用户来管理表空间,我们还需要给用户一定的权限;

百度了下典型的应用,表空间的典型应用:

  1. 控制用户所占用的表空间配额;
  2. 控制数据库所占用的磁盘空间
  3. 灵活放置表空间(可以不同类型的数据放在不同的表空间等方法,就是定义规则)
  4. 大表的排序操作
  5. 日志与数据库的数据分开,提高数据库的安全,也便于维护;

这里说说碰到的问题:

错误:

Error at Command Line:1 Column:1
Error report:
SQL Error: ORA-03206: maximum file size of (4480000) blocks in AUTOEXTEND clause is out of range
03206. 00000 -  "maximum file size of (%s) blocks in AUTOEXTEND clause is out of range"
*Cause:    The maximum file size for an autoextendable file has
           exceeded the maximum number of blocks allowed.
*Action:   Reduce the size and retry.

这是由于

设置的内存过大了,我们可以看oracle中的块大小

show parameter db_block_size;

块大小为8kb,  结果

db_block_size           integer       8192;

4480000*8=35840000kb=35000mb  34G,那么能创建的最大的数据文件大小是:2^22*8K=32G,而2^22是由于Oracle的Rowid中使用22位来代表Block号,这22位最多只能代表2^22-1(4194303)个数据块。
  又及:为了扩展数据文件的大小,Oracle10g中引入了大文件表空间,在大文件表空间下,Oracle使用32位来代表Block号,也就是说,大文件表空间下每个文件最多可以容纳4G个Block。

所以修改大小就可以了  把35000改成32000  ,成功;

猜你喜欢

转载自blog.csdn.net/qq_39512671/article/details/81090009
今日推荐