sql >> データベース >  >> RDS >> Database

RAC OneNodeアーキテクチャでのActiveDataGuardフィジカルスタンバイの設定–パート1

    この記事は、RACOneノードアーキテクチャでActiveDataGuardフィジカルスタンバイを設定する手順を説明する2部構成のシリーズのパート1です。

    はじめに

    Oracle Data Guardは、統合されたソリューションのセットであるOracle Database High Availability(HA)の主要コンポーネントの1つであり、組織が計画されているかどうかに関係なく、非アクティブを最小限に抑えるのに役立ちます。彼らのビジネスの流れを保証します。 Active Data Guardは、Oracle Database Enterprise Editionのライセンスオプションであり、コンサルテーション、レポート、プライマリデータベースに影響を与えないスタンバイデータベースの更新、破損したデータブロックの自動回復、とりわけ、増分バックアップ。

    Oracle RAC One Nodeは、共有ディスクアーキテクチャを利用して、Oracle Real Application Clusters(RAC)と同様のデータベース可用性の高いソリューションを提供します。複数のインスタンスを同時に実行するOracleRACとは異なり、Oracle RAC One Nodeは、1つのインスタンスでのみフェイルオーバーソリューションを提供します。さらに、クラスター内のインフラストラクチャを容易にし、複数のインスタンスを持つOracle RealApplicationClusters設定に簡単に更新できます。

    環境

    • プライマリデータベースは2ノードのOracleRACを使用しています
    • 使用される保護モードは、モード「非同期REDOトランスポート」を使用した「最大パフォーマンス」になります
    • 「ファストスタートフェイルオーバー」機能は使用されません。
    • DataGuardBrokerの設定

    1. db_unique_nameをプライマリデータベースに設定します:

     sqlplus> alter system set db_unique_name ='analytics' scope =spfile sid ='*'; 

    2.「Oracleパスワードファイル」をサーバースタンバイにコピーします。

     scp orapwanalytics oracle @ hostdr:/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs 

    3.プライマリサーバーのノード1および2のバンクインスタンスで、listener.oraにエントリを追加します。

    ノード1:

    (SID_DESC =(GLOBAL_DBNAME =analytics1_dgmgrl)(SID_NAME =analytics1)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))

    ノード2:

    (SID_DESC =(GLOBAL_DBNAME =analytics2_dgmgrl)(SID_NAME =analytics2)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))

    4.スタンバイサーバーで、listener.oraにエントリを追加します

    (SID_DESC =(GLOBAL_DBNAME =analytics_DG_DGMGRL)(SID_NAME =analytics_dg)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))

    これらの設定後、リスナーにlistener.oraエントリを再度読み取るように強制するには、コマンド「listenerreload」を実行する必要があります。注意!この操作はリスナーの可用性に影響します。

    5.プライマリデータベースとスタンバイデータベースのファイルtnsnames.oraにエントリを追加します。

    5.1。古いエントリにコメントする

     #analytics =#(DESCRIPTION =#(ADDRESS =(PROTOCOL =TCP)(HOST =hostdr-pscan1)(PORT =1521))#(CONNECT_DATA =#(SERVER =DEDICATED)#(SERVICE_NAME =analytics)#) )

    5.2。新しいエントリを追加します:

     analytics =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =hostdr-pscan1)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics)(UR =A)))analytics1 =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =hostdr01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics)(SID =analytics1)(UR =A))) analytics2 =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =hostdr02vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics)(SID =analytics2)(UR =A)) )analytics1_DGMGRL =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =hostdr01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_DGMGRL)(UR =A)))analytics2_DGMGRL =(説明=(ADDRESS =(PROTOCOL =TCP)(HOST =hostdr02vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_DGMGRL)(UR =A)))

    5.3。 DGのエントリ:

     analytics_DG =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =host01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_dg)(UR =A)))analytics_DG_DGMGRL =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =host01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_dg_dgmgrl)(UR =A)))

    6.ファイルtnsnames.ora

    の新しいエントリをテストします
     tnsping analyticstnsping analytics1tnsping analytics2tnsping analytics_DGtnsping analytics1_DGMGRLtnsping analytics2_DGMGRLtnsping analytics_DG_DGMGRL 

    7.プライマリデータベースで「強制ログ」と「アーカイブログモード」を有効にします。注:インスタンスはすでにアーカイブログモードで構成されています。

     sqlplus> alter database force logging; sqlplus> select force_logging、log_mode from v $ database; FORCE_LOGGING LOG_MODE --------------------------- ------------------------はいアーカイブログ

    8.プライマリデータベースのRedoLogs設定を確認します。使用済みのスクリプトlogfiles.sqlは、oracle-base.comで入手できます。

    9.スタンバイログファイルを追加します。

    スタンバイREDOログの推奨数を決定するには、次の式[2]を使用します。

    (ログファイルグループの最大数+1)*スレッドの最大数

    私のプライマリデータベースには2つのスレッドがあり、それぞれに4つのREDOオンライングループがあるため、10のスタンバイREDOログが必要です。

    (ログファイルグループの最大数+1)*スレッドの最大数=((4 + 1)* 2 =10)

    sqlplus>データベース追加スタンバイログファイルスレッド1グループ41('+ DG_RECO_DR')サイズ1024M;sqlplus>データベース追加スタンバイログファイルスレッド2グループ42('+ DG_RECO_DR')サイズ1024M;sqlplus>データベース追加スタンバイログファイルスレッド1グループ43('+ DG_RECO_DR')サイズ1024M; sqlplus>データベース追加スタンバイログファイルスレッド2グループ44('+ DG_RECO_DR')サイズ1024M;sqlplus>データベース追加スタンバイログファイルスレッド1グループ45('+ DG_RECO_DR')サイズ1024M;sqlplus>データベース追加スタンバイログファイルスレッド2グループ46('+ DG_RECO_DR')サイズ1024M;sqlplus>データベース追加スタンバイログファイルスレッド1グループ47('+ DG_RECO_DR')サイズ1024M;sqlplus>データベース追加スタンバイログファイルスレッド2グループ48('+ DG_RECO_DR')サイズ1024M; sqlplus>データベース追加スタンバイログファイルスレッド2グループ49('+ DG_RECO_DR')サイズ1024M;sqlplus>データベース追加スタンバイログファイルスレッド2グループ50('+ DG_RECO_DR')サイズ1024M;

    10.プライマリデータベースで、スタンバイデータベースパラメータファイルのベースとなるpfileを作成します。

    spfileからpfile='/tmp/initanalytics_dg_aux.ora'を作成します;

    11.スタンバイデータベースで、リモートサーバーの情報を使用してファイルpfileを作成します。このファイルを作成する最も簡単な方法は、プライマリデータベースのパラメータファイル(アイテム10)をスタンバイデータベースにコピーして編集することです。

     $ cd $ ORACLE_HOME / dbs $ vi initanalytics_dg_aux.ora#*。audit_file_dest ='/ u01 / app / oracle / admin / analytics /adump'*。audit_file_dest='/u01 / app / oracle / admin / analytics_dg / adump '* .audit_trail ='db'#。cluster_database =true * .cluster_database =false * .compatible ='12 .1.0.2.0'#*。control_files ='+ DG_DATA_DR / analytics / controlfile / current.1257.954609365'、' + DG_RECO_DR /analytics/controlfile/current.527.954609365'*.control_files='+DG_DATA/analytics_dg/controlfile/current1.ctl'、' + DG_RECO / analytics_dg / controlfile /current2.ctl'*。db_block_size=8192#*。db_create_file_dest ='+ DG_DATA_DR'*。db_create_file_dest='+ DG_DATA'#*。db_create_online_log_dest_1 ='+DG_DATA_DR'*。db_create_online_log_dest_1='+ DG_DATA'#*。db_create_online_log_dest_2 ='+DG_RECO_DR'*。db * .db_name='analytics'*。db_files=2000#*。db_recovery_file_dest ='+DG_RECO_DR'*。db_recovery_file_dest='+DG_RECO'*。db_recovery_file_dest_size=100G#*。db_unique_name='analytics'*。db_unique / pre> 

    12.ディレクトリ階層を作成します。

    12.1。ファイルとデータベースの監査が作成される「監査ダンプ」用のディレクトリを作成します。

     mkdir -p / u01 / app / oracle / admin / analytics_dg / adump 

    12.2。 ASMで、制御ファイルとパラメータファイルのディレクトリを作成します。

     mkdir + DG_DATA / analytics_DG / mkdir + DG_DATA / analytics_DG / PARAMETERFILEmkdir + DG_DATA / analytics_DG / CONTROLFILEmkdir + DG_DATA / analytics_DG / BROKERCFGmkdir + DG_RECO / analytics_DGmkdir + DG_RECO / analytics_DG / BROKERCFG 

    13.スタンバイデータベースにspfileとpfileを作成します

     $ export ORACLE_SID =analytics_dg $ sqlplus / as sysdba 

    13.1。 pfile initanalytics_dg_aux.oraを使用してスタンバイデータベースを起動し、パラメータファイル(pfile)をspfileに変換します。

     sqlplus> startup nomount pfile ='/ u01 / app / oracle / product / 12.1.0.2 / dbhome_1 / dbs / initanalytics_dg_aux.ora'; sqlplus> create spfile ='+ DG_DATA / analytics_DG / PARAMETERFILE / spfileanalytics_dg.ora' from pfile ='/ u01 / app / oracle / product / 12.1.0.2 / dbhome_1 / dbs / initanalytics_dg_aux.ora'; 

    13.2。 pfileを作成し、このファイルに次のエントリを挿入します。

     echo "spfile ='+ DG_DATA / analytics_DG / PARAMETERFILE / spfileanalytics_dg.ora'">> initanalytics_dg.ora 

    13.3。事後データベース復元へのspfileによるインスタンスの起動。

     $ export ORACLE_SID =analytics_dg $ sqlplus sys as sysdbasqlplus> shutdownimmediate; sqlplus> startup nomount; 

    14.データベースの複製を使用して復元を実行します;

    接続ターゲットsys/xxxxxx @ analytics1; connectauxiliary sys / xxxxxx @ analytics_dg_dgmgrl;RUN{チャネルpr1デバイスタイプディスクの割り当て;チャネルpr2デバイスタイプディスクの割り当て;補助チャネルstby1タイプディスクの割り当て;補助チャネルstby2タイプディスクの割り当て;DUPLICATEアクティブなデータベースからのスタンバイ用のターゲットデータベース;リリースチャネルpr1;リリースチャネルpr2;リリースチャネルstby1;リリースチャネルstby2;}

    次の投稿はこの物語を続けます!

    参照

    [1] Oracle ActiveDataGuardのベストプラクティス。 https://www.oracle.com/database/technologies/active-data-guard-12c-best-practice.html

    で入手できます。 [2] Oracle Database高可用性のベストプラクティス11gリリース2(11.2)。 https://docs.oracle.com/cd/E24693_01/server.11203/e10803/config_dg.htm

    で入手できます。 [3]DataGuardBroker。 https://docs.oracle.com/cd/E11882_01/server.112/e40771/dbpropref.htm#DGBKR3781

    で入手できます。


    1. OracleのNVL2()関数

    2. SQL ServerでのISNUMERIC()のしくみ

    3. WITH句を使用したクエリでPostgresにFROM句のエントリエラーがありません

    4. SQLiteデータベースのリークが見つかりました