停止监听(目的是保证应用不连接数据库) 停止监听或者重启数据之前需要和开发人员联系将所有应用先关闭,然后停止监。这样做是为了避免应用不断报错。[oracle@oracle10g ~]$ lsnrctl stop如果是rac的话,需要使用srvctl 命令停止监听[oracle@oracle10g /]$ ps -ef | grep orcl 查看是否有应用远程连接
设置表空间为read only SQL> alter tablespace db320 read only; 设置表空间只读模式select TABLESPACE_NAME ,STATUS from dba_tablespaces; 查看表空间是否设置成功
设置表空间为 offline状态SQL> alter tablespace db320 offline;SQL> select FILE_NAME,STATUS,ONLINE_STATUS from dba_data_files where tablespace_name='DB320';
复制数据文件到新的路径[oracle@oracle10g orcl]$ cp data01.dbf /oradata/orcl/[oracle@oracle10g orcl]$ cp data02.dbf /oradata/orcl/通过复制而不是通过移除mv的方式,是因为数据文件较大,在移除过程中可能会发生错误
rename 转移数据文件SQL> alter tablespace db320 rename datafile '/u01/app/oracle/product/10.2.0/db_1/oradata/orcl/data01.dbf' to '/oradata/orcl/data01.dbf' ;SQL> alter tablespace db320 rename datafile '/u01/app/oracle/product/10.2.0/db_1/oradata/orcl/data02.dbf' to '/oradata/orcl/data02.dbf';
设置表空间 online 状态SQL> alter tablespace db320 online;SQL> select FILE_NAME,STATUS,ONLINE_STATUS from dba_data_files where tablespace_name='DB320'; 查看rename和online设置
设置表空间为 read writeSQL> alter tablespace db320 read write;Tablespace altered.SQL> select TABLESPACE_NAME ,STATUS from dba_tablespaces; 设置之后才看表空间是否可用,最好是重启数据库验证
删除原路径中已经复制的数据文件[oracle@oracle10g orcl]$ rm -rf data01.dbf[oracle@oracle10g orcl]$ rm -rf data02.dbf