迁移数据文件到ASM【转】

1.迁移数据文件到ASM 
1)数据库一致性情况下迁移: 
将数据库启动到mount状态,生成rman copy 语句,然后在rman中执行: 
SQL> startup mount 
SQL> select q'(copy datafile ')'||name||q'(' to '+oradata';)' from v$datafile; 
Q'(COPYDATAFILE')'||NAME||Q'('TO'+ORADATA';)' 
------------------------------------------------------------------------------- 
copy datafile 'D:\NSOADP\SYSTEM01.DBF' to '+oradata'; 
copy datafile 'D:\NSOADP\SYSAUX01.DBF' to '+oradata'; 
copy datafile 'F:\NSOADP\UNDOTBS01.DBF' to '+oradata'; 
copy datafile 'D:\NSOADP\USERS01.DBF' to '+oradata'; 

rman target / 
RMAN> run 
2> { 
3> copy datafile 'D:\NSOADP\SYSTEM01.DBF' to '+oradata'; 
4> copy datafile 'D:\NSOADP\SYSAUX01.DBF' to '+oradata'; 
5> copy datafile 'F:\NSOADP\UNDOTBS01.DBF' to '+oradata'; 
6> copy datafile 'D:\NSOADP\USERS01.DBF' to '+oradata'; 
7>} 
启动 backup 于 2015-04-15 10:02:44 
使用通道 ORA_DISK_1 
通道 ORA_DISK_1: 启动数据文件副本 
输入数据文件: 文件号=00001 名称=D:\NSOADP\SYSTEM01.DBF 
输出文件名=+ORADATA/nsoa/datafile/system.260.877082571 标记=TAG20150415T100250 RECID=265 STAMP=877082603 
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:35 
完成 backup 于 2015-04-15 10:03:25 

生成更改控制文件数据名的语句,然后执行更改: 
SQL> SELECT --T.NAME,T.FILE#,C.FILE#,C.NAME 
  2  q'(ALTER DATABASE RENAME FILE ')'||c.name||q'(' to ')'||t.name||q'(';)' 
  3   FROM V$DATAFILE_COPY T LEFT JOIN V$DATAFILE C 
  4  ON T.FILE#=C.FILE# 
  5  WHERE T.NAME IS NOT NULL  order by COMPLETION_TIME desc; 

SQL> alter database rename file 'D:\NSOADP\SYSTEM01.DBF' to '+ORADATA/nsoa/datafile/system.260.877082571'; 
.... 

2)数据库非一致性情况下迁移(归档模式): 
使用alterdatabase datafile '' offline命令将数据文件offline,然后同上面的方式一样处理,最后将数据文件online 
SQL> alter database datafile '/u01/oradata/sydb/user01.dbf' offline; 

RMAN> copy datafile '/u01/oradata/sydb/user01.dbf' to '+oradata'; 

Starting backup at 23-APR-15 
using target database control file instead of recovery catalog 
allocated channel: ORA_DISK_1 
channel ORA_DISK_1: SID=180 device type=DISK 
channel ORA_DISK_1: starting datafile copy 
input datafile file number=00004 name=/u01/oradata/sydb/user01.dbf 
output file name=+ORADATA/sydb/datafile/users.257.877803115 tag=TAG20150423T181155 RECID=1 STAMP=877803123 
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15 
Finished backup at 23-APR-15 

SQL> alter database rename file '/u01/oradata/sydb/user01.dbf' to '+ORADATA/sydb/datafile/users.257.877803115'; 
SQL> alter database datafile '+ORADATA/sydb/datafile/users.257.877803115' online; 
alter database datafile '+ORADATA/sydb/datafile/users.257.877803115' online 

ERROR at line 1: 
ORA-01113: file 4 needs media recovery 
ORA-01110: data file 4: '+ORADATA/sydb/datafile/users.257.877803115' 
SQL> recover datafile '+ORADATA/sydb/datafile/users.257.877803115'; 
Media recovery complete. 
SQL> alter database datafile '+ORADATA/sydb/datafile/users.257.877803115' online; 

2.迁移日志文件到ASM 
可以在mount或open状态迁移非current或active日志文件到asm;方法将已有的日志文件(每个日志组必须有一个member)或日志组 
(数据库必须有两个日志组存在)删除,然后添加新的日志文件或日志组; 
alter database drop logfile member 'E:\NSOADP\REDO07.LOG';  #删除日志文件 
alter database drop logfile group 2;  #删除日志组 
alter database add logfile member '+oradata' to group 7;   #添加日志文件 
alter database add logfile ( '+oradata','oradata') size 50m;  #添加有两个成员的日志组 
alter database add logfile '+oradata','oradata' size 50m;  #同时添加两个日志组 

3.迁移控制文件到ASM 
首先确定好控制文件位置和名称 
SQL> show parameter control_file 
NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
control_file_record_keep_time        integer     7 
control_files                        string      F:\NSOADP\CONTROL01.CTL 

修改control_files初始化参数值为asm,然后重启数据库到nomount状态: 
SQL> alter system set control_files='+oradata' scope=spfile; 
SQL> shutdown immediate; 
SQL> startup nomount 

使用rman复制当前的控制文件到asm 
rman target / 
RMAN> restore controlfile from 'F:\NSOADP\CONTROL01.CTL'; 
启动 restore 于 2015-04-22 09:40:30 
使用目标数据库控制文件替代恢复目录 
分配的通道: ORA_DISK_1 
通道 ORA_DISK_1: SID=70 设备类型=DISK 

