ORACLE RMAN备份 异机恢复

回复 收藏
一、首先在主库上做完整0级备份

二、恢复服务器准备
数据库处于关闭状态
SQL>shutdown immediate;

先备份SPfile文件至目标数据库tablespace.ora

注:此处如果恢复服务器与主库目录结构相同,可以不用更改SPFILE。 省略SPFILE改为PFILE后导入的过程
1、SPfile 改为pfile后,更改参数
SQL>create pfile='/usr/local/u01/orabak/tablespace.ora' from spfile;
记事本打开tablespace.ora

修改相应参数,路径
*.control_files=:控制文件路径
*.audit_file_dest:Oracle审计输出的debug日志路径
*.log_archive_dest_1:归档文件路径,如果启用了归档模式的话
media360.__oracle_base:数据库根目录
*.db_recovery_file_dest

修改后上传至相应路径,修改权限
chown oracle:oinstall tablespace.ora

错误:
ORA-07391: sftopn: fopen error, unable to open text file
权限问题导致,PFILE目录要在ORACLE目录下

2、根据pfile创建SPFILE
SQL>create spfile from pfile ='/usr/local/u01/orabak/tablespace.ora';
File created.

3、创建成功后就可以启动到NOMOUNT状态了
SQL> startup nomount

错误:ORA-00845: MEMORY_TARGET not supported on this system
这个问题是由于设置SGA的大小超过了操作系统/dev/shm的大小:
查看主库上,MEMORY_TARGET大小设置

SQL> show parameter memory_target

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_target big integer 25856M
而215上,仅为6G
tmpfs 6.0G 0 6.0G 0% /dev/shm

调整/dev/shm大小
vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=26624M 0 0
size大小要超过 25856M
#umount /dev/shm/
#mount /dev/shm/
df -h
tmpfs 26G 12G 15G 44% /dev/shm
之后执行startup nomount
SQL> startup nomount
ORACLE instance started.

Total System Global Area 2.6991E+10 bytes
Fixed Size 2213976 bytes
Variable Size 1.7448E+10 bytes
Database Buffers 9395240960 bytes
Redo Buffers

4、查询出源数据库的DBID(主库上操作)
ORACLE用户下,直接RMAN登录, 会显示
  1. [oracle@localhost]$ rman target /
  2. Recovery Manager: Release 11.2.0.1.0 - Production on Thu May 9 14:59:15 2013
  3. Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
  4. connected to target database: MEDIA360 (DBID=2683963637)
  5. RMAN>  
  6. DBID=2683963637
5、恢复控制文件并加入到加载状态(恢复服务器上操作)
  1. RMAN> set DBID=2683963637;
  2. executing command: SET DBID
  3. 从指定备份集中恢复控制文件
  4. RMAN> restore controlfile from '/data0/rman/cntrl_15_1_20130509';
  5. Starting restore at 09-MAY-13
  6. using target database control file instead of recovery catalog
  7. allocated channel: ORA_DISK_1
  8. channel ORA_DISK_1: SID=958 device type=DISK
  9. channel ORA_DISK_1: restoring control file
  10. channel ORA_DISK_1: restore complete, elapsed time: 00:00:15
  11. output file name=/usr/local/u01/oradata/dataspace/control01.ctl
  12. output file name=/usr/local/u01/flash_recovery_area/dataspace/control02.ctl
  13. Finished restore at 09-MAY-13
控制文件会恢复到初始化参数CONTROL_FILES指定的目录下,之后MOUNT数据库

RMAN> alter database mount;

注:此处,备份集指定目录已写在配置文件中,主库与恢复服务器目录结构要保持相同 ,且要使用相同 的数据库备份集目录,而导入过程中又要求有相同的数据目录,如不同要额外指定表空间,且注意权限


6、修复数据库
如果两台数据库目录结构一致,则不用新建目录 ,要两者的备份集指向同一目录,在配置文件中有所指定

RMAN> restore database;、

7、恢复数据库
恢复过程中,要指定主库上的SCN。 在主库上执行
RMAN> list backup of archivelog all;查看 最后的scn,恢复使用“ recover database until scn 19005028832;” 不指定会报错 ;



RMAN> recover database until scn 19005028832;


8、打开数据库
RMAN> alter database open resetlogs;

注:为防止备份占用空间过,导致备份失败,设置备份保留天数为7天

RMAN> configure retention policy to recovery window of 7 days;


增量备份0级脚本[code]#!/bin/sh
echo "==============rman bak level 0 begin at=================";
date
source /usr/local/u01/app/.bash_profile
rman target /  msglog /data0/OracleBak/rman/rman.log append <
2013-05-17 09:27 举报
已邀请:
0

nihao426181

赞同来自:

不懂………………
0

nihao426181

赞同来自:

好好学习…………
0

nihao426181

赞同来自:

……………………
0

nihao426181

赞同来自:

…………………………
0

nihao426181

赞同来自:

…………………………………………………………………………………………
0

zpf

赞同来自:

顶,,很只得学习
0

heiyan

赞同来自:

没搞过。看网上的帖子都说,因为改变了路径,需要转换文件名称。没看到你这边转换的命令,是不用转换么?

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: