Oracle数据文件迁移到裸设备

时间:2023-01-24 15:15:44

本文主要描述如何将Oracle表空间的文件系统形式的数据文件迁移到LV裸设备上。

前提条件

1、oracle运行正常。

2、已使用LVM命令规划好LV文件。如/dev/vgoracle/lvdatatbs。

3、停止oracle监听。

操作步骤

1、查看当前待操作表空间DATATBS对应的数据文件的路径、状态。

SQL> select tablespace_name,file_name,online_status from dba_data_files where tablespace_name='DATATBS'; 

2、关闭数据库并启动数据库到mount状态

SQL> shutdown immediate;
SQL> startup mount;

3、使用rman命令将文件系统的数据文件赋值到裸设备上

方法一:

$ rman target / nocatalog
RMAN> copy datafile '/home/oracle/oradata/ora11g/datatbs.dbf' to '/dev/vgoracle/lvdatatbs'

方法二:

$ rman target / nocatalog cmdfile=copy_datafile.cmd

copy_datafile.cmd内容如下:

run {
allocate channel t1 type disk;
copy datafile '/home/oracle/oradata/ora11g/datatbs.dbf' to '/dev/vgoracle/lvdatatbs';
}

说明:如果操作多个数据文件,可以采用这种方式。只需新增copy datafile命令即可。

4、切换表空间对应的数据文件为裸设备。

SQL> alter database rename file '/home/oracle/oradata/ora11g/datatbs.dbf' to '/dev/vgoracle/lvdatatbs';

5、打开数据库

SQL> alter database open;

6、删除被替换的datatbs.dbf数据文件。