以前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