求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
Oracle 10g RAC RMAN备份异机单实例恢复
 
火龙果软件    发布于 2013-9-18
 

本文通过将Oracle 10g RAC RMAN的完整的备份进行异机恢复的过程,可以对在恢复的过程中可以发现备份时的一些问题。比如规档日志的冗余,控制文件与参数文件的自动备份的利用等,本示例是拿了rman的备份集进行备份的,所以在最后的启动数据库的过程中出现了问题,提示控制文件过旧等问题,所以备份需要经过详细高可用的设计,才能在恢复过程中降低风险。

一、环境说明

操作系统版本: Oracle Enterprise linux 5.8 x64

1. 源数据库服务器

Oracle版本: Oracle 10g RAC 10.2.0.5 64位

Oracle_SID: orcl

2. 目标数据库服务器

Oracle版本 : Oracle 10g 10.2.0.5 64位

Oracle_SID : orcl

只安装了oracle软件,监听,没有dbca操作

二、源DB服务器

1. 源服务器环境说明

源服务器通过执行RAC RMAN备份。需要执行异机恢复操作。

2. 打包或拷贝rman备份目录

$ cd /u01

$ tar czvf rman_bak.tar.gz rman_bak/

三、目的服务器上做RMAN恢复准备

1. 拷贝RMAN备份的数据

# cd /u01/rman_bak/data/
# ll
-rw-r----- 1 oracle oinstall 1080751616 07-18 16:58 archlog.ORCL.level.0.0rof2j8q_1_1_20130718
-rw-r----- 1 oracle oinstall 1018279424 07-18 16:58 archlog.ORCL.level.0.0sof2j8n_1_1_20130718
-rw-r----- 1 oracle oinstall 58086912 07-18 16:58 archlog.ORCL.level.0.0tof2j9l_1_1_20130718
-rw-r----- 1 oracle oinstall 493084672 07-18 16:58 data.ORCL.level.0.0vof2j9v_1_1_20130718
-rw-r----- 1 oracle oinstall 409280512 07-18 16:58 data.ORCL.level.0.10of2j9s_1_1_20130718
-rw-r----- 1 oracle oinstall 15466496 07-18 16:58 data.ORCL.level.0.11of2jae_1_1_20130718
-rw-r----- 1 oracle oinstall 98304 07-18 16:58 spfile_12of2jah_1_1_20130718
#

2. 创建规档日志目录

su - oracle
mkdir -p /u01/archivelog

3. 创建数据库基本目录

说明: 由于rman备份的信息都是记录在controlfile中,所以目录结构应该与原数据库的一致。

mkdir -p /u01/app/oracle/admin/orcl/{adump,bdump,cdump,ddump,udump}  
mkdir -p /u01/app/oracle/oradata/orcl
mkdir -p /u01/app/oracle/flash_recovery_area/ORCL

三、目标服务器上恢复数据

说明: 在目标服务器上创建好参数文件中定义的目录,一一在目标服务器创建完毕。

1. 启动到nomount状态

# su - oracle
$ echo 'db_name=orcl' > $ORACLE_HOME/dbs/initorcl.ora
$ export ORACLE_SID=orcl
$ rman target /
RMAN> startup nomount;

2. 通过恢复spfile文件恢复pfile文件

RMAN> restore spfile to pfile '/u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora'from '
/u01/rman_bak/data/spfile_12of2jah_1_1_20130718';
Starting restore at 19-7? -13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=36 devtype=DISK
channel ORA_DISK_1: autobackup found: /u01/rman_bak/data/spfile_12of2jah_1_1_20130718
channel ORA_DISK_1: SPFILE restore from autobackup complete
Finished restore at 19-7? -13
RMAN> quit

3. 编辑pfile文件

# 修改pfile使用之适合单实例文件系统数据库
$ vi /u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora
#注释掉RAC集群的配置参数,并修改部分单实例参数。
#orcl2.__db_cache_size=822083584
#orcl1.__db_cache_size=771751936
#orcl2.__java_pool_size=16777216
#orcl1.__java_pool_size=16777216
#orcl2.__large_pool_size=16777216
#orcl1.__large_pool_size=16777216
#orcl2.__shared_pool_size=352321536
#orcl1.__shared_pool_size=402653184
#orcl2.__streams_pool_size=0
#orcl1.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.background_dump_dest='/u01/app/oracle/admin/orcl/bdump'
#*.cluster_database_instances=2
#*.cluster_database=true
*.compatible='10.2.0.5.0'
*.control_file_record_keep_time=40
*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/ u01/app/oracle/oradata/orcl/control02.ctl','/u01/app/oracle/oradata/orcl/control03.ctl'
*.core_dump_dest='/u01/app/oracle/admin/orcl/cdump'
*.db_block_size=8192
#*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orcl'
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=21474836480
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
#orcl2.instance_number=2
#orcl1.instance_number=1
*.job_queue_processes=10
#*.log_archive_dest_1='LOCATION=+RECOVERY'
*.log_archive_dest_1='LOCATION=/u01/archivelog'
*.log_archive_format='%t_%s_%r.dbf'
*.open_cursors=300
*.pga_aggregate_target=402653184
*.processes=200
#*.remote_listener='LISTENERS_ORCL'
*.remote_login_passwordfile='exclusive'
*.sessions=225
*.sga_target=1210056704
#orcl2.thread=2
#orcl1.thread=1
*.undo_management='AUTO'
#orcl2.undo_tablespace='UNDOTBS2'
#orcl1.undo_tablespace='UNDOTBS1'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/app/oracle/admin/orcl/udump'

4. 通过修改的pfile重新创建spfile文件

