- 浏览: 2203071 次
文章分类
最新评论
同系统oracle rman异机数据库移植,oracle rman 备份和恢复详解
环境:
源服务器:
VM7.14 rhel5.5-32 oracle 11.2.0.0g
172.16.3.202
目标服务器
VM7.14 rhel5.5-32 oracle 11.2.0.0g
172.16.3.204
源服务器
一、在数据库中加入验证表和数据:
[oracle@ebs01 ~]$ sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.1.0 Production on Sun Jun 10 13:09:43 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> create table addr1(city varchar(20),phone number);
Table created.
SQL> insert into addr1 values('beijing',1580118);
1 row created.
SQL> insert into addr1 values('shanghai',1501005);
1 row created.
SQL> insert into addr1 values('nanjing',1598888);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from addr;
CITY PHONE
-------------------- ----------
beijing 1.5801E+10
shanghai 1.5010E+10
nanjing 1.5988E+10
二、清空备份目录,或者新建一个都行,并备份必要文件。
[oracle@ebs01 ~]$ cd /u01/backup
[oracle@ebs01 backup]$ rm *
1)开始备份,备份数据文件连同归档日志:
[oracle@ebs01 backup]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Mon Jun 11 09:16:52 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1290854593)
RMAN> run {
allocate channel c1 device type disk;
allocate channel c2 device type disk;
backup incremental level 0
format '/u01/backup/db_full_%U.bkp'
tag '2012-06-11-FULL'
database plus archivelog;
release channel c1;
release channel c2;
} 2> 3> 4> 5> 6> 7> 8> 9> 10>
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=41 device type=DISK
allocated channel: c2
channel c2: SID=28 device type=DISK
Starting backup at 11-JUN-12
current log archived
channel c1: starting archived log backup set
channel c1: specifying archived log(s) in backup set
input archived log thread=1 sequence=19 RECID=1 STAMP=784809253
input archived log thread=1 sequence=20 RECID=2 STAMP=784809551
input archived log thread=1 sequence=21 RECID=3 STAMP=785592038
channel c1: starting piece 1 at 11-JUN-12
channel c2: starting archived log backup set
channel c2: specifying archived log(s) in backup set
input archived log thread=1 sequence=22 RECID=4 STAMP=785592147
input archived log thread=1 sequence=23 RECID=5 STAMP=785595880
channel c2: starting piece 1 at 11-JUN-12
channel c1: finished piece 1 at 11-JUN-12
piece handle=/u01/backup/db_full_0mnd8mo1_1_1.bkp tag=2012-06-11-FULL comment=NONE
channel c1: backup set complete, elapsed time: 00:00:08
channel c1: starting archived log backup set
channel c1: specifying archived log(s) in backup set
input archived log thread=1 sequence=24 RECID=6 STAMP=785668864
channel c1: starting piece 1 at 11-JUN-12
channel c2: finished piece 1 at 11-JUN-12
piece handle=/u01/backup/db_full_0nnd8mo1_1_1.bkp tag=2012-06-11-FULL comment=NONE
channel c2: backup set complete, elapsed time: 00:00:08
channel c1: finished piece 1 at 11-JUN-12
piece handle=/u01/backup/db_full_0ond8mo9_1_1.bkp tag=2012-06-11-FULL comment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
Finished backup at 11-JUN-12
Starting backup at 11-JUN-12
channel c1: starting incremental level 0 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf
channel c1: starting piece 1 at 11-JUN-12
channel c2: starting incremental level 0 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00002 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
channel c2: starting piece 1 at 11-JUN-12
channel c2: finished piece 1 at 11-JUN-12
piece handle=/u01/backup/db_full_0qnd8mob_1_1.bkp tag=2012-06-11-FULL comment=NONE
channel c2: backup set complete, elapsed time: 00:00:56
channel c2: starting incremental level 0 datafile backup set
channel c2: specifying datafile(s) in backup set
including current control file in backup set
channel c2: starting piece 1 at 11-JUN-12
channel c2: finished piece 1 at 11-JUN-12
piece handle=/u01/backup/db_full_0rnd8mq4_1_1.bkp tag=2012-06-11-FULL comment=NONE
channel c2: backup set complete, elapsed time: 00:00:09
channel c2: starting incremental level 0 datafile backup set
channel c2: specifying datafile(s) in backup set
including current SPFILE in backup set
channel c2: starting piece 1 at 11-JUN-12
channel c2: finished piece 1 at 11-JUN-12
piece handle=/u01/backup/db_full_0snd8mqs_1_1.bkp tag=2012-06-11-FULL comment=NONE
channel c2: backup set complete, elapsed time: 00:00:07
channel c1: finished piece 1 at 11-JUN-12
piece handle=/u01/backup/db_full_0pnd8mob_1_1.bkp tag=2012-06-11-FULL comment=NONE
channel c1: backup set complete, elapsed time: 00:01:48
Finished backup at 11-JUN-12
Starting backup at 11-JUN-12
current log archived
channel c1: starting archived log backup set
channel c1: specifying archived log(s) in backup set
input archived log thread=1 sequence=25 RECID=7 STAMP=785668983
channel c1: starting piece 1 at 11-JUN-12
channel c1: finished piece 1 at 11-JUN-12
piece handle=/u01/backup/db_full_0tnd8mro_1_1.bkp tag=2012-06-11-FULL comment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
Finished backup at 11-JUN-12
released channel: c1
released channel: c2
2)备份当前控制文件:
RMAN> backup current controlfile format '/u01/backup/controlfile20120611.bak';
Starting backup at 11-JUN-12
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=41 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_DISK_1: starting piece 1 at 11-JUN-12
channel ORA_DISK_1: finished piece 1 at 11-JUN-12
piece handle=/u01/backup/controlfile20120611.bak tag=TAG20120611T093224 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 11-JUN-12
3)备份参数文件
RMAN> backup spfile format '/u01/backup/spfile20120611.bak';
Starting backup at 11-JUN-12
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 11-JUN-12
channel ORA_DISK_1: finished piece 1 at 11-JUN-12
piece handle=/u01/backup/spfile20120611.bak tag=TAG20120611T093402 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 11-JUN-12
RMAN>
目标服务器
一、前期准备
1)查看刚安装的数据库软件ORACLE_BASE目录,只有两个目录,没有flash_recovery_area,oradata ,admin等目录,这些是创建数据库加的
[oracle@localhost app]$ cd oracle
[oracle@localhost oracle]$ ls
checkpoints product
[oracle@localhost oracle]$ mkdir -p /u01/app/oracle/admin/orcl/{adump,bdump,cdump,dpdump,udump,pfile}--单独创建
[oracle@localhost oracle]$ ls
admin checkpoints product
[oracle@localhost oracle]$ cd admin/
[oracle@localhost admin]$ ls
orcl
[oracle@localhost admin]$ cd orcl/
[oracle@localhost orcl]$ ls
adump bdump cdump dpdump pfile udump
[oracle@localhost orcl]$ cd ..
[oracle@localhost admin]$ ls
orcl
[oracle@localhost admin]$ cd ..
[oracle@localhost oracle]$ ls
admin checkpoints product
[oracle@localhost oracle]$ cd ~
[oracle@localhost ~]$ mkdir -p /u01/app/oracle/oradata/orcl
[oracle@localhost oracle]$ mkdir -p /u01/app/oracle/flash_recover_area/ORCL --这个大写小写要看oracle_sid或者数据库名称,或者元数据库控制文件参数文件里规定
[oracle@localhost oracle]$ ls
admin checkpoints flash_recover_area oradata product
[oracle@localhost oracle]$ cd oracle
bash: cd: oracle: 没有那个文件或目录
[oracle@localhost oracle]$ cd oradata/
[oracle@localhost oradata]$ ls
orcl
[oracle@localhost oradata]$ cd ..
[oracle@localhost oracle]$ ls
admin checkpoints flash_recover_area oradata product --也可能是flash_recovery_area,一个y的差别
[oracle@localhost oracle]$ cd admin/
[oracle@localhost admin]$ ls
orcl
[oracle@localhost admin]$ cd ..
[oracle@localhost oracle]$ ls
admin checkpoints flash_recover_area oradata product
[oracle@localhost oracle]$ cd flash_recover_area/
[oracle@localhost flash_recover_area]$ ls
ORCL
[oracle@localhost flash_recover_area]$ echo 'db_name=orcl' > $ORACLE_HOME/dbs/initorcl.ora
--刚装的数据库,只有一个init.ora,这里要生成一个默认的pfile——initorcl.ora,只有一个参数
[oracle@localhost flash_recover_area]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ ls
init.ora initorcl.ora
[oracle@localhost dbs]$ cat initorcl.ora
db_name=orcl --里面只有一个参数
[oracle@localhost dbs]$ cd ~
[oracle@localhost ~]$ echo $ORACLE_SID
orcl
二、数据传输
登录目标服务器,从源服务器把备份好的数据拷贝到目的机器:
[oracle@localhost backup]$ scp -rp 172.16.3.202:/u01/backup/* /u01/backup/
oracle@172.16.3.202's password:
controlfile20120611.bak 100% 9568KB 869.8KB/s 00:11
db_full_0mnd8mo1_1_1.bkp 100% 19MB 989.0KB/s 00:20
db_full_0nnd8mo1_1_1.bkp 100% 38MB 469.8KB/s 01:22
db_full_0ond8mo9_1_1.bkp 100% 13MB 528.1KB/s 00:25
db_full_0pnd8mob_1_1.bkp 100% 663MB 264.7KB/s 42:45
db_full_0qnd8mob_1_1.bkp 100% 419MB 661.8KB/s 10:48
db_full_0rnd8mq4_1_1.bkp 100% 9568KB 3.1MB/s 00:03
db_full_0snd8mqs_1_1.bkp 100% 96KB 96.0KB/s 00:01
db_full_0tnd8mro_1_1.bkp 100% 8192 8.0KB/s 00:00
spfile20120611.bak 100% 96KB 96.0KB/s 00:00
三、开始恢复过程
1)数据库启动到nomount
[oracle@localhost ~]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Mon Jun 11 10:13:09 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database (not started)
RMAN> set dbid=1290854593 --这个dbdi是从源数据库记过来的,可是select dbdi from v$DATABASE找到
executing command: SET DBID
RMAN> startup nomount
Oracle instance started
Total System Global Area 146472960 bytes
Fixed Size 1335080 bytes
Variable Size 92274904 bytes
Database Buffers 50331648 bytes
Redo Buffers 2531328 bytes
2)首先恢复参数文件
RMAN> restore spfile from '/u01/backup/spfile20120611.bak';
Starting restore at 11-JUN-12
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=20 device type=DISK
channel ORA_DISK_1: restoring spfile from AUTOBACKUP /u01/backup/spfile20120611.bak
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 11-JUN-12
3)其次恢复控制文件
要先把数据库强制启动到nomount状态,意思是使刚才恢复的spfile生效,如下:
RMAN> startup nomount force;
Oracle instance started
Total System Global Area 539848704 bytes
Fixed Size 1337748 bytes
Variable Size 406849132 bytes
Database Buffers 125829120 bytes
Redo Buffers 5832704 bytes
RMAN> restore controlfile from '/u01/backup/controlfile20120611.bak';
Starting restore at 11-JUN-12
using channel ORA_DISK_1
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:04
output file name=/u01/app/oracle/oradata/orcl/control01.ctl
output file name=/u01/app/oracle/flash_recovery_area/orcl/control02.ctl
Finished restore at 11-JUN-12
4)把数据库启动到mount状态,
RMAN> alter database mount;
database mounted
released channel: ORA_DISK_1
RMAN> restore database;
Starting restore at 11-JUN-12
Starting implicit crosscheck backup at 11-JUN-12
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK
Crosschecked 27 objects
Finished implicit crosscheck backup at 11-JUN-12
Starting implicit crosscheck copy at 11-JUN-12
using channel ORA_DISK_1
Finished implicit crosscheck copy at 11-JUN-12
searching for all files in the recovery area
cataloging files...
no files cataloged
using channel ORA_DISK_1
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 00002 to /u01/app/oracle/oradata/orcl/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/orcl/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/orcl/users01.dbf
channel ORA_DISK_1: reading from backup piece /u01/backup/db_full_0qnd8mob_1_1.bkp
channel ORA_DISK_1: piece handle=/u01/backup/db_full_0qnd8mob_1_1.bkp tag=2012-06-11-FULL
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:06:17
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 /u01/app/oracle/oradata/orcl/system01.dbf
channel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/orcl/example01.dbf
channel ORA_DISK_1: reading from backup piece /u01/backup/db_full_0pnd8mob_1_1.bkp
channel ORA_DISK_1: piece handle=/u01/backup/db_full_0pnd8mob_1_1.bkp tag=2012-06-11-FULL
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:02:31
Finished restore at 11-JUN-12
不明白下步骤为啥出错,但是恢复alter database open resetlogs; 可以打开数据库,而且验证正确。
RMAN> recover database;
Starting recover at 11-JUN-12
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=25
channel ORA_DISK_1: reading from backup piece /u01/backup/db_full_0tnd8mro_1_1.bkp
channel ORA_DISK_1: piece handle=/u01/backup/db_full_0tnd8mro_1_1.bkp tag=2012-06-11-FULL
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
archived log file name=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2012_06_11/o1_mf_1_25_7xbtjhnv_.arc thread=1 sequence=25
channel default: deleting archived log(s)
archived log file name=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2012_06_11/o1_mf_1_25_7xbtjhnv_.arc RECID=8 STAMP=785677583
unable to find archived log
archived log thread=1 sequence=26
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 06/11/2012 11:46:28
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 26 and starting SCN of 1191327
RMAN> alter database open resetlogs;
database opened
RMAN>
四、登录SQL验证:
[oracle@localhost database]$ sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.1.0 Production on Mon Jun 11 08:13:42 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
SQL> select * from addr;
CITY PHONE
-------------------- ----------
beijing 1.5801E+10
shanghai 1.5010E+10
nanjing 1.5988E+10
SQL> SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/redo03.log
/u01/app/oracle/oradata/orcl/redo02.log
/u01/app/oracle/oradata/orcl/redo01.log
SQL>
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/users01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/system01.dbf
/u01/app/oracle/oradata/orcl/example01.dbf
SQL>
相关推荐
教程名称:傻瓜式实战Oracle RMAN数据库备份和恢复视频课程目录:【】数据库备份和恢复系列].ITBOBA_RMAN_1【】数据库备份和恢复系列].ITBOBA_RMAN_10【】数据库备份和恢复系列].ITBOBA_RMAN_2【】数据库备份和恢复...
Oracle RMAN提供了强大的备份和恢复功能,帮助DBA管理员快速恢复数据库。 备份恢复分类 根据备份的方式和目的,备份恢复可以分为完全恢复和不完全恢复两种。完全恢复是指从备份中恢复整个数据库,而不完全恢复是...
Oracle RMAN 异机 复制数据库
此文档详细描述如果利用rman 完成不完全恢复。试验背景,步骤,命令,所有内容都做说明。
oracle RMAN 备份恢复总结 oracle RMAN 备份恢复总结 oracle RMAN 备份恢复总结
Oracle Rman备份集在异机恢复
采用rman备份的oracle数据库从Windows操作系统的恢复到Linux操作系统方法
基于RMAN的Oracle数据库备份与恢复机制.pdf
Oracle 11g R2 Rman备份与恢复_刘耀龙的博客-CSDN博客_rman备份
查看 RMAN 备份集是指使用RMAN对Oracle数据库进行备份后,查看备份集的状态,以便快速恢复数据库。 2.1.7、测试信息汇总 测试信息汇总是指对备份过程的信息进行汇总,以便快速恢复数据库。 2.2、第一次增量备份 ...
RMAN 异地恢复是指在不同的服务器或存储设备上恢复数据库的备份。这种恢复方式需要在不同的服务器或存储设备上创建软连接、恢复控制文件、重命名数据文件和日志文件、恢复数据库等几个方面。 一、创建软连接 在...
Oracle RMAN增量备份恢复测试记录
测试oracle通过rman备份实现异机恢复
三思oracle学习笔记,文档详细、生动地讲述了如何使用oracle自带的rman工具进行oracle数据库的备份与恢复,是oracle DBA学习的好文章。
超经典的Oracle rman增量备份恢复策略,DBA工作过程中,在对数据库进行备份的时候可以参考此文档
Oracle Rman命令详解,包括rman命令和rman语句解析。
使用RMAN实现ORACLE数据库的增量备份.pdf
Oracle 12c 闪回技术 Flashback Database.pdf Oracle 12c 闪回技术 Oracle Flashback技术.pdf ...Oracle 12c RMAN备份与恢复数据库.pdf Oracle 12c EXPDP和IMPDP指令详解.pdf Oracle 12c EXP和IMP指令详解.pdf
该文档介绍了如何利用rman工具对oracle数据库进行备份和恢复。
使用RMAN实现异机备份恢复(WIN平台)