使用rman备份异机恢复数据库

一.RMAN备份源库
注意点:
 最好保留rman备份日志

$rman target / log=backup.log
RMAN>run {
allocate channel t1 type disk;
allocate channel t2 type disk;
allocate channel t3 type disk;
allocate channel t4 type disk;
backup format ‘<give location of backup/%U>‘ filesperset 8 (database);

sql ‘alter system archive log current‘;
backup format ‘<give location of backup/%U>‘ fiesperset 8 (archivelog all);
backup format ‘<give location of backup/%U>‘ current controlfile;
}

二.将备份文件传输到用于恢复的机器
注意点:
在10之前,必须将备份放到相同的路径和目录;10g之后,可以使用catalog命令进行注册。
除了备份文件,还要将参数文件传输过去(当然也可以自己重建)

2.1 创建或修改参数文件
 对于参数文件中使用的文件路径目录都要创建好
2.2 创建口令文件

 C:\> orapwd file=pwdmdb.ora password=ys0608ys entries=2

2.3 创建oracle services(windows平台需要执行)

  C:\> ORADIM -new -sid mdb -intpwd ys0608ys -maxusers 10 -startmode auto -pfile  ‘C:\init.ora‘;

三.还原控制文件

> set oracle_sid=mdb
> sqlplus /nolog
$ connect /as sysdba
$ startup nomount pfile=C:\init.ora
$ exit
> rman target /
RMAN> restore controlfile from ‘C:\data\NCCNTRL_20150921_8AQHLUR6_1_1‘  #这一步需要使用到参数文件中对控制文件的配置信息
RMAN> alter database mount;

四.catalog备份信息
如果备份文件的位置和源库上不同,需要进行catalog注册

RMAN> catalog start with ‘备份文件的存放目录‘ noprompt;         #会将所有的备份片注册进来
RMAN> crosscheck backup tag ‘<backup tag from backup log>‘ ;     #如果有多份备份,将老的备份标记为expired
RMAN> delete expired backup;                                      #删除过期的备份   

五.还原数据库

RMAN> report schema;    #列出schema信息,如果源库和目标库的文件位置或文件名不同,需要使用set newname进行重新设置
RMAN> run{
   allocate channel t1 type disk;
   allocate channel t2 type disk;
   set newname for datafile 1 to ‘C:\ORACLE\ORADATA\SYSTEM01.DBF‘;
   set newname for datafile 2 to ‘C:\ORACLE\ORADATA\SYSAUX01.DB‘;
   set newname for datafile 3 to ‘C:\ORACLE\ORADATA\UNDOTBS01.DBF‘;
   set newname for datafile 4 to ‘C:\ORACLE\ORADATA\USERS01.DBF‘;
   set until sequence 24;
   restore database;
   switch datafile all;
   recover database;
  }

sequence可以从rman备份日志中找到,或者查看v$backup_redolog

六.重命名redo文件

SQL> set lines 200
     col member format a60
     select a.thread#,a.group#,b.type,b.member,a.bytes/1048576
     from v$log a,v$logfile b
     where a.group#=b.group# order by a.group#;
SQL> alter database rename file ‘<old file location and name>‘ to ‘<new location and name>‘;

确认一下

SQL> select a.thread#,a.group#,b.type,b.member,a.bytes/1048576 from v$log a,v$logfile b where a.group#=b.group# order by a.group#;

七.重命名temp文件

SQL> alter database rename tempfile ‘D:\APP\ADMINISTRATOR\ORADATA\mdb\TEMP01.DBF‘ to ‘C:\ORACLE\ORADATA\TEMP01.DBF‘

八.打开数据库

SQL> alter database open resetlogs;
SQL> create spfile from pfile;
SQL> shutdown immediate
SQL> startup
时间: 2024-10-16 20:15:56

使用rman备份异机恢复数据库的相关文章

ORACLE中采用rman备份异机恢复数据库详细过程

