Oracle 数据文件转移

2025-12-27 15:45:39

1、确定需求

表空间:db320

数据文件:

/u01/app/oracle/product/10.2.0/db_1/oradata/orcl/data01.dbf

/u01/app/oracle/product/10.2.0/db_1/oradata/orcl/data02.dbf

转移存储目录:

/oradata/orcl

Oracle 数据文件转移

1、停止监听(目的是保证应用不连接数据库)

    停止监听或者重启数据之前需要和开发人员联系将所有应用先关闭,然后停止监。这样做是为了避免应用不断报错。

[oracle@oracle10g ~]$ lsnrctl stop

如果是rac的话,需要使用srvctl 命令停止监听

[oracle@oracle10g /]$ ps -ef | grep orcl 查看是否有应用远程连接

Oracle 数据文件转移

Oracle 数据文件转移

2、设置表空间为read only 

SQL> alter tablespace db320 read only;  设置表空间只读模式

select TABLESPACE_NAME ,STATUS from dba_tablespaces; 查看表空间是否设置成功

Oracle 数据文件转移

3、设置表空间为 offline状态

SQL> alter tablespace db320 offline;

SQL> select FILE_NAME,STATUS,ONLINE_STATUS from dba_data_files where tablespace_name='DB320';

Oracle 数据文件转移

4、复制数据文件到新的路径

[oracle@oracle10g orcl]$ cp data01.dbf /oradata/orcl/

[oracle@oracle10g orcl]$ cp data02.dbf /oradata/orcl/

通过复制而不是通过移除mv的方式,是因为数据文件较大,在移除过程中可能会发生错误

Oracle 数据文件转移

5、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';

Oracle 数据文件转移

6、设置表空间 online 状态

SQL> alter tablespace db320 online;

SQL> select FILE_NAME,STATUS,ONLINE_STATUS from dba_data_files where tablespace_name='DB320'; 查看rename和online设置

Oracle 数据文件转移

7、设置表空间为 read write

SQL> alter tablespace db320 read write;

Tablespace altered.

SQL> select TABLESPACE_NAME ,STATUS from dba_tablespaces; 

设置之后才看表空间是否可用,最好是重启数据库验证

Oracle 数据文件转移

8、删除原路径中已经复制的数据文件

[oracle@oracle10g orcl]$ rm -rf data01.dbf

[oracle@oracle10g orcl]$ rm -rf data02.dbf

Oracle 数据文件转移

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