Oracle rename数据文件
摘要
表空间
1 | SQL> set pagesize 999; |
查看表空间和表空间的文件
1 | # 表空间 |
表空间离线
1 | SQL> alter tablespace TEST offline; |
把物理文件复制到新的位置
1 | SQL> host cp /data/oracle/oradata/orcl/test.ora /data2/oradata/test.dbf |
更换物理地址
1 | SQL> alter tablespace TEST rename datafile '/data/oracle/oradata/orcl/test.ora' to '/data2/oradata/test.dbf'; |
表空间在线
1 | SQL> alter tablespace TEST online; |
删除原来的文件
1 | SQL> host rm /data/oracle/oradata/orcl/test.ora |
如果报下面的错
1 | ERROR at line 1: |
则需要执行下面的语句:
1 | SQL> recover datafile '/data/oracle/oradata/orcl/test.ora'; |
再查看磁盘空间,发现磁盘的使用率并没有变。
为什么呢?
虽然删除了文件,oracle没有关闭,oracle 并没有释放物理文件的句柄,空间并没真正的释放。
如果需要真正的释放空间,还需要oracle 重新启动。
临时表空间
临时表空间不能offline
1 | SQL> shutdown immediate; |
DataGuard备库
关闭主库
修改备库参数
1 | SQL> alter system set standby_file_management=manual; |
取消备库应用,此时备库standby_file_management
为manual
1 | SQL> alter database recover managed standby database cancel; |
关闭数据库,移动文件到相应位置
1 | SQL> shutdown immediate; |
备库启动,rename file
1 | SQL> startup mount; |
备库修改参数
1 | SQL> alter system set standby_file_management=auto; |
重新启动备库
1 | SQL> shutdown immediate; |
启动主库