通过NBU将Oracle恢复到异机上... 2

1.1       备份任务检查: 2

1.2       数据库空间检查... 2

1.3       恢复服务器(testdb)软件安装:... 3

1.4    NBU 配置更改:... 3

1.5       数据库恢复初始... 3

1.6       确定数据文件路径:... 4

1.7       实现数据库恢复:... 5

1.7.1   重新创建temporary tablespace. 6

1.7.2   创建listener.ora和tnsnames.ora文件.... 6

通过NBU将Oracle恢复到异机上

本文描述的是使用VERITAS的备份软件,将备份的Oracle数据库数据,恢复到另一台服务器上。

整个恢复过程的时间,与备份数据库的数据量大小相关、与恢复前的准备工作相关,包括如下几个过程:

这里设定:

NBU master Server:  fzjc

原服务器为      :YXDB_A_MEDIA

恢复主机为      :testdb

任务设定如下:

通过NBU master server fzjc,将备份的YXDB_A_MEDIA上的Oracle,恢复到到testdb上。

1.1   备份任务检查:

1.首先 YXDB_A_MEDIA 的Oracle在NBU上备份成功。

打开fzjc 上NBU Console,查看YXDB_A_MEDIA相关Oracle 备份的策略和定时备份任务情况,确定Oracle备份任务执行成功无误。

2.确认备份Master Server能够操作磁带库,能够备份数据到磁带上。

1.2   数据库空间检查

1.为了将数据数据恢复到其他服务器上,必须确定原数据库整个数据库占用磁盘空间大小:

在YXDB_A_MEDIA上以系统管理员身份登录:

A  =  select sum(bytes)/1024/1024 "Total redo size in MB" from v$logfile;

B  =  select sum(bytes)/1024/1024 "Total DB file size in MB" from v$datafile;

C  >  归档日志目录(/arch)空间大小(该空间应尽可能大)

2. 确定testdb上的可用磁盘空间:

(1)NBU 软件安装需要>500M

(2)Oracle 软件安装需要>1000M

可用空间 > A + B + C + 2G

1.3   恢复服务器(testdb)软件安装:

1. 在testdb上创建oracle用户、dba组,该用户的uid、gid必须与YXDB_A_MEDIA上的oracle用户相同。

2.安装与YXDB_A_MEDIA上同版本的Oracle软件(9.2.05),不创建instance,确认$ORACLE_HOME。

3.安装NBU Client 端,在fzjc上建立测试策略,能够备份该客户端上的文件系统数据。

4.安装NBU Oracle Agent,以oracle 用户登陆,执行:/usr/openv/netbackup/bin/oracle_link。

1.4   NBU 配置更改:

1. 在NBU master服务器 fzjc上创建文件 install_path/netbackup/db/altnames/No.Restrictions

2. 在testdb上,在 $ORACLE_HOME/bp.conf 中设置 SERVER=fzjc。

3. 在testdb上,设置环境变量

ORACLE_SID = STGD; export ORACLE_SID

NB_ORA_CLIENT = YXDB_A_MEDIA; export NB_ORA_CLIENT

1.5   数据库恢复初始

1. 拷贝YXDB_A_MEDIA上的$ORACLE_HOME/dbs/initSTGD.ora到testdb服务器上$ORACLE_HOME/dbs/initSTGD.ora

2.修改$ORACLE_HOME/dbs/initSTGD.ora :

(1) control_files = ("/data/oradata/STGD/control01.ctl ")

(2) log_archive_dest="/arch"

(3) sort_area_size=20000000

3. 创建相关目录:

(1) 设置$ORACLE_BASE=/data/oradata

(2) 创建$ORACLE_BASE/STGD/bdump、$ORACLE_BASE/STGD/cdump、$ORACLE_BASE/STGD/udump、/arch目录

4.创建testdb上的数据库启动control
file:

(1) 以sysdb登陆YXDB_A_MEDIA上的oracle(STGD):

SQL>alter database backup
controlefile to ‘/tmp/control01.ctl’;

(2) 拷贝该文件(control01.ctl)到testdb服务器上的
$ORACLE_BASE/STGD/control01.ctl ;

5. 设置oracle数据库口令文件:

在testdb上以oracle用户登陆,

$orapwd file=$ORACLE_HOME/dbs/orapwSTGD
password=oracle

1.6  
确定数据文件路径:

由于原服务器YXDB_A_MEDIA上,所有数据文件都使用裸设备,而在testdb上则使用数据文件(*.dbf),因此需要确定数据文件与裸设备的对应关系;

在testdb上,以oracle用户登陆,以sysdba登陆oracle:

SQL>start mount;

SQL>echo on;

SQL>spool /tmp/dbfile.txt

SQL>select file#,name from v$datafile;

SQL>quit;

1.7  
实现数据库恢复:

在 testdb上,以oracle用户登陆:

$ rman nocatalog target / cmdfile restore.rcv msglog restore.log

