OracleのDGブローカー切り替え後&フェイルオーバーフェイルオーバーとリカバリのマスター・スレーブ同期可能

以前https://blog.csdn.net/Hehuyi_In/article/details/94384431は  コンセプトスイッチオーバ&フェイルオーバー、差分方法やSQL操作の使用を導入しました。あなたは、コマンドは、より複雑ここで、必要な操作をメインに、ライブラリから行われている実行するために、これらの操作を簡素化するためにDGブローカーを使用する方法で、これを見てSQLの使用を見ることができます。

 

A、DGブローカーのインストールと設定

1. DGブローカーのインストール

DG Brokerは、Oracleデータベース・ソフトウェアをインストールし、実際にDGMGRLツールであるか、完全なクライアントは、ツール、少し紙が含まれています。

2. [変更モニタ

リスナーが使用することができ、既存のモニターを変更しない場合は、下記により傍受の設定を変更し、この方法は後に紹介します

メインライブラリー

LISTENER =
  (DESCRIPTION_LIST=
    (DESCRIPTION =
      (ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.180.43)(PORT = 1521))
      (ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
 (SID_LIST =
   (SID_DESC =
     (GLOBAL_DBNAME= ocrl)
     (ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1)
     (SID_NAME =ocrl)
   )
   (SID_DESC =
     (GLOBAL_DBNAME=ocrl_DGMGRL) # 新增部分
     (ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1)
     (SID_NAME =ocrl)
   )
 )

図書館設備

LISTENER =
  (DESCRIPTION_LIST=
    (DESCRIPTION =
      (ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.180.44)(PORT = 1521))
      (ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
 (SID_LIST =
   (SID_DESC =
     (GLOBAL_DBNAME= ocrls)
     (ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1)
     (SID_NAME =ocrls)
   )
   (SID_DESC =
     (GLOBAL_DBNAME=ocrls_DGMGRL)  #新增部分
     (ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1)
     (SID_NAME =ocrls)
   )
 )

リスナーを再起動することを忘れないでください

lsnrctl stop
lsnrctl start

3.設定DGブローカー 

  • パラメータ変更DG_BROKER_CONFIG_FILE(プライマリおよびライブラリが実行されます)

ここでは、デフォルトのパスを使用して、あなた自身を指定することができます。あなたはRAC環境の場合、使用している場合は、上記の共有ストレージへのこのこのファイルは、ASM ASMをに入れることができます。

show parameter dg_broker_config_file

  • BROKER有効(プライマリおよびライブラリが実行されます)
alter system set dg_broker_start=true;

  • BROKER構成の作成

メインおよびバックアップデータベースマシンや実装DGMGRLの他に(ライブラリからマスタに接続することができる)を操作することができます。ここでは、メインのライブラリに実行することを選択します

ocrl:/home/oracle@oracle1>dgmgrl
DGMGRL>connect sys/oracle@ocrl

DGMGRL>help create
DGMGRL>create configuration dg as primary database is ocrl connect identifier is ocrl;

ここでORA-16698のエラーは、このエラーはエラーなしで11gは、12Cに表示されます。プライマリおよびスタンバイ上のLOG_ARCHIVE_DEST_nパラメータを排除することによって解決することができ、実引数のこの作品は、管理するために、DGブローカーに引き渡さず、もはや必要の人間の介入を設定する必要があります。

スタンバイライブラリが実行されています

alter system set log_archive_dest_2='';

再度実行します

create configuration dg as primarydatabase is ocrl connect identifier is ocrl;

プロファイルを有効にします

DGMGRL>enable configuration

コンフィギュレーション・ファイルにスタンバイデータベースを増やします

DGMGRL>help add
DGMGRL>add database ocrls as connect identifier is ocrls;

プロフィール

DGMGRL>show configuration

構成データベースをチェック

DGMGRL>show database verbose ocrl
DGMGRL>show database verbose ocrls

注:接続のSERVICE_NAMEブローカーは<DB_UNIQUE_NAME> _DGMGRL、リスナーの前にファイルの先頭を変更するようです。あなたはモニターファイルを変更したくない場合は、(これは別の方法を先に記述されている)StaticConnectIdentifierを変更するには、次のコマンドを実行することができます。

DGMGRL>edit database ocrl set property StaticConnectIdentifier='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.168.43)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ocrl)(INSTANCE_NAME=ocrl)(SERVER=DEDICATED)))';

DGMGRL> edit database ocrls set property  StaticConnectIdentifier='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.168.44)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ocrls)(INSTANCE_NAME=ocrls)(SERVER=DEDICATED)))';

 

第二に、DGブローカーの使用は、切り替え可能

非常に単純な、それはコマンドです。

DGMGRL> switchover to ocrls;

再びプロフィールを見ます

DGMGRL> show configuration

私たちは、スイッチオーバーが正常に完了したました

 

第三に、DGブローカーの使用がフェイルオーバー可能

それは、また、コマンドは非常に簡単です

DGMGRL> FAILOVER TO database-name;
# 或者
DGMGRL> FAILOVER TO database-name IMMEDIATE;

フェイルオーバーの2種類に対応

  • 完全フェイルオーバー(デフォルトの方法):すべてのスタンバイ・データベースへのREDOログがデータ損失を最小限に抑えるために、メイン図書館で初の試み。
  • 即時フェイルオーバー:ライブラリデータの作成は、もはやすぐに切り替え、適用されません。

 

第四に、フェイルオーバーは、主従関係を復元します

フェイルオーバーは、データベースのプロキシ設定から削除されません無効になっていませんが、もはやブローカーによって管理された後。これらのデータベースを管理するために、エージェントを再有効にするには、復元または主従関係を再構築する必要があります。

  • あなたは主従関係を復元することができた場合は、データベースは、次の状態が表示されます:
ORA-16661:需要恢复备用数据库
  • あなたは新しいメインライブラリーからのスタンバイ・データベースを再作成する必要がある場合、それは以下の状態が表示されます。
ORA-16795:需要重新创建备用数据库

REINSTATEコマンドでは成功しています、これは、フェイルオーバーの前に元のプライマリ・データベースへのフラッシュバックを有効にするために(ライブラリによって復元される)されている必要があり、十分なフラッシュバック・ログがなければなりません。

 

1.手順

  • 状態をマウントし、データベースを再起動します。
  • 新しいメインライブラリに接続
  • Enterprise Managerを使用したデータベースまたはDGMGRLを復元します

元のプライマリ障害剤は、同じタイプ(論理または物理スタンバイ・データベース)のライブラリによって調製元のライブラリを復元します。唯一の例外は、この時点で、元のプライマリ・データベースに障害がフィジカル・スタンバイ・データベースに戻ります、失敗するスタンバイ・データベースのスナップショットです。

フェイルオーバー時の演技の回復も、スタンバイ・データベースとして新しいプライマリ・データベースに、無効観客ライブラリ装置です。

 

2. DGMGRL回復

プロキシ構成内の任意のデータベースへの接続が(復元するデータベースを除く)が行われたとき。

DGMGRL> REINSTATE DATABASE db_unique_name;

完了した場合、それはライブラリによって調製新しいプライマリ・データベースになります。それが失敗した場合、その状況は変わり  ORA-16795: the standby database needs to be re-createdそこには頼ることはありませんが、マスターからの重量を取ること。

 

参照

https://blog.csdn.net/shiyu1157758655/article/details/55504026

https://blog.csdn.net/Hehuyi_In/article/details/94384431

https://docs.oracle.com/cd/E11882_01/server.112/e40771/sofo.htm#DGBKR390

https://docs.oracle.com/cd/E11882_01/server.112/e40771/concepts.htm#DGBKR001

公開された295元の記事 ウォン称賛35 ビュー80000 +

おすすめ

転載: blog.csdn.net/Hehuyi_In/article/details/105258110