内容

概要

前提条件

要件

使用するコンポーネント

背景説明

問題

トラブルシュート

解決方法

確認

概要

このドキュメントでは、プライマリデータベースからスタンバイデータベースを再構築して、Prime Networkのデータベース複製または同期の問題を解決する手順を順を追って説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- プライマリ・データベースのSWITCHOVER_STATUSがUNRESOLVABLE GAPに設定されている場合にのみ、セカンダリ・データベースを再構築するには、次の手順を使用します。

- プライマリデータベースがREAD WRITEモードで、セカンダリデータベースがREAD ONLYモードまたはREAD ONLY WITH APPLYモードであることを確認します。

- 正しいプライマリおよびセカンダリのPrime Centralゲートウェイ/データベースを特定していることを確認します。

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

- Prime Centralリリース1.2以降

- Oracle Database 11Gリリース

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。

背景説明

1.プライマリ・データベースのswitchover_statusを確認するには、次のコマンドを使用します。

SQL> select switchover_status from v$database

SWITCHOVER_STATUS

--------------------

UNRESOLVABLE GAP

注：Prime Central Geo HAスイッチオーバーが突然失敗し、Prime Central GEO HAシステムまたはデータベースロールのステータス（両方ともスタンバイ）が破損し、最後のアクティブ/スタンバイステータスに応じてプライマリまたはセカンダリを再構築する必要があります。

注：その他すべてのケースでは、Cisco TACでSRを開き、データベースレプリケーションの問題を解決します。

2. プライマリおよびセカンダリデータベースの現在のモードを確認するには、次のコマンドを使用します。

SQL> select open_mode from v$database;

を選択します。 プライマリおよびセカンダリデータベースのORACLE_SIDを確認するには、次のコマンドを使用します。

oracleユーザーのプライマリ・ゲートウェイ上：

echo $ORACLE_SID -> output should be “primedb”

oracleユーザのセカンダリゲートウェイで、次の操作を実行します。

echo $ORACLE_SID -> output should be “primstdb”

問題

Prime Central GEO HAスイッチまたはフェールオーバー/フェールバック手順は、アクティブとスタンバイのデータベースが同期されなくなると失敗します。これにより、プライマリとスタンバイの両方のデータベースが同時にアクティブまたはスタンバイになります。

トラブルシュート

ソリューションに従う前に、基本的なトラブルシューティング手順を実行できます。

1.プライマリおよびセカンダリPrime Network Gateway間のネットワーク接続および/または遅延に関連する問題を確認します。

2. Primaryでこのデータベース・ログをチェックして、データベース関連のORAエラーを探します。

<database_home_directory>/diag/rdbms/anadb/anadb/trace/alert_anadb.log

を選択します。 プライマリおよびセカンダリ・データベースのopen_mode、current_scn、およびスイッチオーバーのステータスをチェックします。

SQL> select open_mode from v$database

SQL> select current_scn from v$database

SQL> select switchover_status from v$database;

4.データベースレプリケーションの根本原因は、主にプライマリとセカンダリのPrime Centralデータベース間のネットワーク通信の問題、データベースの破損、または類似のデータベース関連のエラーである可能性があります。

解決方法

ステップ1：プライマリとセカンダリの両方のゲートウェイ/データベースでORACLE_SIDを確認します。

プライマリゲートウェイ/データベースのORACLE_SID = primedb

セカンダリゲートウェイ/データベースのORACLE_SID = primdtdb

プライマリ・ゲートウェイまたはセカンダリ・ゲートウェイのORACLE_SIDが前述の通りでない場合は、次のコマンドを使用して正しいSIDを構成します。

setenv ORACLE_SID = <value>

注：ここで、<value > = primdbまたはprimstdbは、プライマリまたはセカンダリに基づいています。

ステップ2：アクティブおよびスタンバイのデータベースで、sysdbaとしてログインし、データ・ファイル、REDOログおよびアーカイブ・ログ・ファイルへのディレクトリ・パスを検索します。

次のコマンドを使用します。

データ・ファイルを検索するには、次の手順に従います。

SQL> select name from v$datafile;

REDOログ・ファイルを検索する手順は、次のとおりです。

SQL> select member from v$logfile;

アーカイブ・ログを検索するには：

