环境介绍:
rhel5.4 32位 192.168.0.201,ORACLE_SID=orcl
rhel5.4 32位 192.168.0.202,ORACLE_SID=orcl
oracle版本: 11.2.0.1 32位企业版
主库(192.168.0.201)
1、首先在主库上创建测试数据
/*第1步:创建临时表空间 */
create temporary tablespace orcl_temp tempfile '/u01/app/oracle/oradata/orcl/orcl_temp.dbf' size 50m autoextend on next 50m maxsize 2048m extent management local;
/*第2步:创建数据表空间 */
create tablespace orcl_data logging datafile '/u01/app/oracle/oradata/orcl/orcl_data.dbf' size 50m autoextend on next 50m maxsize 2048m extent management local;
/*第3步:创建用户并指定表空间 */
create user orcl identified by orcl default tablespace orcl_data temporary tablespace orcl_temp;
/*第4步:给用户授予权限 */
grant connect,resource,dba to orcl;
登陆刚刚创建的用户orcl
SQL> conn orcl/orcl
Connected.
创建测试表
SQL> create table a(id number,name varchar(10));
SQL> insert into a values(1,'xiao');
SQL> insert into a select * from a;
SQL> select * from a;
ID NAME
---------- ----------
1 xiao
1 xiao
2、通过rman创建备份文件
[oracle@dg1 ~]$mkdir -p /u01/app/oracle/bak
[oracle@dg1 ~]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Wed May 29 15:09:56 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1344401817)
RMAN>
RMAN>backup database format '/u01/app/oracle/bak/%d_%s.bak';
`````````````````````
`````````````````````备份信息--略
`````````````````````
Finished backup at 29-MAY-13
3、复制参数文件到另一台服务器(initorcl.ora)
(如果目录下没有该参数文件,通过create pfile from spfile;创建)
[oracle@dg1 ~]$ cd $ORACLE_HOME/dbs
[oracle@dg1 dbs]$ ls
hc_DBUA0.dat init.ora lkORCL peshm_DBUA0_0 snapcf_orcl.f
hc_orcl.dat initorcl.ora orapworcl peshm_orcl_0 spfileorcl.ora
[oracle@dg1 dbs]$ scp initorcl.ora 192.168.0.202:$ORACLE_HOME/dbs
reverse mapping checking getaddrinfo for bogon failed - POSSIBLE BREAK-IN ATTEMPT!
oracle@192.168.0.202's password:
initorcl.ora 100% 1395 1.4KB/s 00:00
[oracle@dg1 dbs]$
备数据库(192.168.0.202)
1、首先安装oracle软件,不创建数据库
2、创建相应目录
[oracle@dg2 ~]$ mkdir -p /u01/app/oracle/bak
[oracle@dg2 ~]$ mkdir -p /u01/app/oracle/oradata/orcl
[oracle@dg2 ~]$ mkdir -p /u01/app/oracle/admin/orcl/{adump,bdump,cdump,dpdump,udump,pfile}
[oracle@dg2 ~]$ mkdir -p /u01/app/oracle/archive/orcl
[oracle@dg2 ~]$ mkdir -p /u01/app/oracle/oradata/orcl
[oracle@dg2 ~]$ mkdir -p /u01/app/oracle/flash_recovery_area/orcl
主库复制rman备份的数据文件和归档日志文件 到备库相应目录下(注意:主库和备库目录必须一致)
[oracle@dg1 ~]$ cd /u01/app/oracle/bak
[oracle@dg1 bak]$ scp * 192.168.0.202:/u01/app/oracle/bak/
[oracle@dg1 ~]$ cd /u01/app/oracle/archive/orcl
[oracle@dg1 orcl]$ scp * 192.168.0.202:/u01/app/oracle/archive/orcl/
备库通过rman进行恢复
[oracle@dg2 ~]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Wed May 29 15:33:11 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database (not started)
RMAN>
RMAN> startup nomount;
Oracle instance started
Total System Global Area 368263168 bytes
Fixed Size 1336596 bytes
Variable Size 306186988 bytes
Database Buffers 54525952 bytes
Redo Buffers 6213632 bytes
RMAN>
转储controlfile控制文件(因为默认备份信息全部放在控制文件中)
RMAN> restore controlfile from '/u01/app/oracle/bak/ORCL_27.bak';
Starting restore at 29-MAY-13
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 control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
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 29-MAY-13
RMAN> alter database mount;
database mounted
released channel: ORA_DISK_1
查看备份信息
RMAN> list backup of database;
················
·················
·················
转储数据库
RMAN> restore database;
···············
···············
·················
oracle@dg1 ~]$ sqlplus "/as sysdba"
SQL> recover using backup controlfile until cancel;
ORA-00308: cannot open archived log
'/u01/app/oracle/archive/orcl/1_62_816621081.arc'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3(可以忽略)
SQL> alter database open resetlogs;
SQL> conn orcl/orcl
Connected.
SQL> select * from a;
ID NAME
---------- ----------
1 xiao
1 xiao