ASMCMDは、Oracle ASMインスタンス、ディスク・グループ、ディスク・グループのファイル・アクセス制御、ディスク・グループ内のファイルおよびディレクトリ、ディスク・グループのテンプレートおよびボリュームの管理に使用できるコマンドライン・ユーティリティです。
ASMCMDユーティリティは、対話モードでも非対話モードでも実行できます。
この項の内容は次のとおりです。
表12-1に、ASMCMDコマンドのタイプを示します。
表12-1 ASMCMDコマンドのタイプ
ASMCMDでは、Oracle ASMのファイル、ディレクトリおよびエイリアスを使用します。ASMCMDを使用する前に、これらの一般的な処理の概念がOracle ASMの環境にどのように適用されるかを理解しておく必要があります。
この項では、主な定義に関する次の項目について説明します。
Oracle ASMで作成されたすべてのファイルには、システム生成のファイル名(完全修飾されたファイル名)が付けられます。これは、ローカル・ファイルシステムでの完全パス名と類似しています。
Oracle ASMでは、次の形式に従ってファイル名が生成されます。
+diskGroupName/databaseName/fileType/fileTypeTag.fileNumber.incarnation
次に、完全修飾されたファイル名の例を示します。
+data/orcl/CONTROLFILE/Current.256.541956473
前述の完全修飾されたファイル名では、dataがディスク・グループ名、orclがデータベース名、CONTROLFILEがファイル・タイプとなります。
ASMCMDではスラッシュ(/)のみがサポートされます。ファイル名の大文字と小文字は区別されませんが、保持されます。小文字でパス名を入力すると、小文字で保持されます。
Oracle ASMのファイル名の詳細は、「完全修飾ファイル名形式」を参照してください。
他のファイルシステムと同様、Oracle ASMディレクトリはファイルのコンテナであり、Oracle ASMディレクトリは他のディレクトリのツリー構造の一部になります。完全修飾されたファイル名は、ルートにプラス記号(+)が付いたディレクトリの階層で示されます。ディスク・グループごとに、ディスク・グループ内で完全修飾されたファイル名の構造に対応するディレクトリ階層が自動的に作成されます。この階層構造でのディレクトリを、システム生成のディレクトリと呼びます。
ASMCMDでは、cd(ディレクトリ変更)コマンドを使用して、このディレクトリ階層を上下に移動できます。ASMCMDのls(ディレクトリのリスト)コマンドでは、現行ディレクトリの内容をリストし、pwdコマンドでは、現行ディレクトリ名を出力します。
ASMCMDを起動すると、現行ディレクトリはルート(+)に設定されます。たとえば、dataおよびfraの2つのディスク・グループを持つOracle ASMインスタンスの場合、ルート・ディレクトリを現行ディレクトリとしてlsコマンドを入力すると、出力結果は次のようになります。
ASMCMD> lsdata/fra/次に、Oracle ASMディレクトリ・ツリー(前述の完全修飾されたファイル名を参照)を移動する例を示します。
ASMCMD> cd +data/orcl/CONTROLFILEASMCMD> lsCurrent.256.541956473Current.257.541956475システム生成のディレクトリのサブディレクトリとして、独自のディレクトリを作成できます。これを行うには、ASMCMD mkdirコマンドを使用します。ユーザー作成のディレクトリにもサブディレクトリを作成でき、システム生成のディレクトリおよびユーザー作成のディレクトリの両方の階層構造をcdコマンドを使用して移動できます。
次の例では、ディスク・グループdataのorclの下にディレクトリmydirを作成します。
ASMCMD> mkdir +data/orcl/mydir
|
注意: ディレクトリorclは、システム生成のディレクトリです。dataの内容は、ディスク・グループdataの内容を表します。 |
-pフラグを付けてASMCMDを起動すると、ASMCMDでは、プロンプトの一部に常に現行ディレクトリが表示されます。詳細は、「ASMCMDプロンプトへの現行ディレクトリの表示」を参照してください。
ASMCMD [+] > cd data/orclASMCMD [+data/orcl] >ASMCMDでは、ディレクトリの大文字と小文字は入力したとおりに保持されます。
エイリアスは、システム生成のファイル名への参照またはポインタです。ただし、エイリアスはユーザーにわかりやすい名前です。UNIXまたはLinuxコンピュータでのシンボリック・リンクと同様です。Oracle ASMファイル名の管理を簡略化するためにエイリアスを作成できます。エイリアスは、mkalias ASMCMDコマンドまたはSQL ALTER DISKGROUPコマンドを使用して作成できます。
エイリアスの完全パスの一部には、少なくともディスク・グループ名が含まれます。エイリアスは、ディスク・グループ・レベル、システム生成またはユーザー作成の任意のサブディレクトリで作成できます。次にエイリアスの例を示します。
+data/ctl1.f+data/orcl/ctl1.f+data/mydir/ctl1.fASMCMDのls(ディレクトリのリスト)に-lフラグを付けて実行すると、各エイリアスは、参照するシステム生成のファイルとともにリストされます。
ctl1.f => +data/orcl/CONTROLFILE/Current.256.541956473
エイリアスの詳細は、「エイリアスOracle ASMファイル名形式」を参照してください。
引数としてファイル名またはディレクトリ名をとるASMCMDコマンドを実行する場合、名前は絶対パスまたは相対パスのいずれかとして使用できます。
絶対パスは、ファイルまたはディレクトリの完全パスを示します。絶対パスはプラス記号(+)で始まり、その後にディスク・グループ名、ディレクトリ・ツリー内の後続ディレクトリが続きます。絶対パスには、対象のファイルまたはディレクトリまでのディレクトリが含まれます。システム生成の完全なファイル名(完全修飾されたファイル名とも呼ばれる)は、ファイルへの絶対パスの例です。
絶対パスを使用すると、現行ディレクトリがどこに設定されているかに関係なく、コマンドを実行してファイルまたはディレクトリにアクセスできます。次のrmコマンドでは、ファイル名への絶対パスを使用しています。
ASMCMD [+] > rm +data/orcl/datafile/users.259.555341963
次のcdコマンドでは、ディレクトリへの絶対パスを使用しています。
ASMCMD [+data/mydir] > cd +data/orcl/CONTROLFILE
相対パスは、現行ディレクトリの部分を含まないファイル名またはディレクトリ名の部分でのみ構成されます。つまり、ファイルまたはディレクトリへのパスは、現行ディレクトリに対する相対的な位置を示します。
次の例で、rmコマンドは、相対パスであるファイルundotbs1.272.557429239で動作します。ASMCMDは、コマンド引数に現行ディレクトリを追加し、このファイルへの絶対パスを取得します。この例では、これは+data/orcl/DATAFILE/undotbs1.272.557429239です。
ASMCMD [+] > cd +dataASMCMD [+data] > cd orcl/DATAFILEASMCMD [+data/orcl/DATAFILE] > lsEXAMPLE.269.555342243SYSAUX.257.555341961SYSTEM.256.555341961UNDOTBS1.258.555341963UNDOTBS1.272.557429239USERS.259.555341963ASMCMD [+data/orcl/DATAFILE] > rm undotbs1.272.557429239また、ディレクトリへのパスを相対パスとして指定できます。cdコマンドに、現行ディレクトリへの相対パスを持つディレクトリ引数を指定して、現行ディレクトリ・ツリー・ブランチの階層を上下に移動できます。
また、ディレクトリ名のかわりに擬似ディレクトリ「.」および「..」を使用できます。「.」擬似ディレクトリは、現行ディレクトリです。「..」擬似ディレクトリは、現行ディレクトリの親ディレクトリです。
次に、相対ディレクトリ・パスおよび擬似ディレクトリの使用例を示します。
ASMCMD [+data/orcl] > cd DATAFILEASMCMD [+data/orcl/DATAFILE] >cd ..ASMCMD [+data/orcl] >ワイルドカード文字の*および%は、絶対パスまたは相対パス内の0文字以上に一致します。絶対パスまたは相対パスは、完全なディレクトリまたはファイル名の入力を保存します。これら2つのワイルドカード文字の動作は同じです。ワイルドカードは、様々なASMCMDコマンドで使用できます。cd、du、find、ls、lsattr、lsdg、lsdsk、lsgrp、lsusrおよびrmがあります。
cdでワイルドカード文字を使用する場合、ワイルドカードのパターンと一致するのが1つのディレクトリのみの場合、cdはそのディレクトリを目的のディレクトリに変更します。ワイルドカードのパターンが複数のディレクトリと一致する場合、ディレクトリは変更されず、エラーが戻されます。
例12-1に、ワイルドカードの使用例を示します。
例12-1 ASMCMDでのワイルドカードの使用方法
ASMCMD [+] > cd +data/orcl/*FILE ASMCMD-08005: +data/orcl/*FILE: ambiguous ASMCMD [+] > cd +data/orcl/C* ASMCMD [+data/orcl/CONTROLFILE] > ASMCMD [+] > ls +fra/orcl/A% 2009_07_13/ 2009_07_14/ ASMCMD [+] > ls +fra/orcl/ARCHIVELOG/2009% +fra/orcl/ARCHIVELOG/2009_07_13/: thread_1_seq_3.260.692103543 thread_1_seq_4.261.692108897 thread_1_seq_5.262.692125993 thread_1_seq_6.263.692140729 thread_1_seq_7.264.692143333 +fra/orcl/ARCHIVELOG/2009_07_14/: thread_1_seq_8.271.692158265 thread_1_seq_9.272.692174597 ASMCMD [+] > ls data/orcl/* +data/orcl/CONTROLFILE/: Current.260.692103157 +data/orcl/DATAFILE/: EXAMPLE.265.692103187 SYSAUX.257.692103045 SYSTEM.256.692103045 UNDOTBS1.258.692103045 USERS.259.692103045 +data/orcl/ONLINELOG/: group_1.261.692103161 group_2.262.692103165 group_3.263.692103169 +data/orcl/PARAMETERFILE/: spfile.266.692103315 +data/orcl/TEMPFILE/: TEMP.264.692103181 spfileorcl.ora
ASMCMDユーティリティは、対話モードでも非対話モードでも実行できます。
ASMCMDを実行する前に、次の事柄を確認します。
管理する予定のOracle ASMインスタンスがあるホストにログインします。
オペレーティング・システム認証によって、SYSASMまたはSYSDBA権限を持つユーザーとしてログインする必要があります。SYSASM権限は、Oracle ASMインスタンスを管理するために必要な接続です。詳細は、「Oracle ASMインスタンスにアクセスするための認証」を参照してください。
|
関連項目: オペレーティング・システム認証の詳細は、『Oracle Database管理者ガイド』を参照してください。 |
Oracle ASMインスタンスに接続するには、Oracle Gridインフラストラクチャ・ホーム(Oracle ASMホーム)のbinサブディレクトリにあるASMCMDを実行します。
Oracle ASMインスタンスを管理するには、SYSASMとして接続(デフォルトの接続)します。
環境変数ORACLE_HOMEおよびORACLE_SIDがOracle ASMインスタンスを参照していることを確認します。オペレーティング・システムによっては、Oracle ASMインスタンスに正しく接続するために、その他の環境変数を設定する必要があります。
Oracle Gridインフラストラクチャ・ホームのbinサブディレクトリがPATH環境変数に指定されていることを確認します。
|
関連項目: 環境変数の設定の詳細は、『Oracle Database管理者ガイド』を参照してください。 |
単一インスタンス・データベース用のOracle ASM SIDのデフォルト値は、+ASMです。Oracle Real Application Clusters環境では、すべてのノードでOracle ASM SIDのデフォルト値は、+ASMnode#です。
ほとんどのASMCMDコマンドを使用するには、Oracle ASMインスタンスが起動し、Oracle ASMディスク・グループがマウントされていることを確認します。
Oracle ASMインスタンスが実行されていない場合、ASMCMDは実行されますが、Oracle ASMインスタンスを必要としないコマンドのみが実行されます。実行されるのは、startup、shutdown、lsdsk、helpおよびexitコマンドです。その他のASMCMDコマンドを実行しようとすると、エラー・メッセージが表示されます。
Oracle DatabaseホームのbinディレクトリにあるASMCMDを実行すると、データベース・インスタンスにはSYSDBAとして接続できます。
環境変数ORACLE_HOMEおよびORACLE_SIDがデータベース・インスタンスを参照していることを確認します。オペレーティング・システムによっては、データベース・インスタンスに正しく接続するために、その他の環境変数を設定する必要があります。
SYSDBAとして接続するには、--privilegeオプションを入力する必要があります。「接続タイプの指定」を参照してください。
この接続では、実行できる操作が制限されます。詳細は、「Oracle ASMコンポーネントを管理するためのSYSADBA権限」を参照してください。
ディスク・グループを管理する場合、ディスク・グループ内のファイルの所有者であるデータベース・インスタンスのデータベース・ホームからASMCMDを実行することをお薦めします。
ASMCMDユーティリティの対話モードは、ASMCMDコマンドの入力が求められるシェルに似た環境で動作します。対話モードでのASMCMDを起動する構文は、次のとおりです。
asmcmd [-V]asmcmd [-v {errors|warnings|normal|info|debug}] [ --privilege connection_type ] [-p]表12-2に、ASMCMDオプションを示します。
表12-2 対話型のASMCMDオプション
| オプション | 説明 |
|---|---|
|
- |
ASMCMDのバージョンを表示してから終了します。 |
|
|
ユーザーが問題を判断する助けとなり、ログインの要求時にメッセージファイルを書き込む、いくつかのコマンドの詳細を表示します。表示レベルが指定されない場合は、 |
|
|
Oracle ASMインスタンスまたはデータベース・インスタンスへのアクセス時に接続する権限を指定します。 |
|
|
プロンプトで現行ディレクトリが表示されます。 |
ASMCMDは複数のオプションを指定して起動することができます。次に例を示します。
asmcmd -p -v infoこの章のほとんどの例では、-pオプションを指定してASMCMDが起動されています。
--privilegeオプションを指定して、接続タイプ(SYSASMまたはSYSDBAのいずれか)を選択できます。デフォルトはSYSASMで、Oracle ASMインスタンスを管理する場合に使用されます。データベース・インスタンスに接続する場合は、SYSDBAとして接続します。
次に例を示します。
$ asmcmd --privilege sysasm
asmcmdコマンドで-vオプションを指定すると、ユーザーが問題を診断するのに役立ついくつかのコマンドとともに追加情報を表示できます。次に例を示します。
$ asmcmd -v debugasmcmd操作中はログインする必要があるというメッセージが表示される場合、メッセージはalert.logファイルまたはtrace.trcファイルに書き込まれます。
asmcmdが、-v errors、-v warning、または-v normalの表示レベルで開始されたときにalert.logファイルが作成または更新されました。asmcmdが、-v infoまたは-v debugの表示レベルで開始されたときにtrace.trcファイルが作成または更新されました。
デフォルトでは、alert.logは、$ORACLE_HOME/log/diag/asmcmd/user_username/hostname/alert/ディレクトリで作成されたファイルです。デフォルトでは、trace.trcファイルは、$ORACLE_HOME/log/diag/asmcmd/user_username/hostname/trace/ディレクトリで作成されます。
特定の状況では、$ORACLE_BASEと$ORACLE_HOMEは、alert.logファイルとtrace.trcファイルのデフォルト場所を上書きするように設定できます。
asmcmdコマンドで-pオプションを指定すると、ASMCMDプロンプトに現行ディレクトリを表示できます。次に例を示します。
$ asmcmd -pASMCMD [+] > cd dataASMCMD [+data] >非対話モードでは、ASMCMDの起動時にコマンドラインにコマンドおよびコマンド・オプションを含めることにより、単一のASMCMDコマンドを実行します。ASMCMDはコマンドを実行し、必要な場合は出力を生成し、終了します。非対話モードは、特にスクリプトの実行に便利です。
非対話モードでASMCMDを実行するには、コマンド・プロンプトで次のように入力します。この場合、commandは任意の有効なASMCMDコマンドで、optionsはコマンド・オプションのリストです。
asmcmd command options
非対話モードでは、ASMCMDは表12-3に示すコードを戻します。
表12-3 ASMCMDのリターン・コード
| Type | リターン・コード | 説明 |
|---|---|---|
|
一般 |
0 |
コマンドに問題はありません。 |
|
一般 |
1 |
内部エラーです。 |
|
一般 |
255または-1 |
コマンドにより戻された外部ユーザー・エラーです。 |
|
|
0 |
結果にはメンバー・ディスクのみが含まれます。 |
|
|
1 |
結果には候補ディスクのみが含まれます。 |
|
|
2 |
結果にはメンバー・ディスクおよび候補ディスクの両方が含まれます。 |
例12-2に、非対話モードでASMCMDを実行する方法を示します。1番目の例では、lsコマンドを実行してOracle ASMインスタンスのディスク・グループをリストします。2番目の例では、lsodコマンドの出力をmy_lsod_testファイルにリダイレクトします。3番目の例では、ワイルドカード文字のパターンを使用してlsdskを実行し、dataディスク・グループの特定のディスクをリストします。
例12-2 非対話モードでのASMCMDコマンドの実行
$ asmcmd ls -l State Type Rebal Name MOUNTED NORMAL N DATA/ MOUNTED NORMAL N FRA/ $ asmcmd lsod --suppressheader -G data > my_lsod_test $ asmcmd lsdsk -G data '/devices/diska*' Path /devices/diska1 /devices/diska2 /devices/diska3
例12-3では、間違ったディスク・グループ名によりエラーが発生し、リターン・コード(255)が表示されます。
例12-3 非対話モードでのASMCMDの実行時のリターン・コードの表示
$ asmcmd ls -l dat ASMCMD-08001: diskgroup 'dat' does not exist or is not mounted $ echo $? 255
例12-4に、スクリプト内で非対話モードでASMCMDコマンドを実行する例を示します。