如何将数据文件添加到已经满的表空间中?

JLP*_*JLP 1 oracle oracle12c

考虑初始表空间声明为

CREATE TABLESPACE tbs_perm_02
  DATAFILE 'tbs_perm_02.dat' 
    SIZE 10M
    REUSE
    AUTOEXTEND ON NEXT 10M MAXSIZE 200M;
Run Code Online (Sandbox Code Playgroud)

声明的空间已耗尽,我需要添加更多数据文件。

作为

ALTER TABLESPACE tbs_perm_02
ADD DATAFILE 'tbs_perm_02.dat'
  SIZE 20M
  AUTOEXTEND ON;
Run Code Online (Sandbox Code Playgroud)

这里的要点是,表位已经用完其最初声明的 10M 加 200M 的值。但是当我们用扩展数据文件更改表空间时,这会起作用吗?或者在这种情况下有其他方法可以扩展或改变。

mir*_*173 7

这将不起作用,因为您添加的数据文件与第一个数据文件具有相同的名称。size/autoextend/maxsize - 子句指的是数据文件,而不是表空间。所以数据文件被耗尽,而不是表空间。您可以将第二个数据文件添加到表空间中

ALTER TABLESPACE tbs_perm_02 ADD DATAFILE 'tbs_perm_02_02.dat' 
    SIZE 20M AUTOEXTEND ON NEXT 10M MAXSIZE 200M;
Run Code Online (Sandbox Code Playgroud)

或者您可以更改表空间数据文件的 MAXSIZE

ALTER DATABASE DATAFILE 'tbs_perm_02.dat' RESIZE 
    AUTOEXTEND ON  NEXT 10M  MAXSIZE 400M;
Run Code Online (Sandbox Code Playgroud)