重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3806|回复: 0
打印 上一主题 下一主题

[Oracle] oracle数据文件的bytes与maxbytes

[复制链接]
跳转到指定楼层
楼主
发表于 2020-6-21 18:16:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
--创建表空间,指定数据文件初始大小10M,开启自动扩展,最大大小20M。
SQL> create tablespace tbs_Test datafile 'd:\tbs01.dbf' size 10m autoextend on maxsize 20m;

表空间已创建。

SQL> create table tttt tablespace tbs_test as select * from dba_objects;

表已创建。

SQL> col segment_name for a50
SQL> col file_name for a50
SQL>  select segment_name,bytes/1024/1024 from dba_segments where SEGMENT_name='TTTT';

SEGMENT_NAME                                       BYTES/1024/1024
-------------------------------------------------- ---------------
TTTT                                                            13

--可以看出,创建的表占空间13M,超出了初始大小。


SQL> select file_name,file_id,maxbytes/1024/1024 from dba_data_files;

FILE_NAME                                             FILE_ID MAXBYTES/1024/1024
-------------------------------------------------- ---------- ------------------
C:\APP\ORACLE\ORADATA\ORCL\SYSTEM01.DBF                     1         32767.9844
C:\APP\ORACLE\ORADATA\ORCL\SYSAUX01.DBF                     3         32767.9844
C:\APP\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF                    5         32767.9844
C:\APP\ORACLE\ORADATA\ORCL\USERS01.DBF                      6         32767.9844
C:\APP\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF                    7         32767.9844
C:\APP\ORACLE\ORADATA\ORCL\SECURE_TBS01.DBF                 8                  0
C:\APP\ORACLE\ORADATA\ORCL\TBS_BIG01.DBF                    9           33554432
C:\APP\ORACLE\ORADATA\ORCL\TT01.DBF                        10                  0
C:\APP\ORACLE\ORADATA\ORCL\TTS01.DBF                       11                  0
C:\APP\ORACLE\ORADATA\ORCL\UNDOTBS02.DBF                   12                  0
D:\TBS01.DBF                                               13                 20

已选择 11 行。

SQL> select file_name,file_id,maxbytes/1024/1024 from dba_data_files where file_id=13;

FILE_NAME                                             FILE_ID MAXBYTES/1024/1024
-------------------------------------------------- ---------- ------------------
D:\TBS01.DBF                                               13                 20
--数据文件(FILE_IDY为13)的最大大小为20M



--再次插入报空间不足,证明此次插入无法超过MAXSIZE(20M)的限制。
SQL> insert into tttt select * from tttt;
insert into tttt select * from tttt
            *
第 1 行出现错误:
ORA-01653: 表 SYS.TTTT 无法通过 128 (在表空间 TBS_TEST 中) 扩展

--修改数据文件大小为30M
SQL> alter database datafile 'd:\tbs01.dbf' resize 30m;

数据库已更改。

SQL> select file_name,file_id,maxbytes/1024/1024 from dba_data_files where file_id=13;

FILE_NAME                                             FILE_ID MAXBYTES/1024/1024
-------------------------------------------------- ---------- ------------------
D:\TBS01.DBF                                               13                 20
--修改数据文件大小为30M后,数据文件字典信息中最大大小没有变化,还是20M。此时还能插入吗?


SQL> insert into tttt select * from tttt;

已创建 91923 行。
--证明可以继续插入,文件大小(30M)超出了最大大小(20M)时,还是以30M为限制 。



SQL> insert into tttt select * from tttt;
insert into tttt select * from tttt
第 1 行出现错误:
ORA-01653: 表 SYS.TTTT 无法通过 128 (在表空间 TBS_TEST 中) 扩展

--继续插入报错,因此超出了30M的限制



SQL>  select segment_name,bytes/1024/1024 from dba_segments where SEGMENT_name='TTTT';

SEGMENT_NAME                                       BYTES/1024/1024
-------------------------------------------------- ---------------
TTTT                                                            29


--修改文件的最大大小为50M
SQL> alter database datafile 'd:\tbs01.dbf' autoextend on maxsize 50m;

数据库已更改。

SQL> select file_name,file_id,maxbytes/1024/1024 from dba_data_files where file_id=13;

FILE_NAME                                             FILE_ID MAXBYTES/1024/1024
-------------------------------------------------- ---------- ------------------
D:\TBS01.DBF                                               13                 50

--继续插入
SQL> insert into tttt select * from tttt;

已创建 183846 行。

--可以插入成功。



总结:
数据文件参数 bytes 和 maxbytes,在数据插入中会选择值大的为最大限制。
但修改bytes(resize)时不会修改数据字典maxbytes的值。但这之中,是以两个值中较大的值作为最大限制






分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-26 22:52 , Processed in 0.117670 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表