oracle异构rman迁移
来源:互联网 发布:海岛奇兵舰艇升级数据 编辑:程序博客网 时间:2024/06/06 01:12
目前rman支持的异构恢复、还原和复制版本及对应的平台如下:
For Oracle Database 10g Release 2 and above releases: Solaris x86-64 <--> Linux x86-64 HP-PA <--> HP-IA Windows IA (64-bit) / Windows (64-bit Itanium) <--> Windows 64-bit for AMD / Windows (x86-64) For Oracle Database 11g Release 1 and above releases (requires minimum 11.1 compatible setting): Linux <--> Windows For Oracle Database 11g Release 2 (11.2.0.2) and above releases: Solaris SPARC (64-bit) <--> AIX (64-bit) - Note: this platform combination is currently not supported due to Bug 12702521
以下oracle 11.2.0.3的windows到linux为例:
1. 在windows上利用rman备份数据库
RMAN> run{2> backup database format 'E:\bk_%d_%t_%s';3> backup archivelog all format 'E:\al_%d_%t_%s';4> backup current controlfile format 'E:\cntrl_%d_%t_%s';5> }2. 在linux 服务器上任意创建一个目录(如:/home/oracle/backup),将备份集ftp 到该目录下
3. 恢复spfile
#su – oracle $export ORACLE_SID=orcl $rman target / nocatalog Recovery Manager: Release 11.2.0.3.0 - Production on Wed Aug 8 22:02:34 2012 Copyrigt (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database (not started) RMAN> startup nomount startup failed: ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/oracle/product/db_1/dbs/initorcl.ora' starting Oracle instance without parameter file for retrieval of spfile Oracle instance started Total System Global Area 158662656 bytes Fixed Size 2226456 bytes Variable Size 92276456 bytes Database Buffers 58720256 bytes Redo Buffers 5439488 bytes Rman>restore spfile from '/home/oracle/backup/BK_ORCL_790791123_3'; Starting restore at 2012-08-08 22:04:44 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=1 device type=DISK channel ORA_DISK_1: restoring spfile from AUTOBACKUP /home/oracle/backup/BK_ORCL_790791123_3 channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete Finished restore at 2012-08-08 22:04:45 RMAN> shutdown immediate Oracle instance shut down $sqlplus "/as sysdba" SQL*Plus: Release 11.2.0.3.0 Production on Wed Aug 8 22:08:13 2012 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to an idle instance. SQL> create pfile from spfile; File created.
4.修改所有关于windows下目录的参数如下:
orcl.__db_cache_size=138412032 orcl.__java_pool_size=4194304 orcl.__large_pool_size=4194304 #orcl.__oracle_base='E:\app\Administrator'#ORACLE_BASE set from environment orcl.__oracle_base='/oracle/product' orcl.__pga_aggregate_target=176160768 orcl.__sga_target=255852544 orcl.__shared_io_pool_size=0 orcl.__shared_pool_size=100663296 orcl.__streams_pool_size=0 #*.audit_file_dest='E:\app\Administrator\admin\orcl\adump' *.audit_file_dest='/oracle/product/admin/orcl/adump' *.audit_trail='db' *.compatible='11.2.0.0.0' #*.control_files='E:\oradata\orcl\control01.ctl','E:\oradata\orcl\control02.ctl' *.control_files='/oradata/orcl/control01.ctl','/oradata/orcl/control02.ctl' *.db_domain='' *.db_name='orcl' #*.diagnostic_dest='E:\app\Administrator' *.diagnostic_dest='/oracle/product' *.nls_language='SIMPLIFIED CHINESE' *.nls_territory='CHINA' *.open_cursors=300 *.processes=150 *.remote_login_passwordfile='EXCLUSIVE' *.undo_tablespace='UNDOTBS1
手工创建相关目录:
$mkdir -p /oracle/product/admin/orcl/adump
$mkdir –p /oradata/orcl
5.恢复控制文件
SQL> create spfile from pfile;File created. $rman target / nocatalogRecovery Manager: Release 11.2.0.3.0 - Production on Wed Aug 8 22:21:05 2012Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.connected to target database (not started)RMAN> startup nomount;Oracle instance startedTotal System Global Area 242208768 bytes Fixed Size 2227176 bytesVariable Size 184550424 bytesDatabase Buffers 50331648 bytesRedo Buffers 5099520 bytes RMAN> restore controlfile from '/home/oracle/backup/CNTRL_ORCL_790791465_5'; Starting restore at 2012-08-08 22:30:49allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=19 device type=DISKchannel ORA_DISK_1: restoring control filechannel ORA_DISK_1: restore complete, elapsed time: 00:00:04output file name=/oradata/orcl/control01.ctloutput file name=/oradata/orcl/control02.ctlFinished restore at 2012-08-08 22:30:53 RMAN> alter database mount;database mountedreleased channel: ORA_DISK_1
6.将备份集信息导入控制文件:
RMAN> catalog start with '/home/oracle/backup/'; searching for all files that match the pattern /home/oracle/backup/ List of Files Unknown to the Database ===================================== File Name: /home/oracle/backup/BK_ORCL_790791123_3 File Name: /home/oracle/backup/BK_ORCL_790791088_2 File Name: /home/oracle/backup/AL_ORCL_790791226_4 File Name: /home/oracle/backup/CTL_ORCL_790791465_5 Do you really want to catalog the above files (enter YES or NO)? Y cataloging files... cataloging done List of Cataloged Files ======================= File Name: /home/oracle/backup/BK_ORCL_790791123_3 File Name: /home/oracle/backup/BK_ORCL_790791088_2 File Name: /home/oracle/backup/AL_ORCL_790791226_4 File Name: /home/oracle/backup/CTL_ORCL_790791465_5
7.恢复数据文件:
RMAN> run{ 2> set newname for datafile 1 to '/oradata/orcl/SYSTEM01.DBF'; 3> set newname for datafile 2 to '/oradata/orcl/SYSAUX01.DBF'; 4> set newname for datafile 3 to '/oradata/orcl/UNDOTBS01.DBF'; 5> set newname for datafile 4 to '/oradata/orcl/USERS01.DBF'; 6> restore database; 7> switch datafile all; 8> recover database; 9> } executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME Starting restore at 2012-08-08 22:36:28 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=19 device type=DISK channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00001 to /oradata/orcl/SYSTEM01.DBF channel ORA_DISK_1: restoring datafile 00002 to /oradata/orcl/SYSAUX01.DBF channel ORA_DISK_1: restoring datafile 00003 to /oradata/orcl/UNDOTBS01.DBF channel ORA_DISK_1: restoring datafile 00004 to /oradata/orcl/USERS01.DBF channel ORA_DISK_1: reading from backup piece E:\BK_ORCL_790791088_2 channel ORA_DISK_1: errors found reading piece handle=E:\BK_ORCL_790791088_2 channel ORA_DISK_1: failover to piece handle=/home/oracle/backup/BK_ORCL_790791088_2 tag=TAG20120808T161128 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:02:17 Finished restore at 2012-08-08 22:38:46 datafile 1 switched to datafile copy input datafile copy RECID=5 STAMP=790814327 file name=/oradata/orcl/SYSTEM01.DBF datafile 2 switched to datafile copy input datafile copy RECID=6 STAMP=790814327 file name=/oradata/orcl/SYSAUX01.DBF datafile 3 switched to datafile copy input datafile copy RECID=7 STAMP=790814327 file name=/oradata/orcl/UNDOTBS01.DBF datafile 4 switched to datafile copy input datafile copy RECID=8 STAMP=790814327 file name=/oradata/orcl/USERS01.DBF Starting recover at 2012-08-08 22:38:48 using channel ORA_DISK_1 starting media recovery channel ORA_DISK_1: starting archived log restore to default destination channel ORA_DISK_1: restoring archived log archived log thread=1 sequence=14 channel ORA_DISK_1: reading from backup piece E:\AL_ORCL_790791226_4 channel ORA_DISK_1: errors found reading piece handle=E:\AL_ORCL_790791226_4 channel ORA_DISK_1: failover to piece handle=/home/oracle/backup/AL_ORCL_790791226_4 tag=TAG20120808T161346 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:03 archived log file name=/oracle/product/db_1/dbs/arch1_14_790789819.dbf thread=1 sequence=14 unable to find archived log archived log thread=1 sequence=15 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of recover command at 08/08/2012 22:38:54 RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 15 and starting SCN of 181422以resetlogs方式打开数据库:
SQL> alter database open resetlogs;
注意由于redo log和tempfile的路径都还是以windows目录方式记录在控制文件中,需要对其进行修改
QL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- /oracle/product/db_1/dbs/E:ORADATAORCLREDO01.LOG /oracle/product/db_1/dbs/E:ORADATAORCLREDO02.LOG /oracle/product/db_1/dbs/E:ORADATAORCLREDO03.LOG SQL> select file#,name from v$tempfile; FILE# NAME -------------------------------------------------------------------------------- 1 E:\ORADATA\ORCL\TEMP01.DBF SQL> alter database add logfile member '/oradata/orcl/redo01.log' to group 1; Database altered. SQL> alter database add logfile member '/oradata/orcl/redo02.log' to group 2; Database altered. SQL> alter database add logfile member '/oradata/orcl/redo03.log' to group 3; Database altered. SQL> select group#,member from v$logfile order by group#; GROUP# MEMBER ------ -------------------------------------------------- 1 /oracle/product/db_1/dbs/E:ORADATAORCLREDO01.LOG 1 /oradata/orcl/redo01.log 2 /oradata/orcl/redo02.log 2 /oracle/product/db_1/dbs/E:ORADATAORCLREDO02.LOG 3 /oradata/orcl/redo03.log 3 /oracle/product/db_1/dbs/E:ORADATAORCLREDO03.LOG SQL> alter database drop logfile member '/oracle/product/db_1/dbs/E:ORADATAORCLREDO01.LOG'; alter database drop logfile member '/oracle/product/db_1/dbs/E:ORADATAORCLREDO01.LOG' * ERROR at line 1: ORA-00362: member is required to form a valid logfile in group 1 ORA-01517: log member: '/oracle/product/db_1/dbs/E:ORADATAORCLREDO01.LOG' SQL> select group#,status,member from v$logfile order by group#; GROUP# STATUS MEMBER ------ ------- -------------------------------------------------- 1 /oracle/product/db_1/dbs/E:ORADATAORCLREDO01.LOG 1 INVALID /oradata/orcl/redo01.log 2 INVALID /oradata/orcl/redo02.log 2 /oracle/product/db_1/dbs/E:ORADATAORCLREDO02.LOG 3 INVALID /oradata/orcl/redo03.log 3 /oracle/product/db_1/dbs/E:ORADATAORCLREDO03.LOG 做下日志切换: SQL> alter system switch logfile; System altered. SQL> / System altered. SQL> / System altered. SQL> select group#,status,member from v$logfile order by group#; GROUP# STATUS MEMBER ------ ------- -------------------------------------------------- 1 /oracle/product/db_1/dbs/E:ORADATAORCLREDO01.LOG 1 /oradata/orcl/redo01.log 2 /oradata/orcl/redo02.log 2 /oracle/product/db_1/dbs/E:ORADATAORCLREDO02.LOG 3 /oradata/orcl/redo03.log 3 /oracle/product/db_1/dbs/E:ORADATAORCLREDO03.LOG SQL> alter database drop logfile member '/oracle/product/db_1/dbs/E:ORADATAORCLREDO01.LOG'; Database altered. SQL> alter database drop logfile member '/oracle/product/db_1/dbs/E:ORADATAORCLREDO02.LOG'; Database altered. SQL> alter database drop logfile member '/oracle/product/db_1/dbs/E:ORADATAORCLREDO03.LOG'; Database altered. SQL> select group#,member from v$logfile; GROUP# MEMBER ------ -------------------------------------------------- 1 /oradata/orcl/redo01.log 2 /oradata/orcl/redo02.log 3 /oradata/orcl/redo03.log
由于是windows目录格式linux 下oracle无法识别文件路径,无法使用tempfile drop方式删除文件;可以通过在线重建temp 表空间方式更改,这里使用重建控制文件方式更改:
SQL> alter database backup controlfile to trace as '/oracle/control.trc'; SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup nomount ORACLE instance started. Total System Global Area 242208768 bytes Fixed Size 2227176 bytes Variable Size 184550424 bytes Database Buffers 50331648 bytes Redo Buffers 5099520 bytes SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG 2 MAXLOGFILES 16 3 MAXLOGMEMBERS 5 4 MAXDATAFILES 100 5 MAXINSTANCES 8 6 MAXLOGHISTORY 292 7 LOGFILE 8 GROUP 1 '/oradata/orcl/redo01.log' SIZE 50M BLOCKSIZE 512, 9 GROUP 2 '/oradata/orcl/redo02.log' SIZE 50M BLOCKSIZE 512, 10 GROUP 3 '/oradata/orcl/redo03.log' SIZE 50M BLOCKSIZE 512 11 -- STANDBY LOGFILE 12 DATAFILE 13 '/oradata/orcl/SYSTEM01.DBF', 14 '/oradata/orcl/SYSAUX01.DBF', 15 '/oradata/orcl/UNDOTBS01.DBF', 16 '/oradata/orcl/USERS01.DBF' 17 CHARACTER SET ZHS16GBK 18 ; Control file created. SQL> alter database open; Database altered. SQL> aLTER TABLESPACE TEMP ADD TEMPFILE '/oradata/orcl/temp01.dbf' reuse; SQL> select file#,name from v$tempfile; FILE# NAME -------------------------------------------------------------------------------- 1 /oradata/orcl/temp01.dbf
- oracle异构rman迁移
- rman实现oracle数据库迁移
- 使用rman迁移oracle数据库
- 【ORACLE】RMAN实现数据迁移
- Oracle 10g RMAN 跨平台迁移
- Oracle 利用RMAN 完成数据迁移
- 利用ORACLE RMAN 迁移不同平台的oracle数据库
- Oracle RMAN 32bit到 64bit迁移文档
- Linux平台下使用rman进行oracle数据库迁移
- Oracle从windows迁移至linux 使用RMAN
- 用Rman迁移数据库
- RMAN FileSystem 迁移 ASM
- rman数据文件迁移
- rman做异机迁移
- rman数据迁移
- rman convert 迁移win64位oracle 到linux oracle+asm 手稿
- Oracle Rman
- oracle rman
- 你的身边有没有友元朋友?
- java代理模式
- 游戏引擎十大核心竞争力
- Java IO _ Zip 压缩流
- Java新浪微博客户端开发第二步
- oracle异构rman迁移
- Android 4.0 Launcher2源码分析——桌面快捷图标的拖拽
- hdu,2050,折线分割平面
- 给C++初学者的50个忠告
- easyUI 自定义window工具
- uva 110 - Meta-Loopless Sorts
- 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库
- C++著名程序库的比较和学习经验
- Linux平台游戏性能比Windows平台要好?