其中restore.rcv 参见下文,该文件中的

“set newname for datafile 1 to
'/data/oradata/STGD/system01.dbf';”等修改于1.6中的dbfile.txt。

附一:restore.rcv脚本:

 

#### This file to used rman to restore database

run {

allocate channel ch00 type 'sbt_tape'
parms="ENV=(NB_ORA_SERV=fzjc,NB_ORA_CLIENT=YXDB_A_MEDIA)";

allocate channel ch01 type 'sbt_tape'
parms="ENV=(NB_ORA_SERV=fzjc,NB_ORA_CLIENT=YXDB_A_MEDIA)";

SEND 'NB_ORA_SERV=fzjc,NB_ORA_CLIENT=YXDB_A_MEDIA';

set newname for datafile 1 to
'/data/oradata/STGD/system01.dbf';

set newname for datafile 2 to
'/data/oradata/STGD/undotbs01.dbf';

set newname for datafile 3 to '/data/oradata/STGD/indx01.dbf';

set newname for datafile 4 to
'/data/oradata/STGD/user01.dbf';

set newname for datafile 5 to
'/data/oradata/STGD/tools01.dbf';

set newname for datafile 6 to
'/data/oradata/STGD/yd_data01.dbf';

set newname for datafile 7 to '/data/oradata/STGD/yd_lrob01.dbf';

set newname for datafile 8 to
'/data/oradata/STGD/yd_hstr01.dbf';

set newname for datafile 9 to
'/data/oradata/STGD/undotbs02.dbf';

set newname for datafile 10 to
'/data/oradata/STGD/yd_data02.dbf';

set newname for datafile 11 to
'/data/oradata/STGD/drsys01.dbf';

set newname for datafile 12 to
'/data/oradata/STGD/xdb01.dbf';

set newname for datafile 13 to
'/data/oradata/STGD/yd_data07.dbf';

set newname for datafile 14 to
'/data/oradata/STGD/yd_hstr09.dbf';

set newname for datafile 15 to
'/data/oradata/STGD/yd_hstr10.dbf';

set newname for datafile 16 to
'/data/oradata/STGD/yd_data08.dbf';

set newname for datafile 17 to
'/data/oradata/STGD/yd_hstr02.dbf';

set newname for datafile 18 to
'/data/oradata/STGD/yd_data03.dbf';

set newname for datafile 19 to
'/data/oradata/STGD/undotbs03.dbf';

set newname for datafile 20 to
'/data/oradata/STGD/yd_data04.dbf';

set newname for datafile 21 to
'/data/oradata/STGD/yd_hstr03.dbf';

set newname for datafile 22 to
'/data/oradata/STGD/yd_data05.dbf';

set newname for datafile 23 to
'/data/oradata/STGD/yd_hstr04.dbf';

set newname for datafile 24 to
'/data/oradata/STGD/yd_data06.dbf';

set newname for datafile 25 to
'/data/oradata/STGD/apm.dbf';

set newname for datafile 26 to '/data/oradata/STGD/indx02.dbf';

set newname for datafile 27 to
'/data/oradata/STGD/yd_hstr05.dbf';

set newname for datafile 28 to
'/data/oradata/STGD/yd_hstr06.dbf';

set newname for datafile 29 to
'/data/oradata/STGD/yd_hstr07.dbf';

set newname for datafile 30 to '/data/oradata/STGD/yd_hstr08.dbf';

set until time "to_date('02/13/06
06:00:00','MM/DD/YY HH24:MI:SS')";

restore database;

switch datafile all;

recover database;

sql 'alter database open resetlogs';

}

1.7.1   重新创建temporary tablespace

由于rman备份的时候并不备temporary tablespaces,所以恢复完毕后,要重新创建它们。如:

$sqlplus /nolog

sql>conn /as sysdba

sql>alter tablespace temp

add tempfile ‘/data/oradata/STGD/temp01.dbf’ size 128m;

1.7.2   创建listener.ora和tnsnames.ora文件

为了能让此数据库接受远程访问,则需配置listener。

可以copy一个其他数据库服务器上的

$ORACLE_HOME/network/admin/listener.ora和tnsnames.ora文件到

orarcv的$ORACLE_HOME/network/admin/下,并编辑它们,把里面内容更改一下,如LISTENER改为LISTENER1,port=1521改为1526等等。

然后启动listner:

$lsnrctl start listener1

