ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle数据库数据文件small file的最大值

Oracle数据库数据文件small file的最大值

原创 Linux操作系统 作者:mengzhaoliang 时间:2009-03-31 16:37:23 1 删除 编辑

/*
*时间:2009-03-31
*环境:WindowsXP   Oracle10g10.2.0.1.0
*标题:Oracle数据库数据文件small file的最大值
*/

1、获取创建表空间的sql语句
SQL>set   long    10000   (在sqlplus设置变量,不然显示的内容不全)
SQL> select   dbms_metadata.get_ddl('TABLESPACE','SYSTEM')   from   dual;

DBMS_METADATA.GET_DDL('TABLESPACE','SYSTEM')
--------------------------------------------------------------------------------


  CREATE TABLESPACE "SYSTEM" DATAFILE
  'E:\PROGRAMFILES\ORACLE\PRODUCT\10.2.0\ORADATA\MZL\SYSTEM01.DBF' SIZE 314572800
  AUTOEXTEND ON NEXT 10485760 MAXSIZE 32767M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT MANUAL
   ALTER DATABASE DATAFILE
  'E:\PROGRAMFILES\ORACLE\PRODUCT\10.2.0\ORADATA\MZL\SYSTEM01.DBF' RESIZE 503316

发现创建的数据文件大小都不能大于32GB?

默认创建数据库有5个表空间:
系统表空间system,默认的数据文件为480MB
辅助表空间sysaux,默认的数据库文件为240MB
回滚表空间undotbs1,默认的数据库文件为25MB
临时表空间temp,默认的数据库文件为,20MB
用户默认使用的表空间:users,默认的数据库文件为5M

2、查看各表空间的数据文件的位置、大小
SQL> select   file_name,tablespace_name,bytes/1024/1024   "bytes MB",
  2  autoextensible,maxbytes/1024/1024 "maxbytes MB" from dba_data_files;

临时表空间的位置、大小
SQL> select file_name,tablespace_name,bytes/1024/1024 "bytes MB",
  2  autoextensible,maxbytes/1024/1024 "maxbytes MB" from dba_temp_files;

3、创建一个自动扩展的表空间
SQL> l
  1  create tablespace test
  2  datafile 'E:\PROGRAMFILES\ORACLE\PRODUCT\10.2.0\ORADATA\MZL\test.dbf'
  3* size 2M autoextend on
SQL> /

表空间已创建。


SQL> select   dbms_metadata.get_ddl('TABLESPACE','TEST')   from   dual;

DBMS_METADATA.GET_DDL('TABLESPACE','TEST')
--------------------------------------------------------------------------------


  CREATE TABLESPACE "TEST" DATAFILE
  'E:\PROGRAMFILES\ORACLE\PRODUCT\10.2.0\ORADATA\MZL\TEST.DBF' SIZE 2097152
  AUTOEXTEND ON NEXT 8192 MAXSIZE 32767M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO

 

刚才创建了一个自动扩展的表空间:查看只能最大MAXSIZE 32767M,大约32GB(31.999GB),
原来数据库的db_block_size为8192字节,也就是8KB,但为什么最大只能小于32GB。
Oracle中每个small file数据文件最多只能包含2的22次方 - 1 个数据块,所以数据库最大为8KB*(2^22-1)=32GB-8KB
所以数据库的db_block_size为8KB时,数据文件的最大值为32GB-8KB,
如果Oracle的db_block_size为16KB时,数据文件的最大值为64GB-16KB(16KB*(2^22-1))


注:查看数据库表空间的各参数:数据块大小、初始化区大小、递增区大小、状态、区管理、段管理、是否大文件
select *   from   dba_tablespaces;

 


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12778571/viewspace-582453/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2008-01-30

  • 博文量
    335
  • 访问量
    2914621