SQL> show parameter log_archive_dest_1;

ステップ3：データベースを再構築するには、ステップ4で説明した正しいシナリオを特定した後、正しい構文でこのスクリプトを実行します。

sh PCoracleADG.ksh [PRIMARY] [STANDBY] [DB_TO_BE_DROPPED] [SYSTEM_PASSWD] [ORACLE_BASE]

[ORACLE_USER] [ARCHIVED_LOG_LOCATION] [ORACLE_DATA_FILES_LOCATION] [REDO_LOG_LOCATION]

注：スクリプトは$ORACLE_BASE/standbyフォルダにコピーされ、oracleユーザーとして実行する必要があります。

ステップ4：セットアップの現在のステータスを持つシナリオを特定し、それに従って進みます。

注：例として、HA1がプライマリゲートウェイ/データベースで、HA2がセカンダリゲートウェイ/データベースであると仮定します

シナリオ 1：HA1はアクティブであり、HA2のスタンバイデータベースを再構築する必要があります。これらのパラメータを使用して、HA2のステップ3.で説明したスクリプトを実行します。

PRIMARY = primedb

STANDBY = primstdb

DB_TO_BE_DROPPED = primstdb

SYSTEM_PASSWD = use Step 5

ORACLE_BASE = /orahome/oracle

ORACLE_USER = oracle

ARCHIVED_LOG_LOCATION = output of ‘show parameter log_archive_dest_1;&rsquo

ORACLE_DATA_FILES_LOCATION = output of ‘select name from v$datafile;&rsquo

REDO_LOG_LOCATION = output of ‘select member from v$logfile;’

シナリオ 2：HA2はアクティブであり、HA1でスタンバイデータベースを再構築する必要があります。これらのパラメータを使用して、HA1でステップ3.で説明したスクリプトを実行します。

PRIMARY = primedb

STANDBY = primstdb DB_TO_BE_DROPPED = primedb SYSTEM_PASSWD = use Step 5 ORACLE_BASE = /orahome/oracle ORACLE_USER = oracle ARCHIVED_LOG_LOCATION = show parameter log_archive_dest_1;&rsquo ORACLE_DATA_DATA files_LOCATION = 'select name from v$datafile;&rsquo REDO_LOG_LOCATION = 'select member from v$logfile;'の出力

ステップ5：次の手順を使用して、<SYSTEM_PASSWD>を調べます。

su:HA1またはHA2のプライム

grep Embedded_SYSTEM_PASS= install/conf/.db.conf

たとえば、Embedded_SYSTEM_PASS=90f8006cd6bc0ddeがある場合、次のようになります。

- java -cp install/utils/encryptionUtil.jar EncodeDecode 90f8006cd6bc0ddeを復号化します。

- Prime Centralは、ステップ4でSYSTEM_PASSWDとして使用される出力文字列を返します。

確認

プライマリおよびセカンダリPrime Networkゲートウェイでのデータベースの検証：

1. REDOログ・ファイルの数と名前がアクティブおよびスタンバイ・データベースで同じであることを確認します。

2.アクティブおよびスタンバイ・データベースのデータファイルの数とサイズが同じであることを確認します。

3.アクティブとスタンバイの両方のデータベースで次のコマンドを使用して、スタンバイ・データベースの現在のSCNがプライマリ・データベースのscnに追いつくことを示します。

sqlplus / as sysdba

SQL>select current_scn from v$database;

4.アクティブ・データベースのdatabase_roleがPRIMARYで、スタンバイ・データベースがLOGICAL_STANDBYであることを確認します。

sqlplus / as sysdba

SQL>select database_role from v$database;

5.アクティブ・データベースのopen_modeがREAD WRITEおよびREAD ONLY WITH APPLY on Standbyデータベースであることを確認します。

sqlplus / as sysdba

SQL>select open_mode from v$database;

6. Activeのswitchover_statusがSTANDBYであり、StandbyデータベースでNOT ALLOWEDであることを確認します。

sqlplus / as sysdba

SQL>select switchover_status from v$database;

7.アーカイブ・ログが転送されることを確認します。

Activedatabase:

SQL> alter system switch logfile;

スタンバイデータベース：

新しいファイルが～/archに作成されていることを確認します