标签:
it/科技 |
分类: oracle |
SQL> select file_name,bytes,maxbytes
FILE_NAME
-------------------------------------- ---------- ----------
F:\TEST1.ORA
SQL> select
file_name,bytes,maxbytes,autoextensible
FILE_NAME
-------------------------------------- ---------- ----------
---
F:\TEST1.ORA
当缺省autoextend on(off)参数的时候默认值为 no,即不自动扩展
SQL> drop tablespace test_1 including contents and datafiles;
我们再在create tablespace里指定autoextend off
SQL> create tablespace test_1
表空间已创建。
SQL> select
file_name,bytes,maxbytes,autoextensible
FILE_NAME
-------------------------------------- ---------- ----------
---
F:\TEST1.ORA
此时数据文件也不自动扩展,同样也没有最大值maxbytes
我们将datafile resize下看autoextend及maxbytes
SQL> alter database datafile 'f:\test1.ora' resize 6m;
数据库已更改。
SQL> select
file_name,bytes,maxbytes,autoextensible
FILE_NAME
-------------------------------------- ---------- ----------
---
F:\TEST1.ORA
然后我们改变autoextend为on,但是不指定具体的maxbytes
SQL> alter database datafile 'f:\test1.ora' autoextend on;
数据库已更改。
SQL> select
file_name,bytes,maxbytes,autoextensible
FILE_NAME
-------------------------------------- ---------- ----------
---
F:\TEST1.ORA
可见目前maxbytes已经有了值,但是因为没有指定值,因而系统给了一个默认值
我们再来给maxbytes指定一个值
SQL> alter database datafile 'f:\test1.ora' autoextend on maxsize 10m;
数据库已更改。
SQL> select
file_name,bytes,maxbytes,autoextensible
FILE_NAME
-------------------------------------- ---------- ----------
---
F:\TEST1.ORA
可以看到maxbytes已经为我们指定的值,这就说明maxbytes是与autoextend on 相关的
SQL> alter database datafile 'f:\test1.ora'
autoextend off maxsize 10m;
alter database datafile 'f:\test1.ora' autoextend off maxsize
10m
ERROR 位于第 1 行:
ORA-00900: 无效 SQL 语句
当同时指定autoextend off与maxsize 的时候就会出错
我们再来试一下
SQL> alter database datafile 'f:\test1.ora' autoextend off;
数据库已更改。
SQL> select
file_name,bytes,maxbytes,autoextensible
FILE_NAME
-------------------------------------- ---------- ----------
---
F:\TEST1.ORA
当改变autoextend值为off的时候maxsize的值又归为0
再看resize与maxsize
SQL> create tablespace test1
SQL> select
file_name,bytes,maxbytes,autoextensible
FILE_NAME
-------------------------------------- ---------- ----------
---
F:\TEST1.ORA
SQL> alter database datafile 'f:\test1.ora' resize 6m;
数据库已更改。
这说明我们可以手动更改datafile的大小在maxbytes的范围外,只有自动扩展的时候maxbytes起作用,手动修改了size的大小,在存储数据时可以超过maxbytes的限制
SQL> select
file_name,maxbytes/1024/1024 max_m,bytes/1024/1024 byte_m
FILE_NAME
-------------------------------------- ---------- ----------
F:\TEST1.ORA
这个size的大小已经超出了maxsize限定的范围,我们再来看看在表空间test1里唯一的表的大小
SQL> select segment_name
,sum(bytes)/1024/1024 byte_m
SEGMENT_NAME
------------------ ----------
TEST1_1
表的大小已经是5M,说明数据文件的容量是6M,但是超过6M的数据是不能被存储的