Oracle 11G RMAN备份恢复到异机数据库

说明:

1.此处环境为同平台、同版本(操作系统版本可以不同,但数据库版本需相同),源机器和目标机器具有相同的目录结构。
2.目标机器只需要安装oracle只安装oracle数据库软件,不创建数据库(no netca dbca)。
3.第一次利用备份恢复测试环境,之后从源机器拷贝备份到目标机器并在控制文件中注册,再进行恢复测试。

一、环境描述

1. 源数据库环境

操作系统版本 : CentOS 6.7 x64
数据库版本 : Oracle 11.2.0.4 x64
数据库名 : orcl
数据库SID : orcl
db_unique_name : orcl
instance_name : orcl
IP : 10.0.8.100

2. 目标数据库环境

操作系统版本 : CentOS 6.7 x64
数据库版本 : Oracle 11.2.0.4 x64 (只安装oracle数据库软件,no netca dbca)
数据库名 : orcl
数据库SID : orcl
db_unique_name: orcl
instance_name : orcl
IP:10.0.8.101

主要过程是将参数文件备份、控制文件备份、数据文件备份、密码文件以及归档备份拷贝到目标主机进行rman恢复。
注意:当使用rman nocatalog恢复时,数据库必须是处于“mount”状态的。而Oracle startup mount的前提条件是control必须存在。因此,你必须在恢复datafile之前先恢复controlfile。

二、源数据库服务器

1、查看源数据库DBID、控制文件、数据文件和redo日志文件的存储位置:

# 查看源数据库的DBID:
SQL> select dbid from v$database;

# 查看控制文件:
SQL> select name from v$controlfile;

# 查看数据文件:
SQL> select status,name from v$datafile;

# 查看日志文件:
SQL> select * from v$logfile;

2、rman备份源数据库:

通过rman进行一次全备:
rman target /
RMAN> 
run{
allocalte channel ch1 type disk;
allocalte channel ch2 type disk;
backup as compressed backupset database format '/u02/rman/fulldb_%T_%U';
sql 'alter system archive log current';
backup as compressed backupset archivelog all format '/u02/rman/arc_%T_%U' delete all input;
bakup current controlfile format '/u02/rman/con_%T_%U';
release channel ch2;
release channel ch1;
}
report obsolete; 
crosscheck backup;
crosscheck archivelog all;
delete noprompt obsolete;
delete noprompt expired backup;
list backup summary; 

【注意:控制文件一定要最后备份,由于没做归档目录数据库,rman备份信息都放在控制文件里面,要保证备份过程的信息内容都进入到控制文件,保证数据文件和控制文件是一致备份】

分别列出参数文件备份,控制文件备份,数据文件备份,以及归档备份的名字:
a.参数文件备份如下:
RMAN> list backup of spfile;
b.控制文件备份如下:
RMAN> list backup of controlfile;
c.数据文件备份如下:
RMAN> list backup of database;
d.列出归档备份如下:
RMAN> list backup of archivelog all;

3、备份参数文件:

create pfile='/u02/rman/initorcl.ora' from spfile;
# 【pfile备份后,拷贝到目标数据库服务器】

4、将备份文件、密码文件copy至目标机器:

a.拷贝rman备份文件
scp /u02/rman/* oracle@10.0.8.101:/rmanbak
b.拷贝参数文件
scp /u02/rman/initorcl.ora oracle@10.0.8.101:/rmanbak
c.拷贝密码文件
scp /u01/app/oracle/product/11.2.0.4/db_1/dbs/orapworcl oracle@10.0.8.101:/rmanbak

三、目标数据库服务器

1、目标服务器上创建相应的目录:

mkdir -p /u01/app/oracle/admin/orcl/{adump,dpdump,pfile,scripts} 
mkdir -p /u01/app/oracle/oradata/orcl
mkdir -p /u01/app/oracle/fast_recovery_area/orcl
mkdir -p /u01/archivelog
mkdir -p /rmanbak
chown -R oracle:oinstall /u01/app/oracle/
chown -R oracle:oinstall /rmanbak
chmod -R 775 /u01/

2、恢复参数文件,将数据库启动到nomount:

[oracle@orcl dbs]$ export ORACLE_SID=orcl
[oracle@orcl dbs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Fri Dec 12 20:39:56 2014
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to an idle instance.

SQL> startup nomount pfile='/u02/rman/initorcl.ora'

需要对拷贝过来的pfile进行修改【由于Windows跟Linux磁盘路径不一样,要手工修改到目标数据库的相关路径,并建立相关数据库目录】,不然会提示找不到adump udump等目录路径文件的。
====================================================
orcl.__db_cache_size=398458880
orcl.__java_pool_size=16777216
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=163577856
orcl.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/product/11.2/admin/orcl/adump'
*.background_dump_dest='/u01/app/oracle/product/11.2/admin/orcl/bdump'
*.compatible='11.2.0.4.0'
*.control_files='/u01/app/oracle/oradata/control01.ctl','/u01/app/oracle/oradata/control02.ctl','/u01/app/oracle/oradata/control03.ctl'
*.core_dump_dest='/u01/app/oracle/product/11.2/admin/orcl/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orcl'
*.db_recovery_file_dest='/u01/app/oracle/product/11.2/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=196083712
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=589299712
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/app/oracle/product/11.2/admin/orcl/udump'

用pfile生成spfile文件:
SQL> create spfile from pfile;
SQL> shutdown immediate;
SQL> startup nomount;  --启动到nomount状态

3、恢复控制文件:

[oracle@orcl ~]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Fri Dec 12 20:40:14 2014
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: orcl (not mounted)

RMAN> set DBID=3882088725;
RMAN> restore controlfile from '/rmanbak/fulldb_orcl_04rdg8d5_1_1' ;

RMAN> alter database mount;  --将数据库启动到mount

4、恢复数据文件:

[oracle@orcl ~]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Fri Dec 12 20:40:14 2014
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: orcl (mounted)
# 将备份集信息重新导入到当前控制文件中(一定要用“/”结尾,不然可能会找不到真实的路径)
RMAN> catalog start with '/rmanbak/';
RMAN> restore database;   --还原数据文件
RMAN> recover database;  --还原归档日志

# 恢复完成后,将库启动到read only模式,查询一下数据是否正常
SQL> alter database open read only;

5、恢复密码文件:

将拷贝过来的密码文件恢复至数据库对应目录下:
cp /rmanbak/orapworcl /u01/app/oracle/product/11.2.0.4/db_1/dbs/orapworcl
或者手动创建密码文件:
orapwdfile='/u01/app/oracle/product/11.2.0.4/db_1/dbs/orapworcl' password=oracle entries=30 force=y

6、恢复归档日志:

可能在恢复的过程中归档没有及时生成,可以在最后再备份一下归档日志,或者将新产生的归档拷贝到归档的相应目录下,然后进行如下的恢复操作步骤:
RMAN>  alter database mount;  --接上面
RMAN>  catalog start with '/u01/backup/arch/';
RMAN>  recover database;

7、RESETLOGS打开数据库:

SQL> alter database open resetlogs;
SQL> select name,OPEN_MODE from v$database;  --验证数据库状态
SQL> select max(sequence#) from v$archived_log; 

重新启动数据库
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup
ORACLE instance started.
Total System Global Area 584568832 bytes
Fixed Size          2255432 bytes
Variable Size         226493880 bytes
Database Buffers      352321536 bytes
Redo Buffers           3497984 bytes
Database mounted.
Database opened.

至此数据库恢复完成。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值