• Oracle-11g 基于 NBU 的 rman 冷备份及恢复


    备份恢复环境:

    (1).源端:
    SUSE Enterprise Linux 11
    Oracle 11g 11.2.0.3.6(RAC)
    (2).目标端:
    SUSE Enterprise Linux 11
    Oracle 11g 11.2.0.3.6(RAC)
     
    冷备份及恢复情形:
    冷备份 odsdb 集群数据,并于出现故障时,在原集群环境下进行恢复。其中,odsdb 已配置 NBU 备份环境。
    NBU Master Server 的主机名为 xmn-nbu-master,NBU Media Server 的主机名为 xmn-5230。
     
    冷备份步骤:
    1.设置系统参数(oracle)
    $> export NLS_DATE_FORMAT=YYYY-MM-DD:hh24:mi:ss
    $> export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    $> export NB_ORA_CLIENT=odsdbsvr1
    $> export NB_ORA_SERV=xmn-nbu-master
    2.执行备份操作(oracle)
    首先以下列命令 rman target / catalog rman/rman@rman11g 连接目标库及恢复目录数据库。
    随后,执行以下脚本进行备份。
    RMAN> RUN{
    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE' parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
    ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE' parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
    ALLOCATE CHANNEL ch02 TYPE 'SBT_TAPE' parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
    BACKUP FULL tag 'cold backup' filesperset 4 FORMAT 'ManualBackup%d_%s_%p_%t' DATABASE;
    RELEASE CHANNEL ch00;
    RELEASE CHANNEL ch01;
    RELEASE CHANNEL ch02;
    ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE' parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
    BACKUP FORMAT 'ManualBackupCntrl_%s_%p_%t' CURRENT CONTROLFILE;
    RELEASE CHANNEL ch00;
    }
    3.备份SPFILE(oracle)
    登陆至 sqlplus 环境,执行以下语句备份 spfile。
    SQL> create pfile='/home/oracle/20151023pfile.ora’ from spfile;
    4.查看DBID(oracle)
    同样于 sqlplus 环境,执行以下语句确定数据库的 DBID。注意:应记住 DBID 以用于恢复。
    SQL> SELECT dbid FROM v$database;
    输出结果类似如下:
          DBID
    --------------------
    3412031686
     
    冷恢复步骤:
    1.删除数据库实例(oracle)
    通过 dbca 删除 instance,例如在图形界面删除。
    2.设置系统参数(oracle)
    $> export NLS_DATE_FORMAT=YYYY-MM-DD:hh24:mi:ss
    $> export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    $> export NB_ORA_CLIENT=odsdbsvr1
    $> export NB_ORA_SERV=xmn-nbu-master
    3.启动数据库至 nomount(oracle)
    利用备份的 pfile 参数文件覆盖原启动文件。
    $> cp /home/oracle/20151023pfile.ora /u01/app/oracle/product/11.2.0/db_1/dbs/initodsdb1.ora
    进入 sqlplus 环境,将数据库启动至 nomount 状态。
    SQL> startup nomount
    4.配置远程 AS SYSDBA/SYSOPER 登陆的密码文件(oracle)
    例如以下操作将 sys 密码改为 password。
    $> cd $ORACLE_HOME/dbs
    $> orapwd file=orapwodsdb1 password=password entries=5
    5.恢复控制文件(oracle)
    通过以下语句进入连接恢复目录数据库,并制定要恢复的数据库 DBID。
    $> rman rcvcat rman/rman@rman11g
    RMAN> set dbid=3412031686
    RMAN> connect target sys/password
    随后,通过以下脚本恢复控制文件。
    RMAN> run{
    allocate channel ch0 type 'sbt_tape'
    parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
    restore controlfile;
    release channel ch0;
    }
    6.启动数据库至mount状态(oracle)
    SQL> alter database mount;
    7.恢复数据库文件(oracle)
    通过以下语句进入连接恢复目录数据库,并以当前库为连接的目标库。
    $> rman rcvcat rman/rman@rman11g
    RMAN> connect target sys/password
    随后,运行以下脚本恢复数据库文件。
    RMAN> run{
    allocate channel ch0 type 'sbt_tape'
    parms="ENV=(NB_ORA_CLIENT=yxdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
    allocate channel ch1 type 'sbt_tape'
    parms="ENV=(NB_ORA_CLIENT=yxdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
    allocate channel ch2 type 'sbt_tape'
    parms="ENV=(NB_ORA_CLIENT=yxdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
    restore database;
    switch datafile all;
    recover database;
    }
    8.启动数据库至 open 状态(oracle)
    SQL> alter database open resetlogs;
    9.重新配置监听(oracle)
    需要的话重新配置监听。
  • 相关阅读:
    sh_02_判断年龄改进版
    面向对象-内置函数和内置方法
    python面向对象-三大特性
    面向对象编程
    面向对象编程-回合制游戏
    练习Dream-购物车
    bytes和str的区别与转换
    字符串的操作和使用方法。
    程序员必须掌握的600个单词
    移动端的网页设计流程有哪些?
  • 原文地址:https://www.cnblogs.com/autopenguin/p/6305797.html
Copyright © 2020-2023  润新知