考虑声明为
的初始表空间CREATE TABLESPACE tbs_perm_02
DATAFILE 'tbs_perm_02.dat'
SIZE 10M
REUSE
AUTOEXTEND ON NEXT 10M MAXSIZE 200M;
声明的空间已用尽,我需要添加更多数据文件。
作为
ALTER TABLESPACE tbs_perm_02
ADD DATAFILE 'tbs_perm_02.dat'
SIZE 20M
AUTOEXTEND ON;
这里的要点是表格位置已经用尽其最初声明的10M Plus 200M值。但是当我们使用扩展数据文件改变表空间时,这会有效吗?或者在这种情况下是否存在另一种扩展或改变的方式。
答案 0 :(得分:3)
这不起作用,因为您添加的数据文件与第一个数据文件具有相同的名称。 size / autoextend / maxsize - 子句引用数据文件,而不是表空间。因此数据文件已耗尽,而不是表空间。您可以向表空间添加第二个数据文件
ALTER TABLESPACE tbs_perm_02 ADD DATAFILE 'tbs_perm_02_02.dat'
SIZE 20M AUTOEXTEND ON NEXT 10M MAXSIZE 200M;
或者您可以更改表空间数据文件的MAXSIZE
ALTER DATABASE DATAFILE 'tbs_perm_02.dat' RESIZE
AUTOEXTEND ON NEXT 10M MAXSIZE 400M;
答案 1 :(得分:0)
数据文件可以是文件系统或ASM存储的一部分。如果数据库使用的是ASM存储,则需要检查磁盘组名称以添加数据文件。
在ASM中转到add datafile的地方:
检查磁盘组位置以添加数据文件:
显示参数db_create_filedest;
ALTER TABLESPACE tablespace_name ADD DATAFILE 'LOCATION' SIZE 10M AUTOEXTEND ON MAXSIZE 10G;
最大大小:对于8k块大小,最大为32G,对于16K块大小,最大为64G。
要添加位于file_system上的数据文件:
select file_name, bytes/1024/1024/1024,MAXBYTES/1024/1024/1024, autoextensible from dba_data_files where TABLESPACE_NAME='&TABLESPACE_NAME';
ALTER TABLESPACE tablespace_name ADD DATAFILE 'location' SIZE 10M AUTOEXTEND ON MAXSIZE 10G;
例如:
ALTER TABLESPACE tablespace_name ADD DATAFILE '/U01/ORACLE/DATAFILES/TESTDB/users02.dbf' SIZE 10M AUTOEXTEND ON MAXSIZE 10G;