ITPub博客

首页 > 数据库 > Oracle > Windows oracle 11g rman备份恢复到linux系统

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

原创 Oracle 作者:Yichen16 时间:2022-05-31 22:47:18 0 删除 编辑

          今天试验了下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 sysdba

alter 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 --    

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69963467/viewspace-2898293/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-02-22

  • 博文量
    39
  • 访问量
    33302