oracle-数据文件迁移

数据文件的迁移是一个经常会用到的操作。例如更换存储、分散数据文件以减少磁盘IO压力等都是数据文件迁移的应用场景。下面的操作,大家熟悉一下数据文件迁移的步骤即可。

根据计划需要将 /oracle/ora10g/oradata路径下文件迁移到/ora_data/10g_data下面,我们迁移的动作使用rman copy命令来完成。如果数据库使用的是裸设备,最好选择使用rman copy来迁移。如果是文件系统,也可以考虑使用操作系统命令cp来完成迁移操作。

下面是操作过程:

-->现有数据文件
SYS@testdb>select file#,name from v$datafile;

     FILE# NAME
---------- --------------------------------------------------
         1 /oracle/ora10g/oradata/system01.dbf
         2 /oracle/ora10g/oradata/undotbs01.dbf
         3 /oracle/ora10g/oradata/sysaux01.dbf
         4 /oracle/ora10g/oradata/users01.dbf
         5 /oracle/ora10g/oradata/leo1_01.dbf
         6 /oracle/ora10g/oradata/mssm01.dbf
         7 /oracle/ora10g/oradata/assm01.dbf
         8 /oracle/ora10g/oradata/users02.dbf
         9 /oracle/ora10g/product/10.2.0/db_1/dbs/oracleora10
           goradatatest01.dbf
     FILE# NAME
---------- --------------------------------------------------
        10 /oracle/ora10g/product/10.2.0/db_1/dbs/wangche.bdf
        11 /ora_data/wangche1.bdf

tempapp@ora10g[#/ora_data/10g_data]rman target /
-->将数据库启动到mount状态
RMAN> startup mount;
-->使用rman copy命令来迁移数据文件
RMAN> copy datafile 1 to '/ora_data/10g_data/system01.dbf';
RMAN> copy datafile 2 to '/ora_data/10g_data/undotbs01.dbf';
RMAN> copy datafile 3 to '/ora_data/10g_data/sysaux01.dbf';
RMAN> copy datafile 4 to '/ora_data/10g_data/users01.dbf';
RMAN> copy datafile 5 to '/ora_data/10g_data/leo1_01.dbf';
RMAN> copy datafile 6 to '/ora_data/10g_data/mssm01.dbf';
RMAN> copy datafile 7 to '/ora_data/10g_data/assm01.dbf' ;
RMAN> copy datafile 8 to '/ora_data/10g_data/users02.dbf';
RMAN> copy datafile 9 to '/ora_data/10g_data/aaa9.dbf'; 
RMAN> copy datafile 10 to '/ora_data/10g_data/wangche.bdf';
RMAN> copy datafile 11 to '/ora_data/10g_data/wangche1.bdf';

-->修改控制文件信息
run{
set newname for datafile 1 to '/ora_data/10g_data/system01.dbf';
set newname for datafile 2 to '/ora_data/10g_data/undotbs01.dbf';
set newname for datafile 3 to '/ora_data/10g_data/sysaux01.dbf';
set newname for datafile 4 to '/ora_data/10g_data/users01.dbf';
set newname for datafile 5 to '/ora_data/10g_data/leo1_01.dbf';
set newname for datafile 6 to '/ora_data/10g_data/mssm01.dbf';
set newname for datafile 7 to '/ora_data/10g_data/assm01.dbf' ;
set newname for datafile 8 to '/ora_data/10g_data/users02.dbf';
set newname for datafile 9 to '/ora_data/10g_data/aaa9.dbf';
set newname for datafile 10 to '/ora_data/10g_data/wangche.bdf';
set newname for datafile 11 to '/ora_data/10g_data/wangche1.bdf';
switch datafile all;
}

-->启动数据库
RMAN> alter database open;

-->检查数据文件迁移情况
SYS@testdb>select tablespace_name,file_name from dba_data_files;

TABLESPACE_NAME                FILE_NAME
------------------------------ --------------------------------------------------
SYSTEM                         /ora_data/10g_data/system01.dbf
UNDOTBS                        /ora_data/10g_data/undotbs01.dbf
SYSAUX                         /ora_data/10g_data/sysaux01.dbf
USERS                          /ora_data/10g_data/users01.dbf
LEO1                           /ora_data/10g_data/leo1_01.dbf
MSSM                           /ora_data/10g_data/mssm01.dbf
ASSM                           /ora_data/10g_data/assm01.dbf
SYSTEM                         /ora_data/10g_data/users02.dbf
TEST                           /ora_data/10g_data/aaa9.dbf
WANGCHE                        /ora_data/10g_data/wangche.bdf
WANGCHE1                       /ora_data/10g_data/wangche1.bdf

11 rows selected.

下面使用alter database rename file 命令来修改数据文件名称

-->检查数据文件信息
SYS@testdb>select tablespace_name,file_name from dba_data_files;

TABLESPACE_NAME                FILE_NAME
------------------------------ --------------------------------------------------
SYSTEM                         /ora_data/10g_data/system01.dbf
UNDOTBS                        /ora_data/10g_data/undotbs01.dbf
SYSAUX                         /ora_data/10g_data/sysaux01.dbf
USERS                          /ora_data/10g_data/users01.dbf
LEO1                           /ora_data/10g_data/leo1_01.dbf
MSSM                           /ora_data/10g_data/mssm01.dbf
ASSM                           /ora_data/10g_data/assm01.dbf
SYSTEM                         /ora_data/10g_data/users02.dbf
TEST                           /ora_data/10g_data/aaa9.dbf
WANGCHE                        /ora_data/10g_data/wangche.bdf
WANGCHE1                       /ora_data/10g_data/wangche1.bdf

11 rows selected.

-->计划将 /ora_data/10g_data/users02.dbf 修改为 /ora_data/10g_data/system02.dbf
-->计划将 /ora_data/10g_data/aaa9.dbf 修改为 /ora_data/10g_data/test01.dbf

-->关闭数据库
SYS@testdb>shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

-->将数据文件使用操作系统命令重命名。这里需要注意,我这个是测试系统,正式系统建议使用cp命令
tempapp@ora10g[#/ora_data/10g_data]mv users02.dbf system02.dbf
tempapp@ora10g[#/ora_data/10g_data]mv aaa9.dbf test01.dbf
-->将数据库启动到mount状态
SYS@testdb>startup mount;
-->使用alert database rename file 来修改数据文件名称
SYS@testdb>alter database rename file '/ora_data/10g_data/users02.dbf' to '/ora_data/10g_data/system02.dbf';
SYS@testdb>alter database rename file '/ora_data/10g_data/aaa9.dbf' to '/ora_data/10g_data/test01.dbf';

-->启动数据库
SYS@testdb>alter database open;
-->检查数据文件迁移情况
SYS@testdb>select tablespace_name,file_name from dba_data_files;

TABLESPACE_NAME                FILE_NAME
------------------------------ --------------------------------------------------
SYSTEM                         /ora_data/10g_data/system01.dbf
UNDOTBS                        /ora_data/10g_data/undotbs01.dbf
SYSAUX                         /ora_data/10g_data/sysaux01.dbf
USERS                          /ora_data/10g_data/users01.dbf
LEO1                           /ora_data/10g_data/leo1_01.dbf
MSSM                           /ora_data/10g_data/mssm01.dbf
ASSM                           /ora_data/10g_data/assm01.dbf
SYSTEM                         /ora_data/10g_data/system02.dbf
TEST                           /ora_data/10g_data/test01.dbf
WANGCHE                        /ora_data/10g_data/wangche.bdf
WANGCHE1                       /ora_data/10g_data/wangche1.bdf

11 rows selected.

--END--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值