通道 ORA_DISK_1: 已复制控制文件副本 
输出文件名=+ORADATA/nsoa/controlfile/current.314.877686033 
完成 restore 于 2015-04-22 09:40:39 
复制代码 
注:如果使用备份的控制文件进行还原,而数据库以前有过RESETLOGS操作或创建控制文件时创建语句指定了RESETLOGS,则必须以RESETLOGS方式打开数据库。 
SQL> alter database mount; 
SQL> show parameter control_file 

NAME                                 TYPE                   VALUE 
------------------------------------ ---------------------- ------------------------------ 
control_file_record_keep_time        integer                7 
control_files                        string                 +ORADATA/nsoa/controlfile/curr 
                                                            ent.314.877686033 
SQL> alter database open;

时间: 2024-08-29 12:13:47

迁移数据文件到ASM【转】的相关文章

9i迁移数据文件 过程

过程|数据 --9i迁移数据文件 过程 1.查看视图 select * from dba_data_files 确定要移动的数据文件 "位置" 和 "名称" 源位置和名称 : '/home/oracle/product/92/oradata/adp/users02.dbf' 目标位置和名称: '/home/oracle/oradata/adp/users02.dbf' 2.停掉数据库 shutdown  immediate; 3.拷贝源数据文件到制定位置 cd /h

oracle 12c R1 在线迁移数据文件、在线迁移表分区或者子分区例子

在线重定义数据文件: 在oracle 12c R1之前的版本中,如果在线移动数据文件需要将表空间或者数据文件离线,然后操作系统mv,recover后online数据文件或者表空间,在oracle 12c R1后可以直接在线重定义数据文件,这个过程用户可以进行查询.DML以及DDL的任务,另外数据文件也可以直接在存储设备间迁移,比如ASM到文件系统的相互迁移. SQL> select name from v$datafile; NAME ------------------------------

批量迁移Oracle数据文件,日志文件及控制文件

   有些时候需要将Oracle的多个数据文件以及日志文件重定位或者迁移到新的分区或新的位置,比如磁盘空间不足,或因为特殊需求.对于这种情形可以采取批量迁移的方式将多个数据文件或者日志文件实现一次性迁移.当然备份恢复也是其中的方式之一.本文主要描述如何使用批量方式来迁移数据文件,日志文件.如需要也可以将整个数据库迁移到新的位置以及重命名数据库. 1.环境及需求 robin@SZDB:~> cat /etc/issue Welcome to SUSE Linux Enterprise Server

dataguard备库的数据文件的迁移实战

在前几天也花了一点时间测试了一下关于备库数据文件的迁移,这部分的工作看起来还是比较常规的,当然方法也很多.但是在实际工作中就更不能掉以轻心,所有的操作都要有理有据.都要经过一些严格的测试,如果测试不当,很可能在后期就会出现一些看似奇怪的问题,造成一些不必要的麻烦和影响. 所以在开始之前,做了下面的准备工作. 1.在zabbix中设定了维护窗口,这样在维护操作中就不会报警. 2.检查目前的备库参数设置,是否开启了闪回区,目前的文件路径设置情况和归档情况 3.检查目标文件路径的情况,涉及权限,文件夹

oracle RAC 更换存储迁移数据

oracle RAC 更换存储迁移数据我们利用ASM rebalance特性实现更换存储迁移数据的需求基本 零宕机时间(操作步骤总结)1)保证新存储和RAC当前节点间的可用性:2)新存储划分LUN,可以重新规划存储方案:3)迁移OCR和表决盘4)给现有ASM磁盘组添加ASM磁盘(新存储分配的),充分利用ASM REBALANCE技术5)删除原存储的ASM磁盘6)观察期  1 当前存储信息以下ASM磁盘组.OCR.VOTE信息:ASM磁盘组:ASMCMD> lsdgState    Type  

《Greenplum5.0 最佳实践》 迁移数据使用Gptransfer

使用 Gptransfer 命令迁移一个 Greenplum 数据库集群中的数据到另一台集群(metradata, data) gptransfer 可以迁移数据库中的全部数据或者部分选择的表到另外一台 Greenplum 中. 源数据库和目的数据库可以在同一个集群中,也可以在不同的集群中. gptransfer 所有的段数据库是并行的移动数据的,使用 gpfdist 可以获得更高的数据移动效率. gptransfer 处理这数据的启动和执行. 参与的集群必须存在.同时确保集群间的访问时可以用过

asm数据文件迁移(asm–>os)

--查看当前情况 SQL> select count(*) from hr.a; COUNT(*) ---------- 1580 SQL>  select name from v$DATAFILE; NAME ----------------------------------------------------------- +DATA/tasm/system01.dbf +DATA/tasm/undotbs01.dbf +DATA/tasm/sysaux01.dbf +DATA/tasm

asm数据文件迁移(os–>asm)

--添加测试表空间 SQL> create tablespace xff datafile '/u01/oradata/xifenfei.dbf' size 10m autoextend on maxsize 100m; Tablespace created. --查看数据文件位置 SQL> select name from v$datafile; NAME --------------------------------------------------------------------

asm和file system之间数据文件的转换

How to move a datafile from a file system to ASM Moving a datafile from the file system can be achived in two ways. i. While the database is shutdown (in mount stage). ii. While the database is running (with the selected tablespace offline). (数据文件实现文