oracle11g表空间和数据文件 不能大于32g的问题

默认分类 未结 1 380
①辈孓宠你‰
①辈孓宠你‰ 2023-03-17 17:36
相关标签:
1条回答
  • 2023-03-17 18:02

    4k最大表空间为:16384M

    8K最大表空间为:32768M

    16k最大表空间为:65536M

    32K最大表空间为:131072M

    64k最大表空间为:262144M

    而Oracle默认分配的为8K,也就是对应于32768M左右的空间大小,如果想继续增大表空间的话,只需要通过alter tablespace name add datafile ‘path/file_name’ size 1024M;添加数据文件的方式就可以了。

    数据块是oracle中最小的空间分配单位,各种操作的数据就的放在这里,oracle从磁盘读写的也是块。一旦create database,db_block_size就是不可更改的。因为oracle是以块为单位存储数据的,任何一个存储元素最少占用一个块,如果你改变了 db_block_size,必然导致部分块不能正常使用。

    其实在unix类操作系统中,文件块和oracle块的关系非常紧密(建议相等),这样才能保证数据库的执行效率。在windows下可能就不这么讲究了。建议使用8k以上的块,有人做过测试,同样的配置,8k的块比4k快大约40%,比2k快3倍以上。

    Oracle单个数据文件超过32G后扩容

    标签:

    表空间 有最大值 是在创建的时候 设定好的,你可以试着改变表空间的最大值。删除用户只会改变表空间的实际大小,占用率;查看表空间使用情况SELECT tbs 表空间名, sum(totalM) 总共大小M, sum(usedM) 已使用空间M, sum(remainedM) 剩余空间M, sum(usedM)/sum(totalM)*100 已使用百分比, sum(remainedM)/sum(totalM)*100 剩余百分比 FROM( SELECT b.file_id ID, b.tablespace_name tbs, b.file_name name, b.bytes/1024/1024 totalM, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 usedM, sum(nvl(a.bytes,0)/1024/1024) remainedM, sum(nvl(a.bytes,0)/(b.bytes)*100), (100 - (sum(nvl(a.bytes,0))/(b.bytes)*100)) FROM dba_free_space a,dba_data_files b WHERE a.file_id = b.file_id GROUP BY b.tablespace_name,b.file_name,b.file_id,b.bytes ORDER BY b.tablespace_name ) GROUP BY tbs 查看表空间 文件属性select file_name,autoextensible,increment_by from dba_data_files;更改(主要是扩大)表空间 autoextend是自增长 但是有最大值alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\QIHANG.DBF' autoextend on next 1M maxsize 5000M;

    0 讨论(0)
提交回复