Windows oracle 11g rman备份恢复到linux系统

来源:这里教程网 时间:2026-03-03 17:40:51 作者:

          今天试验了下windows server 2012 下oracle rman备份整库到linux平台进行恢复,经过测试,是可恢复的,下面我们来看看恢复过程。1、首先备份windows下的oracle备份;run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;sql 'alter system archive log current';backup as compressed backupset format 'c:\backup\full_db_%d%u.bak' database;backup current controlfile format 'c:\backup\ctl_file_%d%u.bak';backup archivelog all tag='archivelog' format 'c:\backup\archivelog_%d%u.bak';backup spfile format 'c:\backup\spfile_%d_U.bak';release channel c1;release channel c2;release channel c3;}备份文件: 2、将备份文件复制到linux系统平台,创建相应目录数据目录:/oradata/orcl日志目录:/flash_recovery_area编辑参数文件,使用pfile文件(注意目录位置及是否存在)create spfile from pfile='/home/oracle/pfile100.ora'startup nomount; 注册catalog目录 :catalog start with '/home/oracle/backup/'; 恢复控制文件:rman target  /restore conrolfile from '/home/oracle/backup/CTL_FILE_ORCL0A0USDSC.BAK'; 启动库到mount状态: alter database mount; 恢复数据库:run{set newname for datafile 1 to '/oradata/orcl/SYSTEM01.DBF';set newname for datafile 2 to '/oradata/orcl/SYSAUX01.DBF';set newname for datafile 3 to '/oradata/orcl/UNDOTBS01.DBF';set newname for datafile 4 to '/oradata/orcl/USERS01.DBF';restore database ;switch datafile all;recover database;}备注:recover database过程中出现 scn 19412报错,因缺少归档日志造成;重新备份日志,复制到新的服务器(从原来库备份归档日志,backup archivelog all format '/home/oracle/backupold/archive_%d_%u.bak';) recover database until scn  19412; 恢复完成;sqlplus /  as sysdbaalter database open resetlogs;(归档日志序列从1开始递增) 3、新库修复工作:新建在线日志组:redo01.log  redo02.log redo03.log根据使用状态删除后新建(删除一个添加一个,做好日志切换工作)删除logfile:alter database drop logfile group 1;增加logfile:   alter  database add logfile group 1 '/oradata/orcl/redo01.log' size 50M;切换日志组状态由active到unactive 或unused状态;(直至3个组全部更换完成) 设置数据默认临时表空间:create temporary tablespace temp01 tempfile '/oradata/orcl/temp101.dbf' size 100m autoextend on maxsize 2g;alter database default temporary tablespace temp01;删除原来temp临时表空间: drop tablespace temp including contents and datafiles; 备注:做好新库备份(备份中存在问题,windows下归档日志路径不存在,导致备份失败) windows备份文件转linux系统,所导致的问题。 由于控制文件有原来的archivelog日志信息,造成清楚这些日志报错 crosscheck archivelog all; SYS@orcl>select name from v$archived_log; NAME -------------------------------------------------------------------------------- C:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2022_05_30\O1_MF_1_5_K99OQ9QC_.ARC C:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2022_05_31\O1_MF_1_6_K9BYLFH7_.ARC C:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2022_05_31\O1_MF_1_7_K9BZ9QW1_.ARC C:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2022_05_31\O1_MF_1_8_K9BZC7Y0_.ARC C:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2022_05_31\O1_MF_1_9_K9BZD2M8_.ARC C:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2022_05_31\O1_MF_1_10_K9BZHLW2_.ARC C:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2022_05_31\O1_MF_1_11_K9BZJ072_.ARC C:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2022_05_31\O1_MF_1_12_K9BZMJCY_.ARC /flash_recovery_area/ORCL/archivelog/2022_05_31/o1_mf_1_14_k9c9qs28_.arc 执行语句:execute sys.dbms_backup_restore.resetCfileSection( 11);select name from v$archived_log;(旧日志删除) 备份新库脚本如上(类似开头备份脚本,目录位置不同,略) Yicheng16 22.05.31 -- The End --    

相关推荐