数据文件?还是快捷方式?

使数据文件在不同目录,将数据文件的快捷方式存放在同一目录。指定数据文件的位置为数据文件快捷方式,这样是否可行呢?
需在数据库处于mount状态或表空间offline状态
使用语句
alter tablesapce tbsp_name rename datafile '原目录' to '目标目录'
测试1:UNIX环境
SQL>create tablespace test datafile '/home/oracle/test' size 10m
Tablespace created.
[oracle@localhost ~]$ ln -s /home/oracle/test /data/oracle/oradata/orcl/test
[oracle@localhost ~]$ ll /data/oracle/oradata/orcl/
total 1058244 ...
[@more@]
-rw-r----- 1 oracle oracle 7061504 Jan 9 16:55 control01.ctl
-rw-r----- 1 oracle oracle 7061504 Jan 9 16:55 control02.ctl
-rw-r----- 1 oracle oracle 7061504 Jan 9 16:55 control03.ctl
-rw-r----- 1 oracle oracle 104865792 Jan 9 16:47 example01.dbf
-rw-r----- 1 oracle oracle 52429312 Jan 9 16:47 redo01.log
-rw-r----- 1 oracle oracle 52429312 Jan 9 16:47 redo02.log
-rw-r----- 1 oracle oracle 52429312 Jan 9 16:55 redo03.log
-rw-r----- 1 oracle oracle 241180672 Jan 9 16:54 sysaux01.dbf
-rw-r----- 1 oracle oracle 503324672 Jan 9 16:53 system01.dbf
-rw-r----- 1 oracle oracle 20979712 Jun 23 2009 temp01.dbf
lrwxrwxrwx 1 oracle oracle 17 Jan 9 16:53 test -> /home/oracle/test
-rw-r----- 1 oracle oracle 31465472 Jan 9 16:52 undotbs01.dbf
-rw-r----- 1 oracle oracle 5251072 Jan 9 16:47 users01.dbf
[oracle@localhost ~]$ exit
SQL> alter tablespace test rename datafile '/home/oracle/test' to '/data/oracle/oradata/orcl/test';
Tablespace altered.
SQL> select name from v$datafile
NAME
--------------------------------------------------------------------------------
/data/oracle/oradata/orcl/system01.dbf
/data/oracle/oradata/orcl/undotbs01.dbf
/data/oracle/oradata/orcl/sysaux01.dbf
/data/oracle/oradata/orcl/users01.dbf
/data/oracle/oradata/orcl/example01.dbf
/data/oracle/oradata/orcl/test
SQL> drop tablespace test including contents and datafiles;
Tablespace dropped.
SQL>host
[oracle@localhost ~]$ ll /home/oracle
total 10304
drwxr-xr-x 2 oracle oracle 4096 May 28 2009 Desktop
drwxrwx--- 3 oracle oracle 4096 May 28 2009 oracle
drwxrwxr-x 5 oracle oracle 4096 May 28 2009 oraInventory
-rw-rw-r-- 1 oracle oracle 7615 May 28 2009 sqlnet.log
-rw-rw---- 1 oracle oracle 10493952 Jan 9 17:27 test
[oracle@localhost ~]$ ll /data/oracle/oradata/orcl/
total 1058240
-rw-r----- 1 oracle oracle 7061504 Jan 9 17:28 control01.ctl
-rw-r----- 1 oracle oracle 7061504 Jan 9 17:28 control02.ctl
-rw-r----- 1 oracle oracle 7061504 Jan 9 17:28 control03.ctl
-rw-r----- 1 oracle oracle 104865792 Jan 9 16:47 example01.dbf
-rw-r----- 1 oracle oracle 52429312 Jan 9 16:47 redo01.log
-rw-r----- 1 oracle oracle 52429312 Jan 9 16:47 redo02.log
-rw-r----- 1 oracle oracle 52429312 Jan 9 17:28 redo03.log
-rw-r----- 1 oracle oracle 241180672 Jan 9 17:25 sysaux01.dbf
-rw-r----- 1 oracle oracle 503324672 Jan 9 17:24 system01.dbf
-rw-r----- 1 oracle oracle 20979712 Jun 23 2009 temp01.dbf
-rw-r----- 1 oracle oracle 31465472 Jan 9 17:28 undotbs01.dbf
-rw-r----- 1 oracle oracle 5251072 Jan 9 16:47 users01.dbf
在UNIX下可以实现
测试2:windows环境
创建表空间数据文件c:test,创建该数据文件快捷方式于:oracle11oradataorcltest
SQL> alter tablespace test rename datafile 'c:test' to 'E:oracle11oradataorcltest';
alter tablespace test rename datafile 'c:test' to 'E:oracle11oradataorcltest'
*
ERROR at line 1:
ORA-01525: error in renaming data files
ORA-01141: error renaming data file 5 - new file
'E:oracle11oradataorcltest' not found
ORA-01110: data file 5: 'C:TEST'
ORA-27041: unable to open file
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????
在windows下无法实现
总结:在unix环境中可以实现数据库通过读取快捷方式的方法读取不同目录下的数据文件,但是在删除表空间的时候,无法删除真正的数据文件,而是删除了这个数据文件的快捷方式。在windows环境下则无法实现。造成分歧的原因我想必然是文件系统及内核的差异。

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

转载于:http://blog.itpub.net/21143113/viewspace-1030442/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值