2016-10-13 16 views
0

フレンド! サーバー上のData Guard構成に、フィジカル・スタンバイ・データベースを持つ多くのプライマリ・データベースがあります。単一サーバー上の各プライマリ・データベースと、単一サーバー上の各フィジカル・スタンバイ。 EM12cでは、プライマリデータベースをバックアップするスケジューラジョブを設定しました。残念ながら、サーバーが本当にビジー状態の場合、Agentはバックアップの実行を中断し、スケジュール通りにバックアップを取っていません。DBMS_SCHEDULERジョブによるOracleフィジカル・スタンバイのバックアップ

したがって、私たちはEM12cからバックアップジョブを無効にし、手順DBMS_SCHEDULER.CREATE_JOBを使用してフィジカルスタンバイでバックアップを実行します。

フィジカルスタンバイはプライマリデータベースの読み取り専用データベースとブロック単位のコピーであるため、プライマリでスケジュールジョブを作成してスタンバイに適用する必要があります。

質問は次のとおりです。それは可能ですか?そして、もしそうなら、スクリプトでこれを実現する方法は?

このような何か:

それが解決のための最高のが、このタスクであるソリューション、ことはできませんか? 各サーバーに1つのスクリプトでcronタスクを作成せずにこの問題を解決する方法はありますか?リカバリカタログデータベースからグローバルスクリプトを1つ使用することはできますか?

クリスは、フィジカル・スタンバイ・データベースからスケジュール・ジョブを実行できないと述べました。 だから、私はcrontabで自分のlinuxスクリプトをスケジュールします。 私のLinuxのスクリプトは次のとおりです。

#! /usr/bin/bash 

LOG_PATH=/home/oracle/scripts/logs; export LOG_PATH 
TASK_NAME=backup_database_inc0; export TASK_NAME 
CUR_DATE=`date +%Y.%m.%d-%H:%M`; export CUR_DATE 
LOGFILE=$LOG_PATH/$TASK_NAME.$CUR_DATE.log; export LOGFILE 

    rman target/catalog rmancat/<pswd>@rmancat script 'backup_database' log $LOGFILE 

    if [ $? -eq 0 ] 
    then 
     mail -s "$ORACLE_UNQNAME Backup Status: SUCCESS" [email protected]< $LOGFILE 
     exit 0 
    else 
     mail -s "$ORACLE_UNQNAME Backup Status: FAILED" [email protected]< $LOGFILE 
     exit 1 

私は、リカバリ・カタログからバックアップグローバル・スクリプトを呼び出すために、各ホスト上のLinuxのファイルを作成する必要はありません。すべてのホストで集中バックアップの実行スケジュールを構成することは可能ですか?あるホストからすべてのデータベースホストにsshを設定し、バックアップのために私のlinuxスクリプトを実行できますか?

ご回答いただきありがとうございます。

+0

フィジカル・スタンバイ・データベースはスケジューラー・ジョブを実行しません。ただし、通常はRMANスクリプトはOSスケジューラからスケジュールされますが、リカバリカタログからグローバルスクリプトを保存して呼び出すことができます。ストアドスクリプトの使用に関するドキュメントを参照してください。https://docs.oracle.com/データベース/ 121/BRADV/rcmcatdb.htm#BRADV89669 –

+0

こんにちは、Kris。お返事をありがとうございます。私はフィジカル・スタンバイ・データベースからスケジュール・ジョブを実行できないことを理解しています。私はcrontabで私のLinuxスクリプトをスケジュールし、私は新しい質問が..)私は問題の本文にそれを書くでしょう.. – Sergey

+0

私は私の質問を解決しました!少し後で答えてください.. – Sergey

答えて

0

Enterprise Managerを使用してバックアップ・ジョブを実行することを強くお勧めします。 EMはrmanカタログと各インスタンスとうまく統合されるので、rman executeグローバルスクリプトコマンドだけをセットアップすることができます。他のすべてはEMによって行われます。

私は、スイッチオーバー中に何も変更することなく、EMジョブスケジューラを通じてスタンバイ上でのみ実行するようにスケジュールされた仕事を持っています。

私はジョブをカスケードする必要があります。したがって、ターゲットがスタンバイであるかどうかをチェックし、そのステップが成功した場合は、バックアップを実行しています。そうでない場合、次のステップは実行されません。

このように、監視はグローバルデータベース監視と統合されています。 OSレベルでシェルスクリプト内にエラーキャッチを設定する必要はありません。

関連する問題