【实验】修改数据文件名字的三种途径

【问题现象】
在给表空间添加文件后,发现数据文件的添加的位置或名字不规范,需要规范性的更正
如下述场景:
sys@ora10g> col tablespace_name for a15
sys@ora10g> col file_name for a50
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name = 'TBS_SEC_D';

TABLESPACE_NAME FILE_NAME
--------------- --------------------------------------
TBS_SEC_D       /oracle/oradata/ora10g/tbs_sec_d01dbf

细心地您应该看到这个数据文件名字应该为tbs_sec_d01.dbf,这里少了一个点。(另外一种场景是错误的将数据文件添加到了不正确的路径中需要修改)
这种错误也许您也会遇到。
首先声明一下:如果保持这个错误名字不变,不会影响到数据库的正常运行,但为了防止在维护过程中产生不必要的干扰,还是应该将其更正的。

【处理方法1】OFFLINE数据文件 --&gt 修改操作系统上的文件名 --&gt 修改数据库中的文件名 --&gt 对数据文件进行恢复 --&gt ONLINE数据文件
特别强调:需要归档模式!因为需要对数据文件进行恢复

1.OFFLINE数据文件
sys@ora10g> alter database datafile '/oracle/oradata/ora10g/tbs_sec_d01dbf' offline;

Database altered.

2.修改操作系统上的文件名
ora10g@testdb /oracle/oradata/ora10g$ mv tbs_sec_d01dbf tbs_sec_d01.dbf

3.修改数据库中的文件名
sys@ora10g> alter database rename file '/oracle/oradata/ora10g/tbs_sec_d01dbf' to '/oracle/oradata/ora10g/tbs_sec_d01.dbf';

Database altered.

4.对数据文件进行恢复
sys@ora10g> recover datafile '/oracle/oradata/ora10g/tbs_sec_d01.dbf';
Media recovery complete.

5.ONLINE数据文件
alter database datafile '/oracle/oradata/ora10g/tbs_sec_d01.dbf' online;

6.确认修改成功
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name = 'TBS_SEC_D';

TABLESPACE_NAME FILE_NAME
--------------- ---------------------------------------
TBS_SEC_D       /oracle/oradata/ora10g/tbs_sec_d01.dbf

【处理方法2】OFFLINE表空间 --&gt 修改操作系统上的文件名 --&gt 修改数据库中的文件名 --&gt ONLINE表空间
1.OFFLINE表空间
sys@ora10g> alter tablespace tbs_sec_d offline;

Tablespace altered.

2.修改操作系统上的文件名
ora10g@testdb /oracle/oradata/ora10g$ mv tbs_sec_d01dbf tbs_sec_d01.dbf

3.修改数据库中的文件名
sys@ora10g> alter database rename file '/oracle/oradata/ora10g/tbs_sec_d01dbf' to '/oracle/oradata/ora10g/tbs_sec_d01.dbf';

Database altered.

4.ONLINE表空间
sys@ora10g> alter tablespace tbs_sec_d online;

Tablespace altered.

5.确认修改成功
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name = 'TBS_SEC_D';

TABLESPACE_NAME FILE_NAME
--------------- ---------------------------------------
TBS_SEC_D       /oracle/oradata/ora10g/tbs_sec_d01.dbf

【处理方法3】SHUTDOWN数据库 --&gt 修改操作系统上的文件名 --&gt 数据库启动到MOUNT --&gt 修改数据库中的文件名 --&gt OPEN数据库
1.SHUTDOWN数据库
sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

2.修改操作系统上的文件名
ora10g@testdb /oracle/oradata/ora10g$ mv tbs_sec_d01dbf tbs_sec_d01.dbf

3.数据库启动到MOUNT
NotConnected@> startup mount;
ORACLE instance started.

Total System Global Area  562036736 bytes
Fixed Size                  2022312 bytes
Variable Size             171967576 bytes
Database Buffers          381681664 bytes
Redo Buffers                6365184 bytes
Database mounted.

4.修改数据库中的文件名
NotConnected@> alter database rename file '/oracle/oradata/ora10g/tbs_sec_d01dbf' to '/oracle/oradata/ora10g/tbs_sec_d01.dbf';

Database altered.

5.OPEN数据库
NotConnected@> alter database open;

Database altered.

6.确认修改成功
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name = 'TBS_SEC_D';

TABLESPACE_NAME FILE_NAME
--------------- ---------------------------------------
TBS_SEC_D       /oracle/oradata/ora10g/tbs_sec_d01.dbf

【总结】
以上三个实验是按照对数据库运行影响加深的顺序进行的。很显然,需要停起数据库对数据库的可用性影响是最大的,单独对特定数据文件进行修改的影响最小,对表空间offline的方法影响介于其之间。

希望屏幕前的您,可以根据不同的场景具体问题具体分析之。

好运!

-- The End --

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

转载于:http://blog.itpub.net/519536/viewspace-608810/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值