数据文件的设置与管理

---------------数据文件介绍:

                   oracle 数据库的数据文件(扩展名为  DBF 的文件)是用于保存数据库中数据的文件,系统数据、数据字典数据、临时数据、索引数据、应用数据等都物理

           地存储在数据文件中。oracle 数据库所占用的空间主要就是数据文件所占用的空间。用户对数据库的操作,例如数据的插入、删除、修改和查询等,其本质都是

           对数据文件进行操作。

                    oracle 数据库中有一种特殊的数据文件,称为临时数据文件,属于数据库的临时表空间。临时数据文件中的内容是临时性的,在一定条件下自动释放。

---------------创建数据文件:

                   由于在oracle 数据库中,数据文件是依附于表空间而存在的,因此创建数据文件的过程实质上就是向表空间添加文件的过程。在创建数据文件时应该根据数据

            量的大小确定文件的大小和文件的增长方式。

                    向表空间中添加数据文件:alter   tablespace ....add datafile

                    向临时表空间中添加临时数据文件:alter tablespace ... add  tempfile

                     例如:向案例数据库的 users 表空间中添加一个大小为  10MB  的数据文件

                    SQL>alter  tablespace users add datafile '.......USRERS_3.DBF' size 1M;

                    例如:向案例数据库的 TEMP 表空间中添加一个大小为 5MB 的临时数据文件

                    SQL>alter tablespace temp add tempfile '......temp.DBF' sieze 5M;

                   注意:若所指定的数据文件已经存在,可以使用 REUSE  子句进行覆盖

---------------修改数据文件的大小:

                   在oracle 11g 数据库中,随着数据库中数据容量的变化,可以调整数据文件的大小。改变数据文件大小的方法包括:设置数据文件为自动增长方式及

             手动重置数据文件大小。

---------------改变数据文件的可用性:

                   可以通过将数据文件联机或脱机来改变数据文件的可用性。处于脱机状态的数据文件对数据库来说是不可用的,直到它们被恢复为联机状态。

                  下面几种情况需要改变数据文件的可用性:

                 》》要进行数据文件的脱机备份时,需要先将数据文件脱机

                 》》需要重命名数据文件或改变数据文件的位置时,需要先将数据文件脱机

                 》》如果oracle 在写入某个数据文件时发生错误,会自动将数据文件设置为脱机状态,并且记录在警告文件中。排除故障后,需要以手动方式重新

                       将数据文件恢复为联机状态

                 》》数据文件丢失或损坏,需要在启动数据库之前将数据文件脱机

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

               在归档模式下:

               设置数据文件的联机或脱机状态: alter  database datafile .... online| offline

               设置临时文件的联机或脱机状态:alter database tempfile ...online | offline

               《案例》

              在数据库的归档模式下,将案例数据库 users 表空间的数据文件 USERS02.DBF 脱机

               SQL> alter database datafile  '..........USERS02.DBF'  offline;

              《案例》

               将案例数据库USERS 表空间的数据文件 USERS02.DBF 联机

               SQL> alter database datafile  '..........USERS02.DBF'  online;

               注意:在归档模式下,将数据文件联机之前需要使用   recover datafile 对数据文件进行恢复

               例如:

                SQL>recover datafile '.......USERS02.DBF' ;

------------改变数据文件的名称或位置:

               在数据文件建立之后,还可以改变它们的名称和位置。通过重命名或移动数据文件,可以在不改变数据库逻辑

        存储结构的情况下对数据库的物理存储结构进行调整。

               》》如果要改变的数据文件属于同一个表空间,则使用 alter tablespace   表空间名  rename    datafile  '.......DBF'  to   '........DBF';

               》》如果要改变的数据文件属于多个表空间,则使用 alter database rename file '.......DBF'  to '......DBF'

               注意:改变数据文件的名称或位置时,oracle 只是改变记录在控制文件和数据字典中的数据文件信息,并没有改变操作系统中数据文件的

              名称和位置,因此需要 DBA 手动更改操作系统中文件的名称和位置。

              1.改变同一个表空间中的数据文件的名称和位置

                 改变同一个表空间中的数据文件的名臣或位置,可以在表空间级别进行,将改变数据文件名称或位置的操作对系统的影响降低到最小。其步骤为

                (1)、将数据文件所属表空间设置为脱机状态

                (2)、在操作系统中改变数据文件的名称或位置

                (3)、执行alter tablespace   表空间名  rename    datafile  '.......DBF'  to   '........DBF'; ,修改数据字典和控制文件中与该数据文件相关的信息

                (4)、将数据文件所属表空间设置为联机状态

                 《案例》

                    将案例数据库中  USERS 表空间的数据文件   USER01.DBF 移动到  D:\ORADATA 目录中:

                   SQL>alter tablespace  USERS offline;

                   SQL>host copy  D:\HUMAN_RESOURCE\ USER01.DBF    D:\ORADATA\USER01.DBF;     (在操作系统中复制文件)

                   SQL>alter tablespace USERS  rename datafile  'D:\HUMAN_RESOURCE\ USER01.DBF'  to 'D:\ORADATA\USER01.DBF';

                   SQL>alter tablespace USERS online;

               2.改变多个表空间的数据文件的名称或位置

                   如果需要修改多个表空间中数据文件的名称或位置,可以以表为单位分别进行修改也可以在数据库级别进行,一次性完成所有的数据文件名称

                或位置的修改。

                   如果要在数据库级别一次性完成所有数据文件名称或位置的修改,必须关闭数据库,将数据库启动到加载(MOUNT)状态下进行。步骤为:  

                  (1)、关闭数据库

                  (2)、启动数据库到加载状态(MOUNT)

                  (3)、在操作系统中修改数据文件的名称或位置

                  (4)、执行 alter database rename file '.......DBF'  to '......DBF' ,修改数据字典和控制文件与这些数据文件相关的信息

                  (5)、打开数据库

                   《案例》

                    将案例数据库 USERS 表空间中的 USER02.DBF  文件和 UNDOTBS1 表空间中的  UNDOTBS01.DBF 文件 移动到  D:\ORADATA 目录中:

                     SQL> shutdown immediate;

                     SQL> host copy    D:\USER02.DBF     D:\ORADATA\USER02.DBF     (在操作系统中复制文件)

                     SQL> host copy    D:\UNDOTBS01.DBF  D:\ORADATA\UNDOTBS01.DBF(在操作系统中复制文件)

                     SQL>startup mount;

                     SQL>alter database rename file 'D:\USER02.DBF'  to 'D:\ORADATA\USER02.DBF' ;

                     SQL>alter database rename file ' D:\UNDOTBS01.DBF'  to 'D:\ORADATA\UNDOTBS01.DBF' ;

                     SQL>alter database open;

--------------查询数据文件信息:

                  在 oracle 11g 数据库中,

                         查询数据字典视图 DBA_DATA_FILES  、V$DATAFILE 获取永久性数据文件信息

                         查询数据字典视图DBA_TEMP_FILES 、V$TEMPFILE 获取临时数据文件信息

                  《案例》

                      查询当前数据库所有的表空间及其数据文件信息:

                    SQL> select  tablespace_name , file_name from dba_data_files;

                     

       




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小达人Fighting

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值