Oracle表空间创建参数说明

当我们对表空间添加数据文件的时候,有一个reuse属性。 10g的官网对这个参数的说明如下:

REUSE

Specify REUSE to allow Oracle to reuse an existing file.

(1)If the file already exists, then Oracle reuses the filename and applies the new size (if you specify SIZE) or retains the original size.

--如果file已经存在,并且在创建时指定了file size,那么就重用原文件,并应用新的size,如果没有指定file size,则保留原有的大小。

(2)If the file does not exist, then Oracle ignores this clause and creates the file.

--如果file不存在,oracle将忽略该参数。

Restriction on the REUSE Clause

You cannot specify REUSE unless you have specified filename.

Whenever Oracle uses an existing file, the previous contents of the file are lost.

--如果Oracle使用了已经存在的file,那么之前file里的数据将全部丢失。

From:

在Oracle 11g的官方文档里没有搜到相关的信息。 因为手头还没有11g的库,所以也不好测试。 这篇blog里测试的是基于Oracle 10g环境。

下面我们来做一些测试:

1.创建一个表空间Dave

SQL> show user;

USER is "SYS"

SQL> create tablespace dave datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' size 100M;

Tablespace created.

2.创建表anqing,并指定存储表空间dave

SQL> create table anqing tablespace dave as select * from dba_objects;

Table created.

SQL> commit;

Commit complete.

SQL> select count(*) from anqing;

COUNT(*)

50391

SQL> set wrap off;

SQL> select owner,table_name,tablespace_name from dba_tables where table_name='ANQING';

OWNERTABLE_NAMETABLESPACE_NAME

------------------------------ ------------------------------ ------------------

3.对表空间dave添加一个新的数据文件,并使用reuse

SQL>alter tablespace dave add datafile '/u01/app/oracle/oradata/dave2/dave02.dbf' reuse;

alter tablespace dave add datafile '/u01/app/oracle/oradata/dave2/dave02.dbf' reuse

*

ERROR at line 1:

ORA-01119: error in creating database file '/u01/app/oracle/oradata/dave2/dave02.dbf'

ORA-17610: file '/u01/app/oracle/oradata/dave2/dave02.dbf' does not exist and no size specified ORA-27037: unable to obtain file status Linux Error: 2: No such file or directory Additional information: 3

--这种情况下,如果文件存在,会使用原始文件的大小。但dave02.dbf不存在,我们又没有指定文件大小,所以无法创建。我们指定size就可以创建了。

SQL> alter tablespace dave add datafile '/u01/app/oracle/oradata/dave2/dave02.dbf' size 50M reuse;

Tablespace altered.

SQL>

4.保持表空间的状态,然后使用reuse来添加数据文件https://www.cndba.cn/Dave/article/1140

SQL>alter tablespace dave add datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' size 50M reuse;

alter tablespace dave add datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' size 50M reuse

*

ERROR at line 1:

ORA-01537: cannot add file '/u01/app/oracle/oradata/dave2/dave01.dbf' - file already part of database

--报错,所以即使我们需要使用reuse,前提也是该数据文件已经不存在该表空间了。

5.先将datafile offline drop,在reuse

offline drop并不会drop datafile,仅仅是将datafile标记为offline,我们online之后还可以recover回来。 具体参考:

alter database datafile offline drop与alter tablespace drop datafile区别

SQL> alter database datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' offline drop;

Database altered.

SQL> alter tablespace dave add datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' size 50M reuse;

alter tablespace dave add datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' size 50M reuse

*

ERROR at line 1:

ORA-01537: cannot add file '/u01/app/oracle/oradata/dave2/dave01.dbf' - file already part of database

--依旧报错,因为此时数据文件dave01.dbf的信息还记录在数据字典里。

--将数据文件还原回来

SQL> alter database datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' online;

alter database datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' online

*

ERROR at line 1:

ORA-01113: file 6 needs media recovery

ORA-01110: data file 6: '/u01/app/oracle/oradata/dave2/dave01.dbf'

SQL> recover datafile 6;

Media recovery complete.

6.使用alter tablespace dave drop datafile命令

该命令在删除控制文件和物理文件,所以没有可用的意义。

SQL> alter tablespace dave drop datafile'/u01/app/oracle/oradata/dave2/dave02.dbf';

Tablespace altered.

[oracle@db2 dave2]$ pwd

/u01/app/oracle/oradata/dave2

[oracle@db2 dave2]$ ls

control01.ctlcontrol03.ctlexample01.dbfredo01.logredo03.logsystem01.dbfundotbs01.dbf

control02.ctldave01.dbfhuaining01.dbfredo02.logsysaux01.dbftemp01.dbfusers01.dbf

--文件已经不存在

https://www.cndba.cn/Dave/article/1140

7.删除表空间后,在reuse

命令如下:

SQL>drop tablespace dave including contents and datafiles;

该命令也可以指定同时删除物理文件,但那样我们的测试就没办法完成,所以我们不删除datafile,仅从控制文件里删除表空间。

SQL> drop tablespace dave including contents;https://www.cndba.cn/Dave/article/1140https://www.cndba.cn/Dave/article/1140

Tablespace dropped.

SQL> create tablespace dave2 datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' size 50M reuse;

Tablespace created.

--重用成功

看一下数据文件大小:

[oracle@db2 dave2]$ ll -h dave01.dbf

-rw-r----- 1 oracle oinstall 51M Jun3 04:31 dave01.dbf

我们之前是100M,现在变成50M了。