$ sqlplus /nolog
SQL> conn / as sysdba;
SQL> shutdown immediate;
SQL> create spfile from pfile;
# 重新通spfile参数启动
SQL> startup nomount;
SQL> quit

5. 恢复控制文件

说明1: 通过RMAN自动备份的参数与控制文件进行恢复,这个是标准恢复方式,在恢复过程中控制文件通常是比较新的。

说明2: 另一方式是没有自动备份的情况下,通过备份集中的控制文件进行恢复,最后的一个备份集中包含控制文件。

(1) 通过指定备份集恢复控制文件

$ rman target /
Recovery Manager: Release 10.2.0.5.0 - Production on ?l? 7? 19 12:58:26 2013
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: orcl (not mounted)
RMAN> restore controlfile from '/u01/rman_bak/data/data.ORCL.level.0.11of2jae_1_1_20130718';
Starting restore at 19-7? -13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=211 devtype=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output filename=/u01/app/oracle/oradata/orcl/control01.ctl
output filename=/u01/app/oracle/oradata/orcl/control02.ctl
output filename=/u01/app/oracle/oradata/orcl/control03.ctl
Finished restore at 19-7? -13

(2) mount数据库

RMAN> 
RMAN> mount database;
database mounted
released channel: ORA_DISK_1
RMAN> quit

6. 将备份集注册进控制文件里

RMAN> catalog start with '/u01/rman_bak/data/';
searching for all files that match the pattern /u01/rman_bak/data/
List of Files Unknown to the Database
=====================================
File Name: /u01/rman_bak/data/archlog.ORCL.level.0.0rof2j8q_1_1_20130718
File Name: /u01/rman_bak/data/data.ORCL.level.0.0vof2j9v_1_1_20130718
File Name: /u01/rman_bak/data/archlog.ORCL.level.0.0sof2j8n_1_1_20130718
File Name: /u01/rman_bak/data/spfile_12of2jah_1_1_20130718
File Name: /u01/rman_bak/data/data.ORCL.level.0.11of2jae_1_1_20130718
File Name: /u01/rman_bak/data/data.ORCL.level.0.10of2j9s_1_1_20130718
File Name: /u01/rman_bak/data/archlog.ORCL.level.0.0tof2j9l_1_1_20130718
Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /u01/rman_bak/data/archlog.ORCL.level.0.0rof2j8q_1_1_20130718
File Name: /u01/rman_bak/data/data.ORCL.level.0.0vof2j9v_1_1_20130718
File Name: /u01/rman_bak/data/archlog.ORCL.level.0.0sof2j8n_1_1_20130718
File Name: /u01/rman_bak/data/spfile_12of2jah_1_1_20130718
File Name: /u01/rman_bak/data/data.ORCL.level.0.11of2jae_1_1_20130718
File Name: /u01/rman_bak/data/data.ORCL.level.0.10of2j9s_1_1_20130718
File Name: /u01/rman_bak/data/archlog.ORCL.level.0.0tof2j9l_1_1_20130718
RMAN> quit

7. 查看与记录数据库信息

由于控制文件记录的是原oracle10g rac数据库文件的信息,需要记录下来在恢复时进行修改。

(1) 查看数据文件及编号

$ sqlplus / as sysdba;
set pagesize 999;
set linesize 200;
col NAME for a65
select file#,name from v$datafile;
FILE# NAME
---------- ------------------------------------------------------
1 +DATA/orcl/datafile/system.256.814577743
2 +DATA/orcl/datafile/undotbs1.258.814577743
3 +DATA/orcl/datafile/sysaux.257.814577743
4 +DATA/orcl/datafile/users.259.814577743
5 +DATA/orcl/datafile/undotbs2.264.814577829

(2) 查看联机日志文件

col MEMBER for a65
select member from v$logfile;
MEMBER
-----------------------------------------------------------------
+DATA/orcl/onlinelog/group_2.262.814577797
+RECOVERY/orcl/onlinelog/group_2.258.814577797
+DATA/orcl/onlinelog/group_1.261.814577795
+RECOVERY/orcl/onlinelog/group_1.257.814577797
+DATA/orcl/onlinelog/group_3.265.814577887
+RECOVERY/orcl/onlinelog/group_3.259.814577889
+DATA/orcl/onlinelog/group_4.266.814577889
+RECOVERY/orcl/onlinelog/group_4.260.814577889

(3) 查看临时文件

SQL> select name from v$tempfile;
NAME
----------------------------------------------------------------
+DATA/orcl/tempfile/temp.263.814577805
SQL> quit
相关文章

基于EA的数据库建模
数据流建模(EA指南)
“数据湖”:概念、特征、架构与案例
在线商城数据库系统设计 思路+效果
 
相关文档

Greenplum数据库基础培训
MySQL5.1性能优化方案
某电商数据中台架构实践
MySQL高扩展架构设计
相关课程

数据治理、数据架构及数据标准
MongoDB实战课程
并发、大容量、高性能数据库设计与优化
PostgreSQL数据库实战培训
 
分享到
 
 


MySQL索引背后的数据结构
MySQL性能调优与架构设计
SQL Server数据库备份与恢复
让数据库飞起来 10大DB2优化
oracle的临时表空间写满磁盘
数据库的跨平台设计
更多...   


并发、大容量、高性能数据库
高级数据库架构设计师
Hadoop原理与实践
Oracle 数据仓库
数据仓库和数据挖掘
Oracle数据库开发与管理


GE 区块链技术与实现培训
航天科工某子公司 Nodejs高级应用开发
中盛益华 卓越管理者必须具备的五项能力
某信息技术公司 Python培训
某博彩IT系统厂商 易用性测试与评估
中国邮储银行 测试成熟度模型集成(TMMI)
中物院 产品经理与产品管理
更多...