18 Oracle ACFSスナップショットベースのレプリケーションの構成
Oracle ACFSスナップショットベースのレプリケーションの要件については、この項で説明しています。
この項では、リリース12.2以上で使用可能なOracle ACFSスナップショットベースのレプリケーションを構成する方法について説明します。リリース12.2より前のOracle ACFSレプリケーションのインストールと同様に、スナップショットベースのレプリケーションの全体的な機能上の目標は、プライマリ・クラスタの更新がスタンバイ・クラスタにレプリケートされるようにすることです。ただし、スナップショットベースのレプリケーション・テクノロジは、プライマリ・ストレージ・ロケーションのスナップショットを使用し、連続するスナップショットの差分を、標準のssh
コマンドを使用してスタンバイ・ストレージ・ロケーションに転送します。リリース12.2より前のOracle ACFSレプリケーション機能では、プライマリ・クラスタとスタンバイ・クラスタ間の接続性を確保するために、Network Foundation Technologies (NFT)を中心としてOracleネットワーキング・テクノロジを基に、絶えず変更をレプリケートしました。
Oracle ACFSレプリケーションの設計および実装におけるこの変更により、レプリケーションの構成および使用方法に若干の相違が発生しています。たとえば、ssh
を使用するには、レプリケーションを実行するプライマリ・ノードとスタンバイ・ノードでホスト・キーおよびユーザー・キーを適切に設定する必要があります。
Oracle ACFSレプリケーションには、ロール・リバーサルおよびフェイルオーバー機能が用意されています。この機能は、プライマリ・クラスタとスタンバイ・クラスタの両方が必要に応じて相互に通信できるようにすることで構成できます。ロール・リバーサルでは、スタンバイがプライマリのロールを引き受け、プライマリがスタンバイになります。フェイルオーバーには、ロール・リバーサルまたは新しいプライマリが使用する新しいスタンバイの確立が含まれる場合があります。
この項では、次の項目について説明します。
Oracle ACFSレプリケーションの概要は、「Oracle ACFSレプリケーション」を参照してください。Oracle ACFSレプリケーション・コマンドの詳細は、「レプリケーション用のOracle ACFSコマンドライン・ツール」を参照してください。
Oracle ACFSレプリケーションで使用するためのsshの構成
このトピックでは、リリース12.2以上で使用可能なOracle ACFSスナップショットベースのレプリケーションを使用するためにssh
を構成する方法について説明します。
Oracle ACFSスナップショットベースのレプリケーションでは、ssh
をプライマリ・クラスタとスタンバイ・クラスタ間のトランスポートとして使用します。レプリケーションの全機能をサポートするには、クラスタ間のどちらの方向(プライマリ・クラスタからスタンバイ・クラスタ、およびスタンバイからプライマリ)でもssh
が使用可能である必要があります。
このトピックの手順では、プライマリからスタンバイの単一方向でのレプリケーション用のssh
の構成方法について説明します。ssh
を完全に構成するには、2回目にプライマリとスタンバイのロールを逆転して手順を実行する必要があります。1回目にステップを実行するときは、プライマリ・クラスタとスタンバイ・クラスタ用に記述されているステップを実行します。2回目には、プライマリ・ロールとスタンバイ・ロールを入れ替えます。プライマリ・クラスタで必要と示されているステップをスタンバイ・クラスタで実行し、スタンバイ・クラスタで必要と示されているステップをプライマリ・クラスタで実行します。2回実行する必要がある手順は、以下で説明しています。
必要なすべての手順を完了したら、「ssh関連のキー構成の検証」の手順を使用して、両方向でssh
が正しく構成されていることを確認できます。
Oracle ACFSレプリケーション・ユーザーの選択
Oracle ACFSスナップショットベースのレプリケーションでは、ssh
をプライマリ・クラスタとスタンバイ・クラスタ間のトランスポートとして使用するため、スタンバイでレプリケーションを実行するユーザー・アイデンティティは慎重に管理する必要があります。レプリケーション・プロセスでは、レプリケーションが実行されているプライマリ・ノード上のレプリケーション・ユーザー(repluser)は、ssh
を使用して、レプリケーションにかかわるスタンバイ・ノードにログインします。
repluserとして選択したユーザーには、Oracle ASM管理権限が必要です。Oracleソフトウェアの初回インストール時にOracleインストーラに指定したユーザーは、通常、必要なグループに属するため、レプリケーション・ユーザーを選択するのが好都合です。ここでの説明では、レプリケーション・ユーザーをrepluserとして識別しますが、選択した実際のユーザー名でrepluserを置き換えます。Oracle ACFS acfsutil
コマンドの実行の詳細は、「Oracle ACFSコマンドライン・ツールの使用について」を参照してください。
ノート:
プライマリ・クラスタとスタンバイ・クラスタの両方で、repluserに同じユーザーとグループのアイデンティティを指定する必要があります。また、ユーザー名と数値のuids
、およびグループ名と数値のgids
との間のマッピングは、プライマリ・クラスタとスタンバイ・クラスタの両方で同一である必要があります。 レプリケーションでの数値の転送はプライマリからスタンバイに対してのみ行われるため、両方のクラスタで数値が同じように使用されるようにするためにはこれが必須です。
Oracle ACFSレプリケーション用のキーの配布
Oracle ACFSレプリケーション用のキーの配布プロセスには、プライマリ・クラスタからの公開キーの取得、スタンバイ・クラスタ用のホスト・キーの取得、ssh
関連ファイル用に権限が正しく構成されていることの確認、必要に応じてsshd
の構成、そして最後にssh
構成の検証が含まれます。
ノート:
ホスト・キーを作成するときは、必ず完全修飾ドメインホスト名とローカル・ホスト名の両方のキーを作成してください。
プライマリ・クラスタからのrepluser用の公開キーの取得
プライマリ・クラスタの各ノードに定義されているrepluser用の公開キーを、スタンバイ・クラスタの各ノードのrepluserが認識している必要があります。
このキーを認識させるには、各スタンバイ・ノードに~repluser/.ssh
ディレクトリが存在する必要があります。このディレクトリが存在しない場合は、repluser専用のアクセス権で作成します。.ssh
ディレクトリに対するls
コマンドの出力が次のようになっていることを確認します。
repluser@standby $ ls -ld ~/.ssh drwx------ 2 repluser dba 4096 Jan 27 17:01 .ssh
repluserの公開キー・ファイルが特定のプライマリノードに存在する場合は、レプリケーションが実行されるスタンバイの各ノードにrepluserとしてログインすることを承認された一連のキーに、その内容を追加します。各スタンバイ・ノードで、必要に応じて~repluser/.ssh/authorized_keys2
ファイルを作成し、その最後にキーを追加します。
公開キー・ファイルが存在しない場合は、repluserとして次のコマンドを実行してプライマリで公開キーと秘密キーのペアを生成します。
$ ssh-keygen -t rsa
コマンドから発行される各プロンプトに応えて、[Enter]キーを押します。結果として生成された.pub
ファイルを各スタンバイ・ノードにコピーします。
repluser用の同じ公開/秘密キーペアをプライマリ・クラスタ内のすべてのノードで共有することも、プライマリ・ノードごとに異なるキー・ペアを設定することもできます。プライマリ・クラスタ内のすべてのノードで同じ公開キーがrepluserに対して有効な場合、スタンバイ・クラスタの各ノードで、~repluser/.ssh/authorized_keys2
ファイルにそのキーのみを追加する必要があります。各プライマリ・ノードに独自のrepluser用の公開キーがある場合は、すべての公開キーをそのファイルに追加する必要があります。いずれの場合も、スタンバイの特定のノードで更新したauthorized_keys2
ファイルをクラスタの他のノードにコピーすることで、作業を最小化できます。
スタンバイ・クラスタ用のホスト・キーの取得
レプリケーションが実行される各スタンバイ・ノード用のホスト・キーを、レプリケーションが実行される各プライマリ・ノードで認識させる必要があります。適切なキーを生成する方法の1つとして、各プライマリ・ノードから各スタンバイ・ノードに対してrepluserとして手動でssh
を実行します。適切なホスト・キーがまだ認識されていない場合は警告が表示され、ssh
を有効にしてキーを追加できます。
次に、ホスト・キーを取得する例を示します。
[repluser@primary data]$ ssh repluser@standby date The authenticity of host 'standby (10.137.13.85)' can't be established. RSA key fingerprint is 1b:a9:c6:68:47:b4:ec:7c:df:3a:f0:2a:6f:cf:a7:0a. Are you sure you want to continue connecting (yes/no)?
yes
と応答すると、ssh
の設定が完了します。ホスト・スタンバイ用のホスト・キーが、ホスト・プライマリのrepluserユーザー用のknown_hosts
ファイル(~repluser/.ssh/known_hosts
)に格納されます。
スタンバイ・ノードに対するホスト・キーの設定が特定のプライマリ・ノードで完了したら、仮想IPアドレス(VIP)を使用してスタンバイ・クラスタと通信する場合は、追加のステップを実行する必要があります。VIP名またはアドレスを、スタンバイ・クラスタ内のホストを参照するknown_hosts
ファイルの各行の先頭に追加する必要があります。たとえば、名前がstandby12_vip
のVIPを使用し、スタンバイを参照する次の2行がknown_hosts
ファイルに含まれる場合、
standby1,10.242.20.22 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3pM2YTd4UUiEWEoCKDGgaTgsmPkQToDrdtU+JtVIq/96muivU BaJUK83aqzeNIQkh+hUULsUdgKoKT5bxrWYqhY6AlTEqNgBHjBrJt9C73BbQd9y48jsc2G+WQWyuI/ +s1Q+hIJdBNMxvMBQAfisPWWUcaIx9Y/JzlPgF6lRP2cbfqAzixDot9fqRrAKL3G6A75A/6TbwmEW07d1zqOv l7ZGyeDYf5zQ72F/V0P9UgMEt/5DmcYTn3kTVGjOTbnRBe4A4lY4rVw5c+nZBDFre66XtORfQgwQB5ztW/Pi 08GYbcIszKoZx2HST9AZxYIAgcrnNYG2Ae0K6QLxxxScP standby2,10.242.20.23 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIszcjzNtKN03SY8Kl846skFTVP1HF/ykswbmkctEjL6KTWTW+NR U4MGbvkBqqdXxuPCR7aoGO2U3PEOg1UVf3DWUoux8IRvqKU+dJcdTibMFkDAIhTnzb14gZ/lRTjn+GYsuP5 Qz2vgL/U0ki887mZCRjWVL1b5FNH8sXBUV2QcD7bjF98VXF6n4gd5UiIC3jv6l2nVTKDwtNHpUTS1dQAi+1D tr0AieZTsuxXMaDdUZHgKDotjciMB3mCkKm/u3IFoioDqdZE4+vITX9G7DBN4CVPXawp+b5Kg8X9P+08Eehu tMlBJ5lafy1bxoVlXUDLVIIFBJNKrsqBvxxxpS7
VIPを使用できるようにするには、次のようにこの2行を変更します。
standby12_vip,standby1,10.242.20.22 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3pM2YTd4UUiEWEoCKDGgaTgsmPkQToDrdtU+JtVIq/96muivU BaJUK83aqzeNIQkh+hUULsUdgKoKT5bxrWYqhY6AlTEqNgBHjBrJt9C73BbQd9y48jsc2G+WQWyuI/ +s1Q+hIJdBNMxvMBQAfisPWWUcaIx9Y/JzlPgF6lRP2cbfqAzixDot9fqRrAKL3G6A75A/6TbwmEW07d1zqOv l7ZGyeDYf5zQ72F/V0P9UgMEt/5DmcYTn3kTVGjOTbnRBe4A4lY4rVw5c+nZBDFre66XtORfQgwQB5ztW/Pi 08GYbcIszKoZx2HST9AZxYIAgcrnNYG2Ae0K6QLxxxScP standby12_vip,standby2,10.242.20.23 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIszcjzNtKN03SY8Kl846skFTVP1HF/ykswbmkctEjL6KTWTW+NR U4MGbvkBqqdXxuPCR7aoGO2U3PEOg1UVf3DWUoux8IRvqKU+dJcdTibMFkDAIhTnzb14gZ/lRTjn+GYsuP5 Qz2vgL/U0ki887mZCRjWVL1b5FNH8sXBUV2QcD7bjF98VXF6n4gd5UiIC3jv6l2nVTKDwtNHpUTS1dQAi+1D tr0AieZTsuxXMaDdUZHgKDotjciMB3mCkKm/u3IFoioDqdZE4+vITX9G7DBN4CVPXawp+b5Kg8X9P+08Eehu tMlBJ5lafy1bxoVlXUDLVIIFBJNKrsqBvxxxpS7
最終的に、プライマリ・クラスタのこの1つ目のノードで実行されたホスト・キーの構成は、プライマリ・クラスタ内のすべてのノードで実行する必要があります。前述の手順の結果またはそれに相当するものが各プライマリ・ノードに存在する必要があります。この構成を実現するのに必要な手作業を最小化する方法の1つとして、プライマリ・クラスタのノードの1つでknown_hosts
ファイルを更新した後、更新後のファイルをクラスタの他のノードにコピーします。
ノート:
デフォルトでは、レプリケーションにより、ssh
による厳密なホスト・キー・チェックが有効になり、ssh
の実行時にプライマリ・ノードが目的のスタンバイ・ノードまたはクラスタに必ず接続されます。しかし、プライマリ・クラスタとスタンバイ・クラスタがプライベート・ネットワークで通信する場合など、このチェックが確実に不要である場合は、ssh
による厳密なホスト・キー・チェックの使用を無効にできます。厳密なホスト・キー・チェックの無効化の詳細は、acfsutil
repl
init
primary
コマンドの-o sshStrictKey=no
オプションを参照してください。厳密なホスト・キー・チェックが無効になっている場合、ホスト・キーの設定は不要です。acfsutil
repl
init
コマンドの詳細は、「acfsutil repl init」を参照してください。
ssh関連ファイルに対する権限に関するノート
設定したキーでssh
が機能するには、repluserの.ssh
ディレクトリおよびそのディレクトリ内にある一部のファイルについて、各ノードで権限が適切に設定されていることを確認する必要があります。
各.ssh
ディレクトリとそのディレクトリ内のキー・ファイルに付与する必要がある権限の詳細は、ssh(1)
マニュアル・ページのFILES
に関する項など、ssh
実装のドキュメントを参照してください。
sshdの構成に関するノート
レプリケーションの使用を開始すると、ssh
がレプリケーション操作を実行するために頻繁に起動されます。一部のプラットフォームでは、ssh
接続が確立されるたびにsyslog
または同様の機能を使用してメッセージを記録するように、ssh
daemon sshd
を構成することもできます。これを回避するには、サーバー構成ファイル/etc/ssh/sshd_config
を変更してロギングの頻度を低く指定することができます。ロギングを制御するパラメータは、LogLevel
です。接続メッセージは、INFO
レベルで発行されます。ERROR
など、頻度がより低いLogLevel
設定にすると、それらのメッセージは抑制されます。たとえば、次の行をファイルに追加することで、ログ・メッセージを抑制できます。
LogLevel ERROR
ssh関連のキー構成の検証
プライマリ・クラスタとスタンバイ・クラスタの両方でssh
用のホスト・キーおよびユーザー・キーを設定したら、acfsutil
repl
info
-c
-u
コマンドを使用してキーを検証できます。このコマンドは、それぞれのクラスタの各ノードでrepluserとして実行します。ローカル・クラスタが今後のレプリケーションの実行に使用する可能性があるリモート・クラスタのすべてのホスト名またはアドレスを引数として取ります。
VIPを使用せずにリモート・クラスタに接続している場合は、特定のレプリケーション関係について、リモート・ホスト名またはリモート・アドレスを1つのみacfsutil
repl
init
primary
に指定します。ただし、関係に他のリモート・ホスト・アドレスが今後かかわる可能性がある場合は、acfsutil repl info -c -u
コマンドの実行時に、全リモート・アドレスを指定します。
VIPを使用してリモート・クラスタに接続している場合は、VIPがアクティブな全リモート・ホストの名前またはホスト固有のアドレスを指定する必要があります。VIP名、またはVIPに関連付けられているアドレスを指定しないでください。レプリケーションでssh
を使用してVIPに接続する場合、戻されるホスト・キーは、VIPが現在アクティブなホストに関連付けられているキーです。この場合のssh
では、個々のリモート・ノードのホスト名またはアドレスのみが使用されます。
プライマリ・クラスタの各ノードで実行する検証コマンドの形式は次のとおりです。
$ acfsutil repl info -c -u
このコマンドで、standbyn
にはスタンバイ・クラスタのホスト名またはアドレスを指定します。検証コマンドは、ユーザーrepluserがssh
を使用して、レプリケーションの初期化と同じ方法で、指定された各スタンバイのホスト名またはアドレスに接続できることを確認します。standby12_vip
などのVIPを使用してクラスタに接続している場合は、同じコマンド形式を使用します。VIPの名前を指定しないでください。
厳密なホスト・キー・チェックを無効にする予定の場合は、-o sshStrictKey=no
オプションをコマンドラインに追加して、このチェックをスキップできます。
プライマリ・クラスタの各ノードがスタンバイ・クラスタのすべてのノードに接続できることを確認したら、検証コマンドを再実行してください。今度は、スタンバイ・クラスタの各ノードでコマンドを実行します。次の形式を使用して、プライマリ・クラスタのすべてのノードのホスト名またはIPアドレスを指定します。
$ acfsutil repl info -c -u repluser primary1 [primary2 ...] [snap_shot@]standby-mountpoint
このコマンドで、primaryn
にはプライマリ・クラスタのホスト名またはアドレスを指定します。
WindowsでのsshおよびCygwinのインストール
この項では、Microsoft WindowsのホストでCygwinをインストールしてssh
デーモンを開始する方法について説明します。この情報は、WindowsホストでOracle ACFSスナップショットベースのレプリケーションを使用する場合にのみ当てはまります。
Oracle ACFSレプリケーションのCygwinの要件
Oracle ACFSスナップショットベースのレプリケーションでは、ssh
を使用してプライマリ・クラスタからスタンバイ・クラスタにレプリケーション関連のデータを転送します。Microsoft Windowsで稼働しているホストでレプリケーションを使用する場合は、この項の説明に従って、ホストでCygwinをインストールしてssh
デーモンを開始する必要があります。
Cygwinは、基本的にMicrosoft WindowsホストにLinuxに類似の環境を提供するユーティリティです。Linux APIレイヤーとして機能し、多くのLinux API機能を提供するDLL(cygwin1.dll
)です。Cygwinをインストールすると、ホストでssh
デーモンを構成できます。Oracle ACFSレプリケーションは、Cygwin 2.0で動作保証およびサポートされています。
ssh
デーモンにより、Oracle ACFSレプリケーションでは、レプリケーションを実行しているプライマリ・クラスタからレプリケーションを実行しているスタンバイ・クラスタへのssh
接続を確立できます。
ノート:
ここでのssh
デーモンのインスール手順では、特定のユーザーrepluserとしてログインし、コマンドを実行することにのみ使用可能なデーモンとなります。このデーモンは、他のユーザーとしてログインしてコマンドを実行したときに正しく機能するものではありません。この制限は、次の2つの要因によるものです。
-
Oracle ACFSに定義されたユーザーはドメインベースのユーザーである必要があります。
-
ドメインベースのユーザーに対して汎用の
ssh
デーモンを有効にするには、Trusted Computing Baseの一部としてユーザーが動作できるSeTcbPrivilege
など、なんらかの非常に強力な権限をそのユーザーに付与するデーモン・ポリシーを作成する必要があります。このようなポリシーを作成することは、ほとんどの企業の環境で許可される可能性は低いため、このようなポリシーの使用はここでの手順に含まれていません。
Cygwinをインストールする前のステップ
ssh
の設定から始める前に、次のステップでチェックを実行してOpenSSH
およびMKSNT
を使用していないことを確認します。
この項で説明するナビゲーションのステップは、Microsoft Windowsオペレーティング・システムによって異なります。
-
OpenSSH\bin
およびmksnt
実行可能ファイルが格納されているディレクトリがPATH
環境変数にないことを確認します。ある場合は、次の手順を実行してPATH文字列から削除します。-
「マイ コンピュータ」を右クリックし、「プロパティ」を選択します。
-
「システムのプロパティ」ウィンドウで、「詳細設定」をクリックします。
-
このタブで、「環境変数」をクリックします
-
PATH
システム変数を検索して選択し、OpenSSH\bin
またはmksnt
関連の値がPATH
文字列に含まれている場合は、「編集」をクリックします。 -
「システム変数の編集」ダイアログ・ボックスで、これらの値を
PATH
文字列から削除し、「OK」をクリックします。
-
-
OpenSSH
、MKS
またはその他のソースから実行されている場合は、ssh
daemon
を停止して無効にします。ssh
デーモンが実行中の場合、次の手順を実行して停止し、無効にします。-
「マイ コンピュータ」を右クリックし、「管理」を選択します。
-
「コンピュータの管理」ウィンドウの左側のペインで、「サービスとアプリケーション」を展開し、「サービス」を選択します。
-
右側のペインで、
ssh
daemon/MKS Secure Shell
サービスを右クリックし、表示されたメニューで「停止」エントリをクリックします。 -
同じペインで、
ssh
daemon/MKS Secure Shell
サービスを右クリックし、表示されたメニューで「プロパティ」エントリをクリックします。開いたダイアログ・ボックスで、「スタートアップの種類」として「無効」を選択し、「OK」をクリックします。
-
-
Cygwinのインストール
Microsoft WindowsホストにCygwinをインストールするには、次のステップを実行します。
-
次のURLにアクセスして、「Install Cygwin」をクリックします。
http://www.cygwin.com/
-
実行しているMicrosoft Windowsのバージョンに応じて、32ビット・バージョンまたは64ビット・バージョンのCygwinセットアップ実行可能ファイルをダウンロードします。
-
実行ファイルを実行し、「Next」をクリックして続行します。
-
「Choose Installation Type」画面で、「Install from Internet」を選択して「Next」をクリックします。
-
「Choose Installation Directory」画面で、「Root Directory」に
C:\cygwin
と入力し、「Next」をクリックします。 -
「Select Local Package Directory」画面で、ダウンロードしたインストール・ファイルを格納するローカル・マシン上のディレクトリを選択し、「Next」をクリックします。
-
「Select Connection Type」画面で、インターネットに接続するための適切な設定を選択し、「Next」をクリックします。
-
「Choose Download Site(s)」画面で、利用可能リストから任意のサイトを選択し、「Next」をクリックします。
-
パッケージの選択画面で、次のパッケージを選択し、「Next」をクリックします。「アーカイブ」カテゴリから、unzipとzipを選択します。「Net」カテゴリから、opensshおよびopensslを選択します。パッケージを選択して「Next」をクリックすると、「Resolving Dependencies」画面が表示されます。「次へ」をクリックして次に進みます。
-
「Installation Status and Create Icons」画面では、変更しません。「Finish」をクリックして、インストール・プロセスを終了します。
sshの構成
この項では、ホストにCygwinをインストールした後に、Oracle ACFSレプリケーション用にssh
を構成する方法について説明します。
Oracle ACFSレプリケーションでは、ssh
をプライマリ・クラスタとスタンバイ・クラスタ間のトランスポートとして使用するため、レプリケーションを実行するユーザー・アイデンティティは明示的に指定する必要があります。レプリケーション・プロセスでは、プライマリ・ノードの特権ユーザーはssh
を使用してレプリケーションにかかわるスタンバイ・ノードにログインします。ssh
で特権ユーザーとしてスタンバイ・ノードにログインすることは望ましくありません。かわりに、最小限の権限を持つユーザー・アイデンティティを使用してください。選択するユーザーは、ドメインベースのユーザーであり、ORA_ASMADMIN
グループのメンバーである必要があります。
ここでの説明では、repladminおよびrepluserを使用してレプリケーション・ユーザーを指していますが、選択した実際のユーザー名でrepladminおよびrepladminを置き換えます。repladminユーザーは、プライマリとスタンバイの両方でacfsutil
repl
init
コマンドを実行するユーザーを指します。このユーザーは、Administrators
グループのメンバーである必要があります。repluserユーザーは、スタンバイにログインするためにssh
で使用するユーザーを指します。このユーザーは、ドメインベースのユーザーであり、ORA_ASMADMIN
グループのメンバーである必要がありますが、Administrators
グループのメンバーではありません。Oracle RACの使用に適したユーザーがすでに存在する場合は、そのユーザーをrepluserとして使用する必要があります。
Oracle ASMのユーザー権限の詳細は、「Oracle ASMの権限について」を参照してください。Oracle ACFS acfsutil
コマンドの実行の詳細は、「Oracle ACFSコマンドライン・ツールの使用について」を参照してください。
ssh
を構成する場合、状況によってはcygwin.bat
スクリプトを実行する必要があります。Microsoft Windows Server 2008およびMicrosoft Windows Vistaでcygwin.bat
を実行する場合は、必ず管理者モードでバッチ・ファイルを起動します。これを行うには、cygwin.bat
ファイルを右クリックし、「管理者として実行」
を選択します
ssh
を構成してCygwinの設定をテストするには、次のステップを実行します。
-
Cygwinのインストール後、
C:\cygwin
ディレクトリに移動し、任意のエディタを使用して編集モードでCygwin.batファイルを開き、bash
シェルを起動する前に次の行を追加します。set CYGWIN=binmode ntsec
前述の行を追加した後の
Cygwin.bat
ファイルの内容は、次のようになります。@echo off C: chdir C:\cygwin\bin set CYGWIN=binmode ntsec bash --login –i
-
Cygwin (
cygrunsrv
)が正しくインストールされているかどうかを確認するには、C:\cygwin\Cygwin.bat
を実行し、次のコマンドを実行します。cygrunsrv –h
Cygwinが正しくインストールされている場合、すべてのCygwinヘルプ・オプションが画面に表示されます。このコマンドでエラー・メッセージが戻された場合は、状況に応じてCygwinを再インストールする必要があります。
-
repladminおよびrepluserの各アイデンティティをWindowsレベルで定義します。
これらのロールに対して、かわりに既存のユーザーを使用することもできます。これらのロールに新しいアイデンティティを定義する場合は、次の点に注意してください。
-
repladminユーザーは、Administratorsグループのメンバーである必要があります。repladminは、ドメインベースのユーザーでもあるようにしてください。repladminがローカル・ユーザーの場合、すべてのプライマリ・ノードで同じグループ・メンバーシップを使用して定義する必要があります。
-
repluserユーザーは、ドメインベースのユーザーであり、
ORA_ASMADMIN
グループのメンバーである必要があります。
-
-
sshd
サービスを構成します。C:\cygwin\Cygwin.bat
,を実行し、次のコマンドを実行します。ssh-host-config
コマンドを実行すると、次のプロンプトが表示されます。該当するレスポンスは太字で示されています。その他の出力も表示されることがありますが、ここでは省略します。
*** Query: Should StrictModes be used? (yes/no) yes *** Query: Should privilege separation be used? <yes/no>: yes *** Query: New local account ’sshd’? <yes/no>: yes *** Query: Do you want to install sshd as a service? *** Query: <Say "no" if it is already installed as a service> <yes/no>: yes *** Query: Enter the value of CYGWIN for the daemon: [] binmode ntsec
ここで、
ssh-host-config
から、パスワードなしログインを使用するのに必要なユーザー・アカウントに関するノート情報がいくつか出力されます。この機能は、Oracle ACFSレプリケーションで必要となります。repluserアカウントは、このアカウントとして指定する必要があります。*** Info: The following privileged accounts were found: 'cyg_server' . *** Info: This script plans to use 'cyg_server'. *** Info: 'cyg_server' will only be used by registered services. *** Query: Do you want to use a different name? (yes/no) yes
プロンプトにyesと応答し、
sshd
を実行する名前でrepluserを指定します。すると、次のプロンプトが表示されます。*** Query: Enter the new user name: repluser *** Query: Reenter: repluser ***Warning: The specified account 'repluser' does not have the ***Warning: required permissions or group memberships. This may ***Warning: cause problems if not corrected; continuing... *** Query: Please enter the password for user 'repluser': *** Query: Reenter:
前述では、ユーザーrepluserがすでに存在することを前提としています。権限またはグループ・メンバーシップがないことに関する警告の出力は無視してもかまいません。構成が成功した場合は、次のメッセージが表示されます。
Host configuration finished. Have fun!
-
/var/empty
ディレクトリが存在し、repluserが所有していることを確認します。 -
repluserユーザーとrepladminユーザーがCygwinで認識されていることを確認します。
c:\cygwin\etc\passwd
ファイルをバックアップし、編集モードでファイルを開きます。repladminユーザーまたはrepluserユーザーを参照している行をすべてこのファイルから削除します。ユーザーごとに、次のコマンドを実行します。どちらのユーザーもドメインベースのユーザーであることを前提としています。/bin/mkpasswd -d -u repladmin >> /etc/passwd
ユーザーごとに名前が付いたホーム・ディレクトリが
/etc/passwd
に存在することを確認します。必要に応じて作成します。たとえば、/home/repladmin
がユーザーrepladminに表示されるディレクトリの場合、次を実行して必要なディレクトリを作成します。mkdir -p /home/repladmin chown repladmin /home/repladmin
-
ssh
デーモンが開始していることを確認し、自動的に開始するように構成します。-
「マイ コンピュータ」を右クリックし、「管理」を選択します。
-
「コンピュータの管理」ウィンドウの左側のペインで、「サービスとアプリケーション」を展開し、「サービス」を選択します。
-
右側のペインで、CYGWIN sshdサービスを右クリックし、表示されたメニューで「プロパティ」エントリをクリックします。開いたダイアログ・ボックスで、「スタートアップの種類」として「自動」を選択し、「OK」をクリックします。
-
ssh
デーモンが開始していない場合、起動プロセスの障害に関する情報がないかc:\cygwin\var\log\sshd.log
ファイルを調べます。
プライマリ・クラスタの各ノードに定義されているrepladmin用の公開キーを、スタンバイ・クラスタの各ノードのrepluserが認識している必要があります。
キーを認識させるには、各スタンバイ・ノードに~repluser/.ssh
ディレクトリが存在する必要があります。このディレクトリが存在しない場合は、repluser専用のアクセス権で作成します。.ssh
ディレクトリに対するls
コマンドの出力が次のようになっていることを確認します。
repluser@standby $ ls -ld ~/.ssh drwx------+ 1 repluser Domain Users 4096 2016-02-23 11:27 .ssh
repladmin用の公開キーが特定のプライマリ・ノードに定義されている場合、~repladmin/.ssh/id_rsa.pub
などの.pub
ファイル内にあります。公開キー・ファイルが存在する場合は、レプリケーションが実行されるスタンバイの各ノードにrepluserとしてログインすることを認可された一連のキーに、その内容を追加します。各スタンバイ・ノードで、必要に応じて~repluser/.ssh/authorized_keys2
ファイルを作成し、その最後にキーを追加します。
公開キー・ファイルが存在しない場合は、repladminとして次のコマンドを実行してプライマリで公開キーと秘密キーのペアを生成します。
# ssh-keygen -t rsa
コマンドから発行される各プロンプトに応えて、[Enter]キーを押します。結果として生成された.pub
ファイルを各スタンバイ・ノードにコピーします。
repladmin用の同じ公開/秘密キーペアをプライマリ・クラスタ内のすべてのノードで共有することも、プライマリ・ノードごとに異なるキー・ペアを設定することもできます。プライマリ・クラスタ内のすべてのノードで同じ公開キーがrepladminに対して有効な場合、スタンバイ・クラスタの各ノードで、~repluser/.ssh/authorized_keys2
ファイルにそのキーのみを追加する必要があります。各プライマリ・ノードに独自のrepladmin用の公開キーがある場合は、すべての公開キーをそのファイルに追加する必要があります。いずれの場合も、スタンバイの特定のノードで更新したauthorized_keys2
ファイルをクラスタの他のノードにコピーすることで、作業を最小化できます。
レプリケーションが実行される各スタンバイ・ノード用のホスト・キーを、レプリケーションが実行される各プライマリ・ノードで認識させる必要があります。適切なキーを生成する方法の1つとして、各プライマリ・ノードから各スタンバイ・ノードに対してrepladminユーザーとして手動でssh
を実行します。適切なホスト・キーがまだ認識されていない場合は警告が表示され、ssh
を有効にしてキーを追加できます。
ssh
接続には2人のユーザーがかかわります。プライマリ・ノードではssh
はスタンバイ・ノードにrepladminとして接続する一方、スタンバイ・ノードではssh
はrepluserとしてログインします。スタンバイでssh
によって実行されるコマンドは、repladmin権限ではなく、repluserの権限で実行されます。
プライマリ・ノードはスタンバイ・ノードにrepladminユーザーとして接続するため、スタンバイ・ノード用のホスト・キーをrepluser用のファイルではなく、repladminユーザーのknown_hosts
ファイルに追加する必要があります。次に、ホスト・キーを取得する例を示します。
[repladmin@primary usm]# ssh repluser@standby date The authenticity of host 'standby (10.137.13.85)' can't be established. RSA key fingerprint is 1b:a9:c6:68:47:b4:ec:7c:df:3a:f0:2a:6f:cf:a7:0a. Are you sure you want to continue connecting (yes/no)?
yes
と応答すると、ssh
の設定が完了します。ホスト・スタンバイ用のホスト・キーが、ホスト・プライマリのrepladminユーザー用のknown_hosts
ファイル(~repladmin/.ssh/known_hosts
)に格納されます。
スタンバイ・ノードに対するホスト・キーの設定が特定のプライマリ・ノードで完了したら、仮想IPアドレス(VIP)を使用してスタンバイ・クラスタと通信する場合は、追加のステップを実行する必要があります。VIP名またはアドレスを、スタンバイ・クラスタ内のホストを参照するknown_hosts
ファイルの各行の先頭に追加する必要があります。たとえば、名前がstandby12_vip
のVIPを使用し、スタンバイを参照する次の2行がknown_hosts
ファイルに含まれる場合、
standby1,10.242.20.22 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3pM2YTd4UUiEWEoCKDGgaTgsmPkQToDrdtU+JtVIq/96muivU BaJUK83aqzeNIQkh+hUULsUdgKoKT5bxrWYqhY6AlTEqNgBHjBrJt9C73BbQd9y48jsc2G+WQWyuI/ +s1Q+hIJdBNMxvMBQAfisPWWUcaIx9Y/JzlPgF6lRP2cbfqAzixDot9fqRrAKL3G6A75A/6TbwmEW07d1zqOv l7ZGyeDYf5zQ72F/V0P9UgMEt/5DmcYTn3kTVGjOTbnRBe4A4lY4rVw5c+nZBDFre66XtORfQgwQB5ztW/Pi 08GYbcIszKoZx2HST9AZxYIAgcrnNYG2Ae0K6QLxxxScP standby2,10.242.20.23 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIszcjzNtKN03SY8Kl846skFTVP1HF/ykswbmkctEjL6KTWTW+NR U4MGbvkBqqdXxuPCR7aoGO2U3PEOg1UVf3DWUoux8IRvqKU+dJcdTibMFkDAIhTnzb14gZ/lRTjn+GYsuP5 Qz2vgL/U0ki887mZCRjWVL1b5FNH8sXBUV2QcD7bjF98VXF6n4gd5UiIC3jv6l2nVTKDwtNHpUTS1dQAi+1D tr0AieZTsuxXMaDdUZHgKDotjciMB3mCkKm/u3IFoioDqdZE4+vITX9G7DBN4CVPXawp+b5Kg8X9P+08Eehu tMlBJ5lafy1bxoVlXUDLVIIFBJNKrsqBvxxxpS7
VIPを使用できるようにするには、次のようにこの2行を変更します。
standby12_vip,standby1,10.242.20.22 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3pM2YTd4UUiEWEoCKDGgaTgsmPkQToDrdtU+JtVIq/96muivU BaJUK83aqzeNIQkh+hUULsUdgKoKT5bxrWYqhY6AlTEqNgBHjBrJt9C73BbQd9y48jsc2G+WQWyuI/ +s1Q+hIJdBNMxvMBQAfisPWWUcaIx9Y/JzlPgF6lRP2cbfqAzixDot9fqRrAKL3G6A75A/6TbwmEW07d1zqOv l7ZGyeDYf5zQ72F/V0P9UgMEt/5DmcYTn3kTVGjOTbnRBe4A4lY4rVw5c+nZBDFre66XtORfQgwQB5ztW/Pi 08GYbcIszKoZx2HST9AZxYIAgcrnNYG2Ae0K6QLxxxScP standby12_vip,standby2,10.242.20.23 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIszcjzNtKN03SY8Kl846skFTVP1HF/ykswbmkctEjL6KTWTW+NR U4MGbvkBqqdXxuPCR7aoGO2U3PEOg1UVf3DWUoux8IRvqKU+dJcdTibMFkDAIhTnzb14gZ/lRTjn+GYsuP5 Qz2vgL/U0ki887mZCRjWVL1b5FNH8sXBUV2QcD7bjF98VXF6n4gd5UiIC3jv6l2nVTKDwtNHpUTS1dQAi+1D tr0AieZTsuxXMaDdUZHgKDotjciMB3mCkKm/u3IFoioDqdZE4+vITX9G7DBN4CVPXawp+b5Kg8X9P+08Eehu tMlBJ5lafy1bxoVlXUDLVIIFBJNKrsqBvxxxpS7
最終的に、プライマリ・クラスタのこの1つ目のノードで実行されたホスト・キーの構成は、プライマリ・クラスタ内のすべてのノードで実行する必要があります。前述の手順の結果またはそれに相当するものが各プライマリ・ノードに存在する必要があります。この構成を実現するのに必要な手作業を最小化する方法の1つとして、プライマリ・クラスタのノードの1つでknown_hosts
ファイルを更新した後、更新後のファイルをクラスタの他のノードにコピーします。
ノート:
デフォルトでは、レプリケーションにより、ssh
による厳密なホスト・キー・チェックが有効になり、ssh
の実行時にプライマリ・ノードが目的のスタンバイ・ノードまたはクラスタに必ず接続されます。しかし、プライマリ・クラスタとスタンバイ・クラスタがプライベート・ネットワークで通信する場合など、このチェックが確実に不要である場合は、ssh
による厳密なホスト・キー・チェックの使用を無効にできます。厳密なホスト・キー・チェックの無効化の詳細は、acfsutil
repl
init
primary
コマンドの/o sshStrictKey=no
オプションを参照してください。厳密なホスト・キー・チェックが無効になっている場合、ホスト・キーの設定は不要です。acfsutil
repl
init
コマンドの詳細は、「acfsutil repl init」を参照してください。
Oracle ACFSレプリケーションでは、プライマリ・クラスタのノードで稼働しているデーモンを使用してレプリケーションの進行状況を制御します。このデーモンは、アイデンティティNT_AUTHORITY\SYSTEM
を使用して自動的に開始されます。このデーモンにより、ssh
を使用しているレプリケーションでは、プライマリ・データをスタンバイ・サイトに転送して適用できます。
デーモンによって開始されるプロセスは、デーモンのアイデンティティを保持します。ユーザーがNT_AUTHORITY\SYSTEM
(ssh
を介してスタンバイと実際にやり取りするユーザー)である場合、ssh
はSYSTEM
ユーザーのホーム・ディレクトリでスタンバイに渡す公開キーを探し、そこでスタンバイが渡したホスト・キーを確認します。
デーモンでssh
を正常に使用できるようにするには、プライマリのrepladmin用に設定した.ssh
ディレクトリの内容をSYSTEM
のホーム・ディレクトリ内の.ssh
ディレクトリにコピーする必要があります。このディレクトリには、他のホーム・ディレクトリに使用されている場所と対応する場所を使用します。
たとえば、ユーザーrepladminのホーム・ディレクトリが/home/repladmin
の場合は、/home/SYSTEM
をSYSTEM
のホーム・ディレクトリとして使用します。このような.ssh
ディレクトリは、repladminとしてログインして作成します。
まず、SYSTEM
のホーム・ディレクトリが存在しない場合は、それを作成します。
$ mkdir /home/SYSTEM
次に、repladmin用の.ssh
ディレクトリをSYSTEM
用のディレクトリにコピーします。
$ cd $HOME $ cp -p -R .ssh /home/SYSTEM
Cygwinの設定のテスト
ここで、Cygwinの設定をテストします。使用可能なssh
クライアントがある別のコンピュータを使用して、次のコマンドをユーザーrepladminとして実行します。
ssh -l repluser host-address date
host-address
は、ssh
を構成したばかりのホストを指します。次に例を示します。
ssh -l repluser standby1.us.example.com date
インストールおよび構成ステップが正常に完了した場合、このコマンドはパスワードの入力要求なしに実行されます。
ssh
の構成後に、プロセス分岐化の失敗、メモリー・リーク・エラーまたはファイル・アクセス・エラーが発生した場合、次のリンクをアクセスして解決策を確認してください。
http://cygwin.com/faq.html
問題の解決策が見つからない場合は、次のリンクを使用してCygwinコミュニティにその問題をレポートしてください。
http://cygwin.com/problems.html
Oracle ACFSスナップショットベースのレプリケーションへのアップグレード
この項では、Oracle ACFSスナップショットベースのレプリケーションへのアップグレードについて説明します。Oracle Grid Infrastructure 12cリリース2 (12.2)では、Oracle ACFSスナップショットベースのレプリケーションは、サポート対象のOracle ACFSレプリケーション実装となります。12.2より前のリリースのレプリケーション環境がある場合、Oracle Grid Infrastructure 12cリリース2 (12.2)にアップグレードする際に、既存のレプリケーション・インストールをスナップショットベースのレプリケーションにアップグレードする必要があります。
ノート:
-
レプリケーション・アップグレード・プロセスは、開始したら完了する必要があります。このプロセスは、ロールバックできません。
-
スナップショットベースのレプリケーションにアップグレードする前に、Oracle Flex ASMは有効になっており、必要であれば、パスワード・ファイルの変換を実行しておく必要があります。
インスタンスをOracle Grid Infrastructure 12cリリース2 (12.2)にアップグレードする際、Oracle Flex ASMは既存のインスタンスに対して有効になっている必要があります。レプリケーションをサポートするインスタンスにパスワード・ファイルが存在する場合は、そのファイルを新しいOracle Flex ASMインスタンスで使用できるようにする必要があります。たとえば、インスタンスで前のORACLE_SID
をASM
に設定し、現在のORACLE_SID
をAPX1
に設定した場合、次のステップを実行する必要があります。
-
既存の
orapw+ASM
ファイルを+APX1
バージョンにコピーします。$ cp /oraroot/app/12.2.0/has0626/dbs/orapw+ASM /oraroot/app/12.2.0/has0626/dbs/orapw+APX1
init+APX1.ora
という名前の新しいテキスト・ファイルをdbs
ディレクトリに作成し、次の行のみを新しいファイルに追加します。remote_login_passwordfile = exclusive
-
Oracle ASMプロキシ(APX)インスタンスを再起動します。
$ asmcmd shutdown --target APX --immediate
環境変数
ORACLE_SID
がOracle ASMプロキシ(APX)インスタンスに設定されていることを確認します。その後、インスタンスを再起動してください。$ asmcmd startup --pfile init+APX1.ora
スナップショットベースのレプリケーションでは、ssh
をプライマリ・クラスタとスタンバイ・クラスタ間のトランスポートとして使用します。アップグレード・プロセスの開始前に、「Oracle ACFSレプリケーションで使用するためのsshの構成」の説明に従ってssh
を構成する必要があります。
スナップショットベースのレプリケーションにアップグレードする前に、スタンバイ・クラスタ・システムをOracle Grid Infrastructure 12cリリース2 (12.2)にアップグレードする必要があります。このクラスタ・アップグレードは、24時間以内に完了してください。スタンバイ・クラスタは、このアップグレード・プロセスの間、既存のレプリケーションを実行し続けます。次に、プライマリ・クラスタでOracle Grid Infrastructure 12cリリース2 (12.2)にアップグレードします。このアップグレードも24時間以内に完了してください。このアップグレードの間、プライマリ・クラスタは、12.2より前にインストールされた既存のレプリケーションを実行し続けます。スタンバイ・クラスタとプライマリ・クラスタのOracle Grid Infrastructure 12cリリース2 (12.2)へのアップグレードが完了すると、12.2より前にインストールされた既存のレプリケーション実装はサポートされません。
2つのクラスタのアップグレードに続いてすぐに、レプリケーションにかかわるファイル・システムに関連付けられているCOMPATIBLE.ADVM
ディスク・グループ属性を12.2.0.0.0
に設定する必要があります。これで、スナップショットベースのレプリケーションに移行する準備ができました。この移行は、次のいずれかのオプションを使用して実行できます。
-
既存のレプリケーションを終了し、スナップショットベースのレプリケーションを使用するように初期化します。このオプションは、レプリケート対象のデータ量が少ない(数百GB未満)場合にお薦めします。また、このオプションは、1つのノードにのみマウントされるようにプライマリ・ファイル・システムを簡単に制限できない場合や、プライマリでアクティビティを簡単に停止できない場合には、好ましいオプションです。
-
acfsutil
repl
upgrade
コマンドを実行して、レプリケーションを終了および初期化せずに、既存のレプリケーション環境をアップグレードします。このオプションは、スナップショットベースのレプリケーションが既存のレプリケーションが停止したポイントから続行できることで、プライマリ・ファイル・システムのコンテンツ全体をスタンバイに転送する必要がありません。このオプションは、大量のデータをレプリケートする場合に便利です。アップグレード・プロセスではデータがほとんど転送されないため、プロセスはすぐに完了すると考えられます。
次に、acfsutil
repl
upgrade
コマンド・オプションを実行してスナップショットベースのレプリケーションにアップグレードする方法の詳細を示します。
-
レプリケーション・アップグレード・プロセスを開始する前に、プライマリ・ファイル・システムがプライマリ・クラスタの1つのノードにのみマウントされていることを確認する必要があります。さらに、プライマリ・ファイル・システムに対するアプリケーションの更新をすべて停止してから、
acfsutil
repl
sync
apply
をもう一度実行して、プライマリでの変更がすべてレプリケートされるようにすることをお薦めします。 -
アップグレード・プロセスの最初のステップは、プライマリ・クラスタで
acfsutil
repl
upgrade
prepare
コマンドを実行します。このコマンドは、スナップショットベースのレプリケーションに使用されるユーザー名およびホスト名またはインタフェース名の他、プライマリ・マウント・ポイントも指定します。ユーザー名およびホスト名は、スナップショットベースのレプリケーションに使用されるacfsutil
repl
init
primary
コマンドのオプションと同様に、—s
オプションを使用して指定します。 -
プロセスの次のステップは、
acfsutil
repl
upgrade
standby
コマンドを実行して、スタンバイ・クラスタでレプリケーションをアップグレードします。このコマンドは、スナップショットベースのレプリケーションに使用されるユーザーの他、スタンバイ・マウント・ポイントも指定します。ユーザー名は、スナップショットベースのレプリケーションに使用されるacfsutil
repl
init
standby
コマンドのオプションと同様に、-u
オプションを使用して指定します。 -
プロセスの最後のステップは、プライマリ・クラスタで
acfsutil
repl
upgrade
primary
コマンドを実行します。これは、前のレプリケーション・デプロイメントを自動的に終了し、スナップショットベースのレプリケーションを開始するコマンドです。このコマンドは、acfsutil
repl
init
primary
コマンドで受け入れられたスナップショットベースのレプリケーション用のコマンドライン・オプションを受け入れます(ただし、現在終了している前のレプリケーション環境から情報が取得されるため、-m
オプションおよび-s
オプションを除きます)。 -
acfsutil
repl
upgrade
primary
コマンドが完了すると、12.2リリースのスナップショットベースのレプリケーションでacfsutil
repl
init
コマンドを実行していたかのように、影響を受けたプライマリ・クラスタとスタンバイ・クラスタ間でスナップショットベースのレプリケーションがアクティブになっています。acfsutil
repl
info
-c
コマンドをプライマリ・クラスタとスタンバイ・クラスタの両方で使用し、各クラスタのレプリケーションの状態を確認できます。
ノート:
acfsutil
repl
upgrade
standby
またはacfsutil
repl
upgrade
primary
の実行中にエラーが発生した場合は、次の点を検討します。
-
エラーによっては、アップグレード・コマンドが正常に完了するまで、(
acfsutil
repl
info
の出力では)レプリケーションが初期化されていないように見えることがあります。 -
アップグレードを続行するには、失敗したアップグレード・コマンドが示したエラーをすべて修正してから、失敗したコマンドを再度発行します。コマンドを何度も再発行することもあり得ます。