rman数据迁移

23 篇文章 0 订阅
2 篇文章 0 订阅

环境:

备份数据库

操作系统:oracle linux 6.3

IP地址:192.168.137.11

数据库:Oracle 11.2.0.3.0

ORACLE_SID:normal

Global_name:normal


恢复数据库

操作系统:oracle linux 6.3

IP地址:192.168.137.12

数据库:Oracle 11.2.0.3.0

ORACLE_SID:normal


注意:上面恢复数据库只安装了数据库软件,没有创建数据库

-------------------------------------------------
--在备份前把rman中自动备份spfile和controlfile去了
-------------------------------------------------

--压缩版本
rman target / nocatalog log /tmp/rman.log <<EOF
run{
	allocate channel c1 type disk;
	allocate channel c2 type disk;
	sql 'alter system archive log current';
	backup as compressed backupset database format '/u01/app/oracle/backup/full_%d_%T_%s_%p';
	sql 'alter system archive log current';
	backup as compressed backupset archivelog all format '/u01/app/oracle/backup/arch_%d_%T_%s_%p' delete input;
	backup current controlfile format '/u01/app/oracle/backup/ctl_%d_%T_%s_%p';
	backup spfile format '/u01/app/oracle/backup/spfile_%d_%T_%s_%p';
	release channel c1;
	release channel c2;
}
EOF
--没压缩版本
rman target / nocatalog log /tmp/rman.log <<EOF
run{
	allocate channel c1 type disk;
	allocate channel c2 type disk;
	sql 'alter system archive log current';
	backup database format '/u01/app/oracle/backup/full_%d_%T_%s_%p';
	sql 'alter system archive log current';
	backup archivelog all format '/u01/app/oracle/backup/arch_%d_%T_%s_%p' delete input;
	backup current controlfile format '/u01/app/oracle/backup/ctl_%d_%T_%s_%p';
	backup spfile format '/u01/app/oracle/backup/spfile_%d_%T_%s_%p';
	release channel c1;
	release channel c2;
}
EOF

--前提:在恢复机器上只安装好数据库软件
mkdir -p /u01/app/oracle/flash_recovery_area
mkdir -p /u01/app/oracle/backup
mkdir -p /u01/app/oracle/admin/normal/adump
mkdir -p /u01/app/oracle/oradata/normal

--创建密码文件(在$ORACLE_HOME/dbs目录下)
orapwd file=orapwnormal password=oracle entries=5

--在备份机上的备份文件如下
[oracle@normal backup]$ ll
total 861200
-rw-r----- 1 oracle oinstall  26749952 Aug 28 09:07 arch_NORMAL_20140828_10_1
-rw-r----- 1 oracle oinstall  96722432 Aug 28 09:07 arch_NORMAL_20140828_9_1
-rw-r----- 1 oracle oinstall   9830400 Aug 28 09:07 ctl_NORMAL_20140828_11_1
-rw-r----- 1 oracle oinstall 246669312 Aug 28 09:06 full_NORMAL_20140828_5_1
-rw-r----- 1 oracle oinstall 491855872 Aug 28 09:07 full_NORMAL_20140828_6_1
-rw-r----- 1 oracle oinstall   9830400 Aug 28 09:07 full_NORMAL_20140828_7_1	--rman自动备份的control file
-rw-r----- 1 oracle oinstall     98304 Aug 28 09:07 full_NORMAL_20140828_8_1	--rman自动备份的spfile
-rw-r----- 1 oracle oinstall     98304 Aug 28 09:07 spfile_NORMAL_20140828_12_1

--将备份的文件传输到 恢复库
scp -r full_NORMAL_20140828_5_1 192.168.137.12:/u01/app/oracle/backup/
scp -r full_NORMAL_20140828_6_1 192.168.137.12:/u01/app/oracle/backup/
scp -r arch_NORMAL_20140828_9_1 192.168.137.12:/u01/app/oracle/backup/
scp -r arch_NORMAL_20140828_10_1 192.168.137.12:/u01/app/oracle/backup/
scp -r ctl_NORMAL_20140828_11_1 192.168.137.12:/u01/app/oracle/backup/
scp -r spfile_NORMAL_20140828_12_1 192.168.137.12:/u01/app/oracle/backup/ 

--通过rman将备份的spfile_NORMAL_20140828_12_1恢复到数据库
rman target /
startup 			--报错没关系
restore spfile to '/u01/app/oracle/product/11.2.0/db_1/dbs/spfilenormal.ora' from '/u01/app/oracle/backup/spfile_NORMAL_20140828_12_1';

--启动数据库到nomount
sqlplus / as sysdba
shutdown immediate
startup nomount

--通过rman恢复备份的control file
restore controlfile from '/u01/app/oracle/backup/ctl_NORMAL_20140828_11_1';

--将数据库打开到 mount 状态
alter database mount;

--指定备份文件所在目录 并且 扫描整个目录的备份片或者归档日志文件等
catalog start with '/u01/app/oracle/backup';

--restore数据库
restore database;

--recover 数据库(注意这一步要在sqlplus中做,直接使用recover database会报错。如下:) 
RMAN> recover database; 

Starting recover at 2014-08-28 10:04:55
using channel ORA_DISK_1

starting media recovery

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 08/28/2014 10:04:56
ORA-01013: user requested cancel of current operation

--在sqlplus中进行恢复
sqlplus / as sysdba

SQL> recover database until cancel;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done

SQL> recover database using backup controlfile until cancel; 
ORA-00279: change 936469 generated at 08/28/2014 09:06:17 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/flash_recovery_area/NORMAL/archivelog/2014_08_28/o1_mf_1_82_%u_.arc
ORA-00280: change 936469 for thread 1 is in sequence #82

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
 
--由于没有redo log,所以我们需要使用resetlogs 打开数据库
alter database open resetlogs;

--一致性关闭数据库并重启数据库
shutdown immediate

startup


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值