【转载】NBU异机恢复oracle的更多相关文章

  1. NBU Rman异机恢复Oracle

    前段时间一个亿级分区表,被分割成历史表和业务表,历史表中保留15天以外的数据,每天都会从业务表中的15天外的数据copy到历史表,并删除业务表15天外的数据,逻辑也很简单,但插入历史表的where 条 ...

  2. 使用NBU进行oracle异机恢复

    windows平台的异机恢复,目录不同 1.异机环境准备安装oracle介质安装nbu客户端在异机主机的host文件中添加nbu server主机和原主机信息 2.恢复spfile文件 C:\> ...

  3. 使用不同用户对Oracle数据库进行异机恢复,失败,错误:Backup file not found in NetBackup catalog

    最近做某数据库恢复演练,数据库版本是10.2.0.4,恢复控制文件一直报错,报错如下,经过反复折腾,原来恢复机上oracle用户不是oracle导致(我的是oraclev4),查看源库oracle用户 ...

  4. Hyper-V安装Oracle Linux6_4 Oracle db 12c并使用rman做异机恢复

    本文记录在Windows Server 2012 R2上安装Oracle Enterprise Linux 6.4以及使用RMAN进行进行异机恢复的过程. Windows服务器增加Hyper-V功能 ...

  5. Oracle 单实例 迁移到 RAC 实例 -- 使用RMAN 异机恢复

    Oracle 官网有关单实例迁移到RAC的一个步骤说明: How to Convert 10g Single-Instance database to 10g RAC using Manual Con ...

  6. oracle rman异机恢复

      Oracle源主机 Oracle目标主机 主机平台 CentOS6.2(final) CentOs6.2(FInal) 主机名 vick rman IP地址 192.168.1.11 192.16 ...

  7. Oracle 11g 异机恢复参考文档

      原库 目标库 操作系统 CentOS 6.4 CentOS 6.4 主机名 sht-sgmhadoopnn-01 sht-sgmhadoopnn-02 IP 172.16.101.55 172.1 ...

  8. rman恢复方案和oracle异机恢复

    这篇文章主要介绍了rman恢复方案和oracle异机恢复,需要的朋友可以参考下 注:①恢复的前提是已经做好备份②完全恢复数据库是数据库遇到故障,在恢复时候没有丢失任何已经提交事物数据的恢复不完全恢复数 ...

  9. ORACLE 异机恢复

    有时候需要将大的数据库发布到客户现场或转移机器时,不得不考虑在异机上恢复已经调整.测试好的库. dumpdp 全备的方法虽然易用,但在处理对象.索引.空间的时候异常的出错,比如:见有些公司,建表.索引 ...

随机推荐

  1. 三. 初步认识Eureka注册中心

    Eureka Eureka是Netflix公司出品,英文直译:发现了,找到了! 认识Eureka (一)首先我们来解决第一问题,服务的管理. Ⅰ.早期开发模式中出现的问题 再早期开发时业务时,首先模块 ...

  2. 软件篇-06-SLAM小车Self Navigation

    当SLAM小车能够以较高的精度运动到人为设置的目标点时,下一步就是把SLAM小车放到一个陌生的环境中,让它自己建图了.为什么?因为它已经是一只成熟的SLAM小车了.   我这里写的比较简单,刚写还没几 ...

  3. hdu4862 费用流(不错)

    题意:       给你一个矩阵,你最多可以选择k条路线,k条路线的起点随意,每次行走的距离随意,但是只能往右或者下走,走过的点不能再走,而且每一步如果a->b,如果a和b的权值s相等那么就可以 ...

  4. 文档翻译第001篇:Process Monitor帮助文档(Part 1)

    [译者注] Process Monitor是一款非常著名的系统进程监视软件.总体来说,Process Monitor相当于Filemon+Regmon,其中的Filemon专门用来监视系统中所有文件的 ...

  5. dalvik浅析二:jni、so

    android大多使用java来开发,java中有个概念叫jni.当然说到jni,必然是少不了native code.在android中就是so库.我们来分析下jni在android dalvik的使 ...

  6. SSRF(服务端请求伪造)漏洞

    目录 SSRF SSRF漏洞的挖掘 SSRF漏洞利用 SSRF漏洞防御 SSRF SSRF(Server-Side Request Forgery,服务器端请求伪造)漏洞,是一种由攻击者构造请求,由服 ...

  7. Windows核心编程 第七章 线程的调度、优先级和亲缘性(下)

    7.6 运用结构环境 现在应该懂得环境结构在线程调度中所起的重要作用了.环境结构使得系统能够记住线程的状态,这样,当下次线程拥有可以运行的C P U时,它就能够找到它上次中断运行的地方. 知道这样低层 ...

  8. Day008 数组的使用

    数组的使用 For-Each循环 数组作方法入参 数组作返回值 用普通for循环遍历 int[] arrays={1,2,3,4,5}; //打印全部的数组元素 for (int i = 0; i & ...

  9. vue 访问页面时报错 Failed to compile

    这个是因为node-sass没安装好,所以要重新安装 windows下运行命令:npm install node-sass --registry=https://registry.npm.taobao ...

  10. SQL必学必会笔记 —— 基础篇

    基础篇 SQL语言按照功能划分 DDL(DataDefinitionLanguage),也就是数据定义语言,它用来定义我们的数据库对象,包括 数据库.数据表和列.通过使用DDL,可以创建,删除和修改数 ...