Oracle rename数据文件
摘要
1 | set pagesize 999; |
查看表空间和表空间的文件
1 | select tablespace_name,file_name from dba_data_files; |
表空间离线
1 | alter tablespace TMSCW_D_STAND offline; |
把物理文件复制到新的位置
1 | host cp /oracledata/tmscw/tmscw_d_stand01.ora /volumes/data/oradata/tmscw_d_stand01.ora |
更换物理地址
1 | alter tablespace TMSCW_D_STAND rename datafile '/oracledata/tmscw/tmscw_d_stand01.ora' to '/volumes/data/oradata/tmscw_d_stand01.ora'; |
表空间在线
1 | alter tablespace TMSCW_D_STAND online; |
删除原来的文件
1 | host rm /oracledata/tmscw/tmscw_d_stand01.ora |
如果报下面的错
1 | ERROR at line 1: |
则需要执行下面的语句:
1 | recover datafile '/volumes/data/oradata/tmscw_d_stand01.ora'; |
再查看磁盘空间,发现磁盘的使用率并没有变。
为什么呢?
虽然删除了文件,oracle没有关闭,oracle 并没有释放物理文件的句柄,空间并没真正的释放。
如果需要真正的释放空间,还需要oracle 重新启动。
临时表空间不能offline
1 | shutdown immediate; |