• 【转载】NBU异机恢复oracle


    通过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

  • 相关阅读:
    PHP小技巧
    PHP Ajax跨域解决
    单点登录
    Linux 常用命令
    php面向对象--继承
    vueDemo
    vueSource
    vuex
    Vue.js
    关于前后端分离
  • 原文地址:https://www.cnblogs.com/infaaf/p/9587741.html
Copyright © 2020-2023  润新知