【翻译自mos文章】DBA_DATA_FILES中bytes的值要比maxbytes的值要大

本文解析了Oracle数据库中DBA_DATA_FILES视图BYTES与MAXBYTES字段值差异的原因。当数据文件手动调整大小超过最大值后,BYTES值会大于MAXBYTES值。文章通过创建表空间及调整数据文件大小的步骤演示了这一现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DBA_DATA_FILES中bytes的值要比maxbytes的值要大
来源于:
Value in BYTES Column Greater than MAXBYTES Column in DBA_DATA_FILES (文档 ID 197244.1)

目的:
本文解释了DBA_DATA_FILES中bytes的值要比maxbytes的值要大的原因。

描述:
当一个datafile 手工resize到一个大于maxsize(maxbytes)的值之后,DBA_DATA_FILES中bytes的值要比maxbytes的值要大
当该datafile被设置为autoextend on之后,dba_data_files中的maxbytes 值被自动结算为一个非零值。
dba_data_files中的bytes是该datafile的当前的大小(以bytes为单位)

下面是一个示例:

解释:
当datafile 被resize的时候,dba_data_files中的maxbytes 值 不会被更新,此时被更新的列只是bytes列。
dba_data_files中的maxbytes 值是在使用ALTER DATABASE command with MAXSIZE option 时才会被更新的。

Step-1: Create a New Tablespace
======  =======================

   SQL> create tablespace tst
     2  datafile 'd:\oracle\tst01.dbf' size 5m autoextend on;

   Tablespace created.

   SQL> select file_name, bytes, maxbytes, autoextensible from dba_data_files;

   FILE_NAME                                     BYTES   MAXBYTES AUT
   ---------------------------------------- ---------- ---------- ---
   D:\ORACLE\TST01.DBF                         5242880 1.7180E+10 YES

   1 rows selected.

Step-2: Alter the MAXSIZE value from default value
======  ==========================================

   SQL> alter database datafile 'd:\oracle\tst01.dbf' autoextend on maxsize 10m;

   Database altered.

   SQL> select file_name, bytes, maxbytes,a utoextensible from dba_data_files;

   FILE_NAME                                     BYTES   MAXBYTES AUT
   ---------------------------------------- ---------- ---------- ---
   D:\ORACLE\TST01.DBF                         5242880   10485760 YES

   1 rows selected.


Step-3: Resize the datafile to a value higher than MAXBYTES
======  ===================================================

   SQL> alter database datafile 'd:\oracle\tst01.dbf' resize 20m;

   Database altered.


   SQL> select file_name, bytes, maxbytes, autoextensible from dba_data_files;

   FILE_NAME                                     BYTES   MAXBYTES AUT
   ---------------------------------------- ---------- ---------- ---
   D:\ORACLE\TST01.DBF                        20971520   10485760 YES

   1 rows selected.


The value in BYTES column is GREATER than MAXBYTES.

参考:
Note:182097.1 SYS.FILE$ does not display the correct size for locally managed tablespace files

 

题话外:此时,该datafile(D:\ORACLE\TST01.DBF)能达到的最大大小是dba_data_files.bytes的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值