oracle单个数据库文件最大是多少?

oracle单个数据库文件最大是多少?,第1张

1、64位linux 和64位oracle,默认oracle表空间数据文件用的BLOCKSIZE是8k,表空间数据文件最大是32G。\x0d\x0aSQL>show parameter k_cache_size\x0d\x0a查看数据库默认的块大小\x0d\x0aSQL>show parameter db_block_size\x0d\x0adb_block_sizeinteger 8192\x0d\x0a2、为了让一个表空间数据文件存64G,你需要告诉oracle用BLOCKSIZE 是16k\x0d\x0aCREATE TABLESPACE TEST DATAFILE ‘/data1/test_ts1.dbf’ SIZE 512M AUTOEXTEND ON NEXT 256M MAXSIZE UNLIMITED BLOCKSIZE 16k\x0d\x0a提前需要设置db_16k_cache_size\x0d\x0aalter system set db_16k_cache_size=16M scope=both\x0d\x0a否则会报错ORA-29339:\x0d\x0atablespace block size 16384 does not match configured block sizes\x0d\x0a3、为了让一个表空间数据文件存128G,你需要告诉oracle用BLOCKSIZE 是32k\x0d\x0a4、32位linux 和32位oracle,默认oracle表空间datafile用的BLOCKSIZE也是8k,表空间数据文件最大也是32G。试了一下64G文件,也没有问题。

块的标准大小由初始化参数DB_BLOCK_SIZE指定。具有标准大小的块称为标准块(StandardBlock)。块的大小和标准块的大小不同的块叫非标准块(NonstandardBlock)。同一数据库中,Oracle9i及以上版本支持同一数据库中同时使用标准块和非标准块。Oracle允许指定5种非标准块(NonstandardBlock)。

数据块(OracleDataBlocks),本文简称为“块”,是Oracle最小的存储单位,Oracle数据存放在“块”中。一个块占用一定的磁盘空间。特别注意的是,这里的“块”是Oracle的“数据块”,不是 *** 作系统的“块”。

Oracle每次请求数据的时候,都是以块为单位。也就是说,Oracle每次请求的数据是块的整数倍。如果Oracle请求的数据量不到一块,Oracle也会读取整个块。所以说,“块”是Oracle读写数据的最小单位或者最基本的单位。

oracle的逻辑结构包括表空间(tablespace),段(segment),区(extent),数据块(data block)\x0d\x0aoracle数据库在逻辑上是由多个表间组成的,表空间中存储的对象叫段,比如数据段,索引段,和回退段。段由区组成,区是磁盘分配的最小单位。段的增大是通过增加区的个数来实现的。每个区的大小是数据块大小的整数倍,区的大小可以不相同;数据块是数据库中最小的I/O单位,同时也是内存数据缓冲区的单位,及数据文件存储空间单位。块的大小由参数DB_BLOCK_SIZE设置,其值应设置为 *** 作系统块大小的整数倍。\x0d\x0a表空间\x0d\x0a表空间是Oracle数据库最大的逻辑结构,一个Oracle数据库在逻辑上由多个表空间组成,一个表空间只隶属于一个数据库。Oracle中有一个称为SYSTEM的表空间,这个表空间是在创建或安装数据库时自动创建的。主要用于存储系统的数据字典,过程,函数,触发器等;也可以存储用户的表,索引等。一个表空间可以有多数据文件,但是一个数据文件只能属于一个表空间。\x0d\x0a一个表空间就是一片磁盘区域,他由一个或者多个磁盘文件组成,一个表空间可以容纳许多表、索引或者簇等。每个表空间有一个预制的磁盘区域称为初始区间(initial extent)用完这个区间后再用下一个,直到用完表空间,这时候需要对表空间进行扩展,增加数据文件或者扩大已经存在的数据文件\x0d\x0a段\x0d\x0aOracle中的段可以分成4种类型:数据段、索引段、回滚段、临时段。\x0d\x0a数据段用来存储用户的数据,每个表都有一个对应的回滚段,其名称和数据表的名字相同。索引段用来存储系统、用户的索引信息。回滚段用来存储用户数据修改前的值,回退段与事务是一对多的关系,一个事务只能使用一个回退段,而一个回退段可存放一个或多个事务的回退数据。临时段用于order by语句的排序以及一些汇总。\x0d\x0a区\x0d\x0a区是磁盘空间分配的最小单位。磁盘按区划分,每次至少分配一个区。区存储于段中,它由连续的数据块组成。区的分配过程中,每次至分配5个区。如果所剩的空闲空间不够5个区,就会出现错误:ORA-01653。可以通过字典dba_tablespaces查询表空间中区的信息。可以通过字典user_tables查询段中区的信息。可以通过字典user_extents查询区的分配状况。我们可以通过以下SQL语句分别查询表空间、段、区中区的分配信息\x0d\x0aSQL>select * from dba_tablespaces\x0d\x0aSQL>select table_name, tablespace_name, min_extents, max_extents from user_tables\x0d\x0aSQL>select * from user_extents\x0d\x0a数据块\x0d\x0a数据块是数据中中最小的数据组织单位与管理单位,是数据文件磁盘存储空间单位,也是数据库I/O 的最小单位,数据块大小由DB_BLOCK_SIZE参数决定,不同的oracle版本DB_BLOCK_SIZE的默认值是不同的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6776476.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存