Windows Server 2008 R2で、Microsoft社は、フェイルオーバー・クラスタを管理する優先スクリプト・ツールとして一連のフェイルオーバー・クラスタのPowerShellコマンド(コマンドレット)を導入しました。PowerShellは、Microsoft社が提供する新しいコマンドおよびスクリプト言語であり、過去に使用された古いコマンド(CMD)環境と置き換わります。新しいフェイルオーバー・クラスタ・コマンドレットは、将来のリリースのWindows Serverで使用できなくなる可能性がある古いコマンドライン・ユーティリティCLUSTER.EXE
と置き換わりました。オラクル社では、古いFSCMD.EXE
ユーティリティも置き換える新しい一連のPowerShellコマンドレットを提供しています。
PowerShellコマンドレットは、Windows Server 2012 R2などのサーバー・システムまたはWindows 8.1などのクライアント・システムで使用できます。フェイルオーバー・クラスタ機能がシステムに追加されると、Microsoftフェイルオーバー・クラスタ・コマンドレットがサーバーに追加されます。Microsoft社の使用可能なリモート・サーバー管理ツール・パッケージをインストールして、フェイルオーバー・クラスタ・コマンドレットをクライアント・システムに追加できます。Oracle Fail Safeコマンドレットは、Oracle Fail Safe Managerインストール・コンポーネントの一部としてインストールされます。
「スタート」をクリックします。
「アクセサリ」をクリックしてから、「Windows PowerShell」をクリックします。
「Windows PowerShell」をダブルクリックします。これにより、標準コマンドレットがロードされた基本PowerShellセッションが開始されます。
関連するコマンドレットのグループは、モジュールと呼ばれるコンテナにパッケージ化されています。フェイルオーバー・クラスタに固有のコマンドレットを使用する前に、Import-Moduleコマンドレットを使用してPowerShellセッションにロードします。次のコマンドを使用して、フェイルオーバー・クラスタ・モジュールをロードします。
PS C:\Users\admin> Import-Module FailoverClusters
Oracle Fail Safeコマンドレットをロードするには、次のコマンドを実行します。
PS C:\Users\admin> Import-Module FailSafe
PowerShellモジュールには、含まれるコマンドの説明へのリンクも含まれます。モジュールをロードした後、モジュールに含まれるコマンドレットを確認して、各コマンドレットを説明するヘルプ・テキストを表示します。
たとえば、FailSafeモジュールで提供されるコマンドレットを確認するには、次のコマンドを入力します。
PS C:\Users\Admin> Get-Command -Module FailSafe
CommandType Name Definition ----------- ---- ---------- Cmdlet Add-OracleClusterResource Add-OracleClusterResource [[... Cmdlet Get-OracleClusterResource Get-OracleClusterResource [[... Cmdlet Remove-OracleClusterResource Remove-OracleClusterResource... Cmdlet Stop-OracleClusterDatabase Stop-OracleClusterDatabase [... Cmdlet Test-OracleCluster Test-OracleCluster [[-Name] ... Cmdlet Test-OracleClusterAvailableD... Test-OracleClusterAvailableD... Cmdlet Test-OracleClusterGroup Test-OracleClusterGroup [[-N...
文字列「cluster」を含むすべてのコマンドレットの基本情報を取得するには、次のコマンドを使用します。
PS C:\Users\Admin> Get-Help cluster
Name Category Synopsis ---- -------- -------- Add-OracleClusterResource Cmdlet Adds an Oracle resource to a fai... Get-OracleClusterResource Cmdlet Gets an Oracle resource object Remove-OracleClusterResource Cmdlet Removes an Oracle cluster resour... Stop-OracleClusterDatabase Cmdlet Stops an Oracle database Test-OracleCluster Cmdlet Verifies the installation and co... Test-OracleClusterAvailableDat... Cmdlet Verifies the configuration of an... Test-OracleClusterGroup Cmdlet Verifies the configuration of Or... Add-ClusterDisk Cmdlet Make a new disk available for us... Add-ClusterFileServerRole Cmdlet Create a clustered file server (... . . .
特定のコマンドレットに固有の情報を取得するには、コマンドレット名にGet-Help
を指定します。
例5-1 Get-OracleClusterResource
PS C:\Users\Admin> Get-Help Get-OracleClusterResource NAME Get-OracleClusterResource SYNOPSIS Gets an Oracle resource object. SYNTAX Get-OracleClusterResource [[-Name] <String>] [-Available] [-InputObject <PS Object>] [-Cluster <String>] [-Credential <PSCredential>] [<CommonParameter s>] DESCRIPTION This cmdlet will return an Oracle cluster resource object or objects based on the input provided. RELATED LINKS Add-OracleClusterResource Remove-OracleClusterResource Test-OracleClusterAvailableDatabase Stop-OracleClusterDatabase REMARKS To see the examples, type: "get-help Get-OracleClusterResource -examples". For more information, type: "get-help Get-OracleClusterResource -detailed". For technical information, type: "get-help Get-OracleClusterResource -full".
Oracle Fail Safeコマンドレットは、同じ操作のOracle Fail Safe Manager進行状況ダイアログ出力ボックスに示される同じ進行状況情報を表示します。ただし、出力を表示するには、-Verbose
スイッチを指定する必要があります。
PS C:\Users\Admin > Test-OracleClusterGroup “Test Group" -Verbose VERBOSE: FS-10371: FSWIN3 : Performing initialization processing VERBOSE: FS-10371: FSWIN4 : Performing initialization processing VERBOSE: FS-10373: FSWIN3 : Determining owner node of resource . . .
別のクラスタでコマンドレットを実行するには、-Cluster
パラメータをコマンドに追加する必要があります。Oracle Fail Safe ManagerコンポーネントのみインストールしているWindowsクライアント・システムでコマンドレットを実行するには、これは必須です。たとえば、「FinanceCluster」というクラスタのOracleクラスタ・リソースを表示するには、次のコマンドを使用します。
PS C:\Users\Admin > Get-OracleClusterResource -Cluster FinanceCluster
Name State Group ---- ----- ----- OracleOraDb11g_home1TNSLis... Online Receivables OracleOraDb12c_home1TNSLis... Online Payables ReceivablesDb Online Receivables PayablesDb Online Payables
一部のコマンドは、パイプライン入力として使用されません。このため、これらのコマンドの実行は、オブジェクトをパイプラインに送信しません。ターゲット・オブジェクトを出力パイプライン・ストリームに強制的に書き込むコマンドには、-PassThru
スイッチを使用します。たとえば、次のコマンドはオブジェクトをパイプラインに送信しません。
PS C:\Users\Admin> Get-ClusterGroup | Test-OracleClusterGroup
-PassThru
スイッチを追加すると、クラスタ・グループ・オブジェクトがパイプラインに強制的に送信されます。
PS C:\Users\Admin> Get-ClusterGroup | Test-OracleClusterGroup -PassThru
Name OwnerNode ---- --------- Test Group Node1 Cluster Group Node2 Available Storage Node2
一部のOracle Fail Safeコマンドレットでは、続行する前にユーザーに確認を求めます。たとえば、Test-OracleClusterAvailableDatabase
コマンドレットは、指定されたデータベース・インスタンスが実行されていないことを検出し、インスタンスを起動できるかどうかを尋ねます。これは対話セッションで問題ありませんが、スクリプトを実行する際に確認プロンプトがスクリプトの次のコマンドラインを受け取り、スクリプトでエラーが生じることがあります。PowerShellは、この状況に対応する別の方法を提供します。プロンプトを回避する1つの方法は、コマンドで-Confirm:$false
パラメータを指定します。この修飾子が存在する場合、確認プロンプトは表示されず、コマンドレットが中断せずに続行します。次の例では、最初のコマンドは確認プロンプトを表示し、-Confirm:$false
を含む2番目のコマンドはデータベースが起動しているかどうかユーザーに尋ねずに続行します。
PS C:\Users\Admin> Test-OracleClusterAvailableDatabase TestDb WARNING: FS-10349: Database instance OFS3 is not alive. Do you want to stop and restart the database instance? Confirm Are you sure you want to perform this action? Performing operation "Test-OracleClusterAvailableDatabase" on Target "TestDb". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): N WARNING: FS-10340: Database instance OFS3 is not started and therefore cannot be fully verified. PS C:\Users\Admin> Test-OracleClusterAvailableDatabase TestDb –Confirm:$false
確認プロンプトを回避する別の方法は、デフォルトのレスポンス変数$ConfirmPreference
を設定します。この変数を確認が必要な最下位レベルに設定できます(「high」、「medium」、「low」または「none」)。たとえば、ほとんどのOracle Fail Safeコマンドレットは、システム操作に大きな影響を与えます。そのため、Oracle Fail Safeコマンドレットを自動的に確認するには、次に示すように$ConfirmPreference
変数を「none」
に設定する必要があります。
PS C:\Users\Admin> $ConfirmPreference="none" PS C:\Users\Admin> Test-OracleClusterAvailableDatabase TestDb
Stop-OracleClusterDatabase
コマンドなどの一部のコマンドでは、続行する前に常に確認を求められます。このコマンドレットは、確認プロンプトを回避するために使用できる-Force
スイッチを提供します。
PS C:\Users\Admin> Stop-OracleClusterDatabase TestDb -Force
次の表は、同じタスクを実行するために使用できるFSCMD.EXE
コマンドおよびOracle Fail Safe PowerShellコマンドレットを示しています。
FSCMD.EXEコマンド | PowerShellコマンド |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
オペレーティング・システム(OS)認証がクラスタまたはデータベースに対して有効になっていない場合、データベースのユーザー名およびパスワードを提供する必要があります。Test-OracleClusterAvailableDatabase
コマンドレットは、データベースSYS
アカウントのパスワードを指定する-SysPwd
パラメータを提供します。Read-Host
コマンドレットを実行してパスワードがユーザーから取得されることに注意してください。
PS C:\Users\Admin> Test-OracleClusterAvailableDatabase TestDb -SysPwd (Read-Host -AsSecureString -Prompt "SYS Password") SYS password: ****
Oracleリソースを追加する場合、リソース・タイプによっては、ユーザー名およびパスワード・プロパティがない場合があります。データベース・リソースでは、OS認証を使用していない場合、クラスタ・グループに追加する前にユーザー名およびパスワードをリソースに設定する必要があります。
PS C:\Users\Admin> $testdb = Get-OracleClusterResource TestDb -Available PS C:\Users\Admin> $testdb.UserName="SYS" PS C:\Users\Admin> $testdb.Password=Read-Host -AsSecureString -Prompt "SYS Password" SYS Password: **** PS C:\Users\Admin> $testdb | Add-OracleClusterResource -Group FsTutorial
PowerShellのパイプライン機能を使用して、各種コマンドを結合できます。
次の例では、すべてのOracleリソースが最初にフェッチされ、次にデータベースがリストから選択され、最後にimmediateモードを使用してデータベースが停止されます。
PS C:\Users\Admin> Get-OracleClusterResource | >> where {($_.Type -ieq "Oracle Database")} | >> Stop-OracleClusterDatabase -Mode Immediate –Force