ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【TABLESPACE】数据库Open状态下调整表空间数据文件位置及名称

【TABLESPACE】数据库Open状态下调整表空间数据文件位置及名称

原创 Linux操作系统 作者:secooler 时间:2011-04-11 22:50:15 0 删除 编辑
  需要调整表空间数据文件名称及位置的场景主要有如下几种:
  ①发现表空间对应的个别数据文件名称命名有误,例如忘记添加“.dbf”后缀;
  ②由于存放数据文件的磁盘空间紧张,需要调整存放位置;
  ③针对特定存储设备,重新规划数据文件的布局。

  本文给出最常见的调整方法:在数据库Open状态下调整表空间数据文件位置及名称。
  注意:在完成调整操作之前请对数据库做好有效备份,防止出现故障给数据库的使用带来不便。

1.创建测试用表空间TBS_SECOOLER_D
sys@ora10g> create tablespace tbs_secooler_d datafile '/oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf' size 10m;

Tablespace created.

2.获取表空间与数据文件之间的对应关系
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS_SECOOLER_D';

TABLESPACE_NAME   FILE_NAME
----------------- ------------------------------------------------------
TBS_SECOOLER_D    /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf

3.将表空间TBS_SECOOLER_D脱机
sys@ora10g> alter tablespace TBS_SECOOLER_D offline normal;

Tablespace altered.

注意,这个步骤很重要,也是这种在数据库Open状态下调整方法的局限所在。因为不是所有情况都可以将表空间顺利脱机。如果表空间正在被使用,则表空间将无法正常脱机。

4.在操作系统中调整数据文件位置和名称
在Linux/UNIX操作系统中可以使用操作系统命令mv完成这一步的调整。
ora10g@secdb /home/oracle$ mv /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf /home/oracle/tbs_secooler_d.dbf

确认文件位置及名称调整完毕。
ora10g@secdb /home/oracle$ ls -l /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf
ls: /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf: No such file or directory
ora10g@secdb /home/oracle$ ls -l /home/oracle/tbs_secooler_d.dbf
-rw-r----- 1 oracle oinstall 11M Apr 11 21:41 /home/oracle/tbs_secooler_d.dbf

5.在数据库中调整数据文件位置及名称
sys@ora10g> alter tablespace TBS_SECOOLER_D rename datafile '/oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf' to '/home/oracle/tbs_secooler_d.dbf';

Tablespace altered.

此步骤变化体现在数据库控制文件上。

6.将表空间重新调整为在线状态
sys@ora10g> alter tablespace TBS_SECOOLER_D online;

Tablespace altered.

7.最后的确认
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS_SECOOLER_D';

TABLESPACE_NAME   FILE_NAME
----------------- -----------------------------------------------------
TBS_SECOOLER_D    /home/oracle/tbs_secooler_d.dbf

可见,此时已达到了调整表空间数据文件位置及名称的目的。

8.小结
  使用文中提到的方法来调整表空间数据文件名称及路径的方法有一定的局限性,适用于待调整表空间可以顺利地完成脱机操作的场景。如不满足条件,也可以通过重启数据库或人为的干预使之满足这个前提条件。当然,也可以选择其他调整方式。

Good luck.

secooler
11.04.11

-- The End --

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/519536/viewspace-692267/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE 总监,阿里云MVP,北京大学理学硕士,恩墨学院创始人,教育专家,中国区 Cloudera 首位官方授权大数据讲师,金牌培训专家,BDA大数据联盟创始人,OCM联盟创始人,ACCUG创始人、ACOUG核心专家,Blogger。

注册时间:2008-03-16

  • 博文量
    797
  • 访问量
    8183903