RMAN異機種リカバリクイックリファレンス

5554 ワード

アプリケーションシーン:サーバAは正常に動作する本番環境であり、サーバBに同じ環境を配備してテストする必要がある.データベース環境:RHEL 6.4+Oracle 11.2.0.4.7
一、サーバAバックアップデータベース
  • 1.1オンラインバックアップ(データベースはアーカイブモードで実行)
  • 1.2バックアップスクリプトの内容
  • 二、サーバーBはデータベースを回復する
  • 2.1サーバBインストールデータベースソフトウェア
  • 2.2インスタンスをnomount状態(pfileファイルを指定)
  • に起動
  • 2.3 RMANリカバリ制御ファイル、バックアップセットの有効性を決定する
  • 2.4 RMANリカバリデータベース
  • 2.5回復後の操作
  • 一、サーバAバックアップデータベース
    1.1オンラインバックアップ(データベースはアーカイブモードで実行)
    nohup /bin/bash backup_all.sh &

    バックアップが完了すると、すべてのバックアップメディアがサーバBに転送されます(2台のマシンがネットワークに接続されている場合は、NFSサービスと組み合わせて最初からサーバBにバックアップされることが考えられます).
    1.2バックアップスクリプトの内容
    #!/bin/bash
    #ScriptName:backup_all.sh
    #Usage: backup all files in oracle user environment.
    #ex: nohup /bin/bash backup_all.sh > backup.log & 
    #Author: Alfred Zhao
    #Creation: 2015-09-11
    #Version: 1.0.0
    
    #Define variable 
    basedir=/u01/orabak
    date=`date +%Y%m%d`
    
    #Create pfile
    sqlplus / as sysdba <

    2.サーバBがデータベースを復元する
    2.1サーバBデータベースソフトウェアのインストール
    リファレンスhttp://www.cnblogs.com/jyzhao/p/3891769.htmlデータベースソフトウェアおよび以前の関連構成をインストールします.次に、パスワードファイルを作成します.
    orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle force=y entries=5

    2.2インスタンスをnomount状態に起動する(pfileファイルを指定する)$basedir/pfile$date.oraファイルを$ORACLE_HOME/dbs/init$ORACLE_SID.oraにコピーし、実際のサーバBの状況に応じて変更します.次に、インスタンスをnomountステータスに起動します(pfileファイルを指定します).
    startup nomount pfile='$ORACLE_HOME/dbs/init$ORACLE_SID.ora'

    2.3 RMANリカバリ制御ファイル、バックアップセットの有効性を確定する
    2.3.1 RMANは制御ファイルを回復し、データベースをmount状態に起動し、バックアップセットの有効性を確定する
    backupControlFile=/u01/orabak/backup/ctl_JINGYU_20150911_46_1
    rman target / > crosscheck.log <

    2.3.2バックアップセットが無効な場合、無効なバックアップセットを削除し、手動でバックアップセットを登録する
    通常、2台のホストのバックアップディレクトリが異なり、制御ファイルに記録されたバックアップセットのパスに対応するバックアップセットが見つかりません.ステータスは「EXPIRED」です.この場合、これらの期限切れのバックアップセットを削除し、catalogの新しいバックアップセットを削除し、バックアップセットの有効性を再確認する必要があります.
    rman target / > catalog.log <

    2.4 RMANリカバリデータベース
    2.4.1 restoreデータファイル
    データファイル格納ディレクトリが変更されている場合は、リストアの名前を変更する必要があります.
    rman target / log=restore.log <

    2.4.2 recoverデータファイル
    2.4.2.1 recover database;
    rman target / log=recover.log <

    2.4.2.2 recover database until scn xxxxxxx;
    scn=1463689
    rman target / log=recover$scn.log <

    このscnは、前のステップのログ情報に基づいて取得される.
    2.4.3ログファイルパスの変更
    new_dest=/usr3/oradata/sysdata/redo_file
    sqlplus / as sysdba > logfile.log<

    注意:新しいredoファイル名(すなわち、redoXXX.logが対応する実際の値に変更される)は、UE列編集モードで迅速に処理できます.
    2.4.4一時ファイルパスの変更
    new_dest=/usr3/oradata/sysdata
    sqlplus / as sysdba > tempfile.log<

    注意:新しいtempファイル名(すなわちtempXXX.dbfを対応する実際の値に変更)も同様に処理します.
    2.4.5データベースを開く(resetlogs)
    sqlplus / as sysdba > dbopen.log<

    起動中にredoファイル、tempファイルが自動的に作成されます.
    2.5回復後の操作
    2.5.1データベースの基本情報の表示
    データベース・インスタンスとライブラリのステータス、データ・ファイル、一時ファイル、ログ・ファイル、制御ファイル、パラメータ・ファイルのパス情報を表示します.
    sqlplus / as sysdba > dbstatus.log <

    2.5.2 spfileファイルを作成し、データベースを再起動する
    spfileファイルの作成
    sqlplus / as sysdba > createSpfile.log <

    データベースを閉じる
    sqlplus / as sysdba > shutdownDB.log <

    データベースの起動
    sqlplus / as sysdba > startDB.log <

    2.5.3リスニングの構成
    リスニングプロファイルの変更:$ORACLE_HOME/network/admin/listener.ora
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = JY-DB02)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
      )
    
    ADR_BASE_LISTENER = /u01/app/oracle

    対応するサーバホスト名に関する3箇所の変更:
    1. hostname       
    2. /etc/sysconfig/network HOSTNAME  
    3. /etc/hosts IP           

    リスニングの開始とリスニングのステータスの表示:
    lsnrctl start
    lsnrctl status