您的位置:首页 > 数据库 > Oracle

oracle-数据文件迁移

2014-04-02 15:43 531 查看
数据文件的迁移是一个经常会用到的操作。例如更换存储、分散数据文件以减少磁盘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--
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息