场景:        有一个生产库的用户下面所有的表都不见了,怀疑人为被删除了,现在需要用备份去恢复下,找出原来的表,线上是oracle dataguard环境,有全库备份文件,准备去测试库恢复一下. 1,从生产库上copy好全备份文件恢复数据库需要准备的文件:rman完整备份(包括数据文件.日志文件.控制文件.参数文件),记录源数据库的DBID 安装的测试数据库ORACLE数据库软件并创建跟源数据库同名和数据库SID并修改数据库DBID跟源数据库DBID一样,创建跟源数据库服务器相同的数据文件

RMAN - 备份异机恢复

OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production ① RMAN异机恢复的时候,db_name必须相同.如果想要改别的实例命,可以在RMAN恢复成功后,用 nid 命令修改. ② 恢复路径与源库不相同,在restore时用set指定新位置,并用switch logfile all 将信息更新到controlfile文

Oracle之使用rman进行异机恢复测试记录

本次测试目的是从生产数据库导出rman备份然后在测试数据库恢复 1,拷贝备份至相应目录 2,进入rman rman target \ 3,关闭数据库 shutdown 4,以nomount模式启动数据库 startup nomount 5,恢复控制文件 restore controlfile from ' /home/oracle/rman_backup/cf_c-1383295282-20171102-00'; 6,挂载数据库 alter database mount; 7,设置catalog

rman全备份异机恢复

一.测试环境 [[email protected] ~]$ uname -a Linux localhost.localdomain 2.6.32-131.0.15.el6.x86_64 #1 SMP Tue May 10 15:42:40 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux [[email protected] ~]$ sqlplus "/as sysdba" SQL*Plus: Release 11.2.0.1.0 Production

rman 备份并异机恢复

1.RMAN 备份脚本 RUN { CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO "/backup/ZGW_Controlfile_%F"; ALLOCATE CHANNEL CH1 DEVICE TYPE DISK;

Oracle 单实例 迁移到 RAC 实例 -- 使用RMAN 异机恢复

Oracle 官网有关单实例迁移到RAC的一个步骤说明: How to Convert 10g Single-Instance database to 10g RAC using Manual Conversion procedure [ID 747457.1] http://blog.csdn.net/tianlesoftware/archive/2010/12/09/6065903.aspx   RMAN 备份异机恢复 并创建新DBID http://blog.csdn.net/tianle

Oracle 11g 异机恢复参考文档

  原库 目标库 操作系统 CentOS 6.4 CentOS 6.4 主机名 sht-sgmhadoopnn-01 sht-sgmhadoopnn-02 IP 172.16.101.55 172.16.101.56 数据库版本 11.2.0.4.0 11.2.0.4.0 $ORACLE_BASE /u01/app/oracle /u01/app/oracle $ORACLE_HOME /u01/app/oracle/product/11.2.0/db_1 /u01/app/oracle/pro

Oracle异机恢复处理

在平时工作中,我们可能会或多或少遇到数据迁移问题,比如:数据库之前在windows机器上,然后我们由于更换新服务器,想把数据迁移到新服务器上,新服务器安装的是linux系统.由于系统不同,目录结构肯定也不一样,所以在备份恢复数据时,我们就遇到很多问题.下面分享下我处理这种问题的恢复方法. 环境:SUSE linux10(由于资源有限,源库和目标库都在此服务器上,但不影响操作方法,源库和目标库的文件位置不同,这个是重点,因为异构系统的文件存放路径肯定不一致,比如上面提到windows系统的库恢复到

rman备份与异机恢复

一.rman备份脚本并为定时任务 #!/bin/bashsource ~/.bash_profileexport LANG=en_USBACKUP_DATE=`date +%d`#RMAN_LOG_FILE=${0}.outRMAN_LOG_FILE=backupinfo.outTODAY=`date`USER=`id|cut -d "(" -f2|cut -d")" -f1`echo "---------------$TODAY-------------