ヘッダーをスキップ
Oracle® Fail Safe概要および管理ガイド
リリース4.1 for Microsoft Windows
B72446-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

6 PowerShellコマンド

Windows Server 2008 R2で、Microsoft社は、フェイルオーバー・クラスタを管理する優先スクリプト・ツールとして一連のフェイルオーバー・クラスタのPowerShellコマンド(コマンドレット)を導入しました。PowerShellは、Microsoft社が提供する新しいコマンドおよびスクリプト言語であり、過去に使用された古いコマンド(CMD)環境と置き換わります。新しいフェイルーバー・クラスタ・コマンドレットは、将来のリリースのWindows Serverで使用できなくなる可能性がある古いコマンドライン・ユーティリティCLUSTER.EXEと置き換わります。オラクル社では、古いFSCMD.EXEユーティリティも置き換える新しい一連のPowerShellコマンドレットを提供しています。

PowerShellコマンドレットは、Windows Server 2008 R2などのサーバー・システムまたはWindows 7などのクライアント・システムで使用される可能性があります。フェイルオーバー・クラスタ機能がシステムに追加されると、Microsoftフェイルオーバー・クラスタ・コマンドレットがサーバーに追加されます。Microsoft社の使用可能なリモート・サーバー管理ツール・パッケージをインストールして、フェイルオーバー・クラスタ・コマンドレットをクライアント・システムに追加できます。Oracle Fail Safeコマンドレットは、Oracle Fail Safe Managerインストール・コンポーネントの一部としてインストールされます。

6.1 開始


注意:

Windows Server 2008 R2から、Windows PowerShellがすべてのWindows Serverシステムにデフォルトでインストールされます。Windows Server 2008 R2より前のシステムには、PowerShellを手動でインストールする必要があります。

すでにPowerShellがインストールされているシステムで基本PowerShellセッションを開始するには、「スタート」「すべてのプログラム」「アクセサリ」「Windows PowerShell」の順にクリックして、最後に「Windows PowerShell」をダブルクリックします。これにより、標準コマンドレットがロードされた基本PowerShellセッションが開始されます。

関連するコマンドレットのグループは、モジュールと呼ばれるコンテナにパッケージ化されています。フェイルオーバー・クラスタに固有のコマンドレットを使用する前に、Import-Moduleコマンドレットを使用してPowerShellセッションにロードします。次のコマンドを使用して、フェイルオーバー・クラスタ・モジュールをロードします。

PS C:\Users\admin> Import-Module FailoverClusters

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を指定します。

例6-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".

6.2 共通パラメータについて

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

6.3 スクリプトのOracle Fail Safeコマンドレットの使用

一部の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

6.4 FSCMD等価コマンドレット

次の表は、同じタスクを実行するために使用できるFSCMD.EXEコマンドおよびOracle Fail Safe PowerShellコマンドレットを示しています。

FSCMD.EXEコマンド PowerShellコマンド
DISABLEISALIVE (Get-OracleClusterResource <db name>).IsAliveEnabled=$false
ENABLEISALIVE (Get-OracleClusterResource <db name>).IsAliveEnabled=$true
MOVEGROUP Move-ClusterGroup
OFFLINEGROUP Stop-ClusterGroup
OFFLINERESOURCE Stop-ClusterResource or Stop-OracleClusterDatabase
ONLINEGROUP Start-ClusterGroup
ONLINERESOURCE Start-ClusterResource
VERIFYALLGROUPS Get-ClusterGroup|Test-OracleClusterGroup
VERIFYCLUSTER Test-OracleCluster
VERIFYGROUP Test-OracleGroup

6.5

オペレーティング・システム(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