创建表空间的reuse

创建表空间时指定reuse属性:

SYS@PROD>create tablespace lfn_01 datafile '/u01/app/oracle/oradata/PROD/lfn_01.dbf' size 10m autoextend on extent management local segment space management auto;

Tablespace created.

SYS@PROD>create table lfn_01 tablespace lfn_01 as select * from scott.emp;

Table created.

SYS@PROD>select * from lfn_01;

     EMPNO ENAME      JOB              MGR HIREDATE            SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------ ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80           800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81          1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81          1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81          2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81          1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81          2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81          2450                    10
      7788 SCOTT      ANALYST         7566 19-APR-87          3000                    20
      7839 KING       PRESIDENT            17-NOV-81          5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81          1500          0         30
      7876 ADAMS      CLERK           7788 23-MAY-87          1100                    20
      7900 JAMES      CLERK           7698 03-DEC-81           950                    30
      7902 FORD       ANALYST         7566 03-DEC-81          3000                    20
      7934 MILLER     CLERK           7782 23-JAN-82          1300                    10

14 rows selected.

#增加一个数据文件

SYS@PROD>alter tablespace lfn_01 add datafile '/u01/app/oracle/oradata/PROD/lfn_02.dbf' size 1M reuse;

Tablespace altered.


#对已经存在的数据文件进行reuse.报错
SYS@PROD>alter tablespace lfn_01 add datafile '/u01/app/oracle/oradata/PROD/lfn_02.dbf' size 2M reuse;
alter tablespace lfn_01 add datafile '/u01/app/oracle/oradata/PROD/lfn_02.dbf' size 2M reuse
*
ERROR at line 1:
ORA-01537: cannot add file '/u01/app/oracle/oradata/PROD/lfn_02.dbf' - file already part of
database


SYS@PROD>alter tablespace lfn_01 add datafile '/u01/app/oracle/oradata/PROD/lfn_01.dbf' size 2M reuse;
alter tablespace lfn_01 add datafile '/u01/app/oracle/oradata/PROD/lfn_01.dbf' size 2M reuse
*
ERROR at line 1:
ORA-01537: cannot add file '/u01/app/oracle/oradata/PROD/lfn_01.dbf' - file already part of
database

#表空间离线 看是否可以reuse

alter tablespace lfn_01 offline;

SYS@PROD>alter tablespace lfn_01 offline;

Tablespace altered.


SYS@PROD>alter tablespace lfn_01 add datafile '/u01/app/oracle/oradata/PROD/lfn_01.dbf' size 2M reuse;
alter tablespace lfn_01 add datafile '/u01/app/oracle/oradata/PROD/lfn_01.dbf' size 2M reuse
*
ERROR at line 1:
ORA-01641: tablespace 'LFN_01' is not online - cannot add data file

#只有表空间时online的时候才可以添加数据文件

SYS@PROD>alter tablespace lfn_01 online;

Tablespace altered.

#删除表空间呢 删除数据文件的测试是没有意义的.我们只删除contents.

SYS@PROD>drop tablespace lfn_01 including contents;

Tablespace dropped.

#继续测试

SYS@PROD>create tablespace lfn_01 datafile '/u01/app/oracle/oradata/PROD/lfn_01.dbf' size 10m autoextend on;
create tablespace lfn_01 datafile '/u01/app/oracle/oradata/PROD/lfn_01.dbf' size 10m autoextend on
*
ERROR at line 1:
ORA-01119: error in creating database file '/u01/app/oracle/oradata/PROD/lfn_01.dbf'
ORA-27038: created file already exists
Additional information: 1

#报错数据文件存在,添加reuse
SYS@PROD>create tablespace lfn_01 datafile '/u01/app/oracle/oradata/PROD/lfn_01.dbf' size 10m reuse autoextend on;

Tablespace created.


reuse 重用指的是在新建表空间的时候重用以前被删除的某个表空间下的数据文件.


猜你喜欢

转载自blog.csdn.net/lv941002/article/details/82927858