-------------------------------------------------------------------------------------------------------

Blog:http://blog.csdn.net/tianlesoftware

Email: dvd.dba@gmail.com

DBA1群:62697716(满);DBA2群:62697977(满)DBA3群:62697850(满)

DBA超级群:63306533(满);DBA4群:83829929DBA5群:142216823

DBA6群:158654907聊天 群:40132017聊天2群:69087192

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

版权声明:本文为博主原创文章,未经博主允许不得转载。

oracle 11g

oracle datafilereuse,Oracle 数据文件 reuse 属性 说明相关推荐

  1. Oracle BBED单个数据文件跳过所有归档恢复

    场景描述: 数据库利用备份进行恢复时,需要执行restore+recover,restore利用备份片恢复数据文件,recover是进行归档日志应用到最新状态,当我们所有归档日志丢失时,可以利用bbe ...

  2. oracle 磁盘不分区吗,LINUX停ORACLE软件、数据文件等所在的磁盘分区空间不足的解决思路...

    LINUX下ORACLE软件.数据文件等所在的磁盘分区空间不足的解决思路 虚拟机中的ORACLE运行的久了,归档.数据文件不断增长,原来安装ORACLE的分区空间不足. 此时可以重新向虚拟机增加一块硬 ...

  3. oracle恢复指定数据文件,Oracle特殊恢复-BBED修改某个数据文件头

    Oracle数据文件头中的scn要与控制文件中的scn一致,数据库才可以open,在open过程中我们可以通过bbed来修改某个数据文件头的scn,来欺骗oracle,来open库. 1.环境如下 使 ...

  4. 浅谈Oracle中物理结构(数据文件等。。。)与逻辑结构(表空间等。。。。。)

    初始Oracle时很难理解其中的物理结构和逻辑结构,不明白内存中和硬盘中文件的区别和联系,我也是初学Oracle,这里就简单的谈谈我我看法. 首先,你需要明白的一点是:数据库的物理结构是由数据库的操作 ...

  5. oracle表独立数据文件,oracle表空间及数据文件

    1. Oracle 的逻辑结构 数据库的物理结构是由数据库的操作系统文件所决定,每一个 Oracle 数据库是由三种类型的文件组成:数据文件.日志文件和控制文件.数据库的文件为数据库信息提供真正的物理 ...

  6. oracle表空间文件离线,oracle 表空间 数据文件 笔记

    数据文件命令 Enabling and Disabling Automatic Extension for a Datafile: ALTER TABLESPACE users ADD DATAFIL ...

  7. oracle数据库单个数据文件的大小限制

    之前没有仔细想过这个问题,因为总是不会用到,也没有犯过类似错误. 顺便提一下学习方法吧. 卤肉的学习方法是:常用知识点,熟悉理论并反复做实验,深入理解:不常用的知识点,相关内容都了解大概,遇到问题时想 ...

  8. oracle 如何添加数据文件,Oracle教程 误添加数据文件删除方法

    如果是在Oracle10g之前,删除一个表空间中的数据文件后,其文件在数据库数据字典中会仍然存在,除非你删除表空间,否则文件信息不会清除. 但是从Oracle10gR2开始,Oracle允许我们彻底删 ...

  9. oracle重新恢复数据库,重新安装oracle根据原数据文件恢复数据库

    个人重新安装系统,数据文件保留,在重新安装oracle 后,需要根据现有文件恢复现有数据库. 假设我的数据库数据文件在D:\oracle\product\10.2.0\oradata\orcl\目录下 ...

最新文章

  1. 创建第一个 local network(I) - 每天5分钟玩转 OpenStack(80)
  2. javascript——Array类型
  3. R语言使用hexSticker包将lattice包可视化的结果转换为六角图(六角贴、六角形贴纸、lattice plot to hex sticker)
  4. SQL Server2005重装Performance Monitor Counter 的问题解决
  5. markdown 笔记
  6. java-retry实现
  7. 三周第三次课 3.7 su命令 3.8 sudo命令 3.9 限制root远程登录
  8. Android Bundle类别
  9. http安全 Java_HTTP通信安全-身份验证 | 字痕随行
  10. Java word 内容读取
  11. 腾讯云加码 IDaaS,加速 SaaS 时代进程
  12. 批处理删除指定文件夹中的指定类型文件
  13. vue 自动播放语音
  14. 从服务器取文件的命令,ftp 服务器取文件命令
  15. matlab gram-schmidt,性能 – 加权Gram-Schmidt正交化的MATLAB优化
  16. Java网络 1.3 开发工具介绍
  17. 纽约州立石溪分校计算机科学排名,美国纽约州立大学石溪分校排名~值得一看~...
  18. 加密货币是货币,而非股权
  19. 201571030337/201571030327——《小学生四则运算》结对项目报告
  20. MF_RC522及S50卡学习

热门文章

  1. Windows程序闪退Windows日志捕获Kernelbase模块错误
  2. 基于jquery实现拆分姓名的方法
  3. 调焦后焦实现不同距离成像_“物镜校正环调节”对显微成像的影响
  4. 连接MongoDB 3.x 报 Authorization failed 解决办法(创建账号的部分亲测)
  5. 云上如何做冷热数据分离
  6. PHP超全局变量$_ENV详解,及$_ENV为空的可能原因
  7. Git新建临时分支进行开发后合并至master
  8. JQUERY设置或返回属性值attr
  9. python程序的执行顺序_Python方法中的执行顺序
  10. 锐捷升级最新版本出现虚拟网卡安装失败?