Oracle数据文件管理
1.数据文件概述
Oracle数据库的数据文件(扩展名为DBF的文件)是用于保存数据库中数据的文件,系统数据、数据字典数据、临时数据、索引数据、应用数据等都物理地存储在数据文件中。用户对数据库中数据的操作,例如数据的插入、删除、修改和查询等,其本质都是对数据文件进行操作。所有数据文件占据空间的大小决定了数据库容量的大小。
在Oracle数据库中,为了提高系统运行效率,用户并不是直接对数据文件进行操作,而是由数据库进程将用户需要的数据先由数据文件读取到数据高速缓冲区缓存,然后再从数据高速缓冲区将数据返回给用户,这样可以提高系统的复用性,减少磁盘I/O。如果用户修改了数据高速缓冲区中的数据,在一定条件下由DBWR进程将脏数据写入数据文件。这种“先内存后外存”的方式极大地提高了系统的运行效率。
在Oracle数据库中,虽然数据文件依附于表空间而存在,但是可以对数据文件进行独立的管理,包括数据文件测创建、数据文件大小的修改、数据文件脱机与联机操作、数据文件名称与位置的改变、数据文件的删除以及数据文件信息查询等。
Oracle数据库中有一种特殊的数据文件,称为临时数据文件,属于数据库的临时表空间。临时数据文件中的内容是临时性的,在一定条件下自动释放。于临时文件相对应,其他数据文件都称为永久性数据文件。
在Oracle数据库中,数据文件是依附于表空间而存在的。一个表空间可以包含一个或多个数据文件,但一个数据文件只能从属于一个表空间。在逻辑上,数据库由表空间构成;在物理上,数据库由数据文件构成。
2.数据文件的管理准则
数据文件的管理准则主要包括合理设置数据文件的数量、数据文件的大小及数据文件的存储位置3个方面。
2.1确定数据文件的数量
2.2确定数据文件大小
创建一个表空间时应该估计数据库对象所需空间的潜在大小,以确定数据文件的大小。在数据库运行过程中,可以根据需要向表空间添加新的数据文件或修改数据文件大小以扩展表空间。确定数据文件大小时,要结合考虑磁盘剩余空间大小及其使用情况。
2.3设置数据文件的存储位置
由于对数据库的操作最终转换为对数据文件的操作,因此在数据库运行过程中对数据文件会进行频繁的读写操作。为了提高I/O效率,消除竞争,应该合理地分配数据文件的存储位置。
1)将需要并行访问的数据文件放置在不同的硬盘上,提高系统读写的效率。
2)将数据文件与控制文件。重做日志文件分散存储于不同的磁盘上,既可以提高数据库的运行效率,又可以减少数据库发生介质故障时的损毁程度。在数据库运行过程中,系统需要并行操作数据文件、控制文件和重做日志文件,将这些物理文件分散于不同的磁盘,可以实现并行操作,提高系统运行效率。
3.创建数据文件
由于在Oracle数据库中,数据文件是依附于表空间而存在的,因此创建数据文件的过程实质上就是向表空间添加数据文件的过程。可以在创建数据库、创建表空间时创建数据文件,也可以在数据库运行与维护过程中为表空间添加数据文件。应该根据表空间要存储的数据库对象大小、磁盘个数及剩余空间等情况,决定数据文件的数量与大小。
4.修改数据文件大小
4.1数据文件的自动扩展
在Oracle数据库中,随着数据库中数据容量的变化,可以调整数据文件的大小。改变数据文件大小的方法有两种,一种是设置数据文件的自动扩展方式,另一种是重新设定数据文件大小。
4.2手动改变数据文件大小
在Oracle数据库中,数据文件创建后可以手工修改数据文件的大小。如果数据库存储空间不足,可以通过增加数据文件大小的方式来解决,而不需要为数据库新建数据文件,这对于数据文件数量已经达到数据库极限数量的情况非常有效。如果数据文件空间有大量剩余,可以采用减小数据文件的方法回收存储空间,避免存储空间的浪费。手动改变数据文件大小的方法对大文件表空间的扩展更为有益,因为不能为大文件表空间添加新的数据文件。
5.改变数据文件的名称与位置
数据文件创建后,可以改变它们的名称与位置。通过重命名或移动数据文件,可以在不改变数据库逻辑存储结构的情况下,对数据库的物理存储结构进行调整。
改变数据文件名称与位置的操作可以在表空间级别进行,也可以在数据库级别进行。在表空间级别进行是指改变数据文件名称与位置的操作只影响当前表空间的应用,不影响其他表空间的应用。在数据库级别进行是在数据库处于加载状态下进行的,此时数据库还没有打开,所有的应用都将停止。
6删除数据文件
可以使用下列语句删除表空间中指定的空的数据文件。
ALTER TABLESPACE......DROP DATAFILE:删除永久表空间中指定的空的数据文件。
ALTER TABLESPACE......DROP TEMPFILE:删除临时表空间中指定的空的临时数据文件。
所谓空的数据文件或空的临时数据文件是指为该文件分配的所有区都被回收。删除数据文件或临时数据文件的同事,将删除控制文件和数据字典中与该数据文件相关信息,同时将删除操作系统中对应的物理文件。
删除数据文件或临时数据文件时受到下列一些约束:
- 数据库必须运行在打开状态。
- 数据文件必须是空的。如果要删除一个非空的数据文件,可用通过删除数据文件所属表空间来实现。
- 不能删除表空间的第一个或唯一的一个数据文件。
- 不能删除从字典管理方式移植到本地管理方式的只读表空间中的数据文件。
- 不能删除SYSTEM表空间中的数据文件。
- 不能删除本地管理表空间中处于脱机状态的数据文件。
Oracle数据文件管理的更多相关文章
- Oracle 数据文件管理
1.手工改变数据文件的大小 SQL>conn / as sysdba SQL>Createtablespace exampletb Datafile 'E:\ examp01.dbf' s ...
- Oracle日志文件管理与查看
Oracle日志文件管理与查看 from:http://hi.baidu.com/shuker/item/25ee611ee960c7426826bb1f 1.查询系统使用的是哪一组日志文件: sel ...
- Oracle11g温习-第九章:表空间和数据文件管理
2013年4月27日 星期六 10:37 1.tablespace 功能:从逻辑上简化数据库的管理 2.tablespace 概述 一个database 对应多个tablespace ,一个table ...
- [20190530]oracle Audit文件管理.txt
[20190530]oracle Audit文件管理.txt --//昨天听课,讲一些oracle相关安全的问题,对方提到audit file的管理,应该引入OS audit,这样目的是仅仅root查 ...
- Oracle数据泵(Data Dump)错误汇集
Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法.都是在使用过程中遇到的问题,以后陆 ...
- [转]Oracle数据块体系的详细介绍
数据块概述Oracle对数据库数据文件(datafile)中的存储空间进行管理的单位是数据块(data block).数据块是数据库中最小的(逻辑)数据单位.与数据块对应的,所有数据在操作系统级的最小 ...
- oracle数据导入/导出
Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据 ...
- Oracle数据访问组件ODAC的安装方法
Oracle数据访问组件ODAC(Oracle Data Access Components)顾名思义就是用来访问Oracle数据库的小程序.我们可以编程调用这些组件来实现在没有安装Oracle数据库 ...
- oracle表分区、表分析及oracle数据泵文件导入导出开心版
1.先说oracle表分区是什么吧,这样吧我们来举个桃子,栗子太小,我们就不举了,我们来举个桃子. 你有500万份文件,你要把他存在磁盘上,好嘛,我们就一个文件夹,500万分文件在那儿杵着,我们想找到 ...
随机推荐
- VIM Taglist安装配置和使用
问题描述: VIM Taglist安装于配置 问题解决: (1)安装Taglist包 (2)解压taglist压缩包 (3)将 ...
- Reactjs相比较原生方案是绝对的快吗?哪些情况下React有优势
作者:尤雨溪链接:http://www.zhihu.com/question/31809713/answer/53544875来源:知乎著作权归作者所有,转载请联系作者获得授权. 1. 原生 DO ...
- 数据库范式(1NF 2NF 3NF BCNF)
http://blog.csdn.net/xuxurui007/article/details/7738330 http://www.cnblogs.com/laodao1/archive/2009/ ...
- HTML中动态图片切换JQuery实现
相信很多同学都注意到了,各大新闻或者娱乐网站都含有动态图片切换,那个漂亮的感觉让刚刚学习html的人,都非常好奇和心动.那下面就让我们看一下到底如何实现动态图片切换呢?看一下百度贴吧的效果图吧~ // ...
- Unity3D研究院之IOS全自动编辑framework、plist、oc代码
Unity打IOS时会先生成一个Xcode工程,如果你需要增加一些第三方的framework那么需要手动一条一条的添加,这太烦了..而且可能你还需要修改Plist文件,甚至还可能要修改unity自动生 ...
- android Notification定义与应用
首先要明白一个概念: Intent 与 PendingIntent 的区别: Intent:是意图,即告诉系统我要干什么,然后做Intent应该做的事,而intent是消息的内容 PendingInt ...
- POJ 3270 Cow Sorting(置换群)
题目链接 题意 : N头牛,每个牛的坏脾气都有一个值,每个值都不相同,把这个值按照从小到大排序,如果两个值交换,那么会花掉这两个值之和的时间,让你花最少的时间将每个值从小到大排好序,求最小的总时间. ...
- ubuntu安装google 输入法
12.04 LTS Precise sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4 sudo apt-get in ...
- lintcode :Segmemt Tree Build II
题目 Segmemt Tree Build II The structure of Segment Tree is a binary tree which each node has two attr ...
- [hackerrank]Manasa and Stones
https://www.hackerrank.com/contests/w2/challenges/manasa-and-stones 简单题. #include<iostream> us ...