ヘッダーをスキップ
Oracle® Automatic Storage Management管理者ガイド
11gリリース2 (11.2)
B61035-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

ASMCMDについて

ASMCMDは、Oracle ASMインスタンス、ディスク・グループ、ディスク・グループのファイル・アクセス制御、ディスク・グループ内のファイルおよびディレクトリ、ディスク・グループのテンプレートおよびボリュームの管理に使用できるコマンドライン・ユーティリティです。

ASMCMDユーティリティは、対話モードでも非対話モードでも実行できます。

この項の内容は次のとおりです。

Oracle ASMファイル、ファイル名、ディレクトリおよびエイリアスについて

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> ls
data/
fra/

次に、Oracle ASMディレクトリ・ツリー(前述の完全修飾されたファイル名を参照)を移動する例を示します。


ASMCMD> cd +data/orcl/CONTROLFILE
ASMCMD> ls
Current.256.541956473
Current.257.541956475

システム生成のディレクトリのサブディレクトリとして、独自のディレクトリを作成できます。これを行うには、ASMCMD mkdirコマンドを使用します。ユーザー作成のディレクトリにもサブディレクトリを作成でき、システム生成のディレクトリおよびユーザー作成のディレクトリの両方の階層構造をcdコマンドを使用して移動できます。

次の例では、ディスク・グループdataorclの下にディレクトリmydirを作成します。

ASMCMD> mkdir +data/orcl/mydir


注意:

ディレクトリorclは、システム生成のディレクトリです。dataの内容は、ディスク・グループdataの内容を表します。

-pフラグを付けてASMCMDを起動すると、ASMCMDでは、プロンプトの一部に常に現行ディレクトリが表示されます。詳細は、「ASMCMDプロンプトへの現行ディレクトリの表示」を参照してください。


ASMCMD [+] > cd data/orcl
ASMCMD [+data/orcl] >

ASMCMDでは、ディレクトリの大文字と小文字は入力したとおりに保持されます。

エイリアス

エイリアスは、システム生成のファイル名への参照またはポインタです。ただし、エイリアスはユーザーにわかりやすい名前です。UNIXまたはLinuxコンピュータでのシンボリック・リンクと同様です。Oracle ASMファイル名の管理を簡略化するためにエイリアスを作成できます。エイリアスは、mkalias ASMCMDコマンドまたはSQL ALTER DISKGROUPコマンドを使用して作成できます。

エイリアスの完全パスの一部には、少なくともディスク・グループ名が含まれます。エイリアスは、ディスク・グループ・レベル、システム生成またはユーザー作成の任意のサブディレクトリで作成できます。次にエイリアスの例を示します。


+data/ctl1.f
+data/orcl/ctl1.f
+data/mydir/ctl1.f

ASMCMDの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 +data
ASMCMD [+data] > cd orcl/DATAFILE
ASMCMD [+data/orcl/DATAFILE] > ls
EXAMPLE.269.555342243
SYSAUX.257.555341961
SYSTEM.256.555341961
UNDOTBS1.258.555341963
UNDOTBS1.272.557429239
USERS.259.555341963
ASMCMD [+data/orcl/DATAFILE] > rm undotbs1.272.557429239

また、ディレクトリへのパスを相対パスとして指定できます。cdコマンドに、現行ディレクトリへの相対パスを持つディレクトリ引数を指定して、現行ディレクトリ・ツリー・ブランチの階層を上下に移動できます。

また、ディレクトリ名のかわりに擬似ディレクトリ「.」および「..」を使用できます。「.」擬似ディレクトリは、現行ディレクトリです。「..」擬似ディレクトリは、現行ディレクトリの親ディレクトリです。

次に、相対ディレクトリ・パスおよび擬似ディレクトリの使用例を示します。


ASMCMD [+data/orcl] > cd DATAFILE
ASMCMD [+data/orcl/DATAFILE] >cd ..
ASMCMD [+data/orcl] >

ワイルドカード文字

ワイルドカード文字の*および%は、絶対パスまたは相対パス内の0文字以上に一致します。絶対パスまたは相対パスは、完全なディレクトリまたはファイル名の入力を保存します。これら2つのワイルドカード文字の動作は同じです。ワイルドカードは、様々なASMCMDコマンドで使用できます。cddufindlslsattrlsdglsdsklsgrplsusrおよび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ユーティリティは、対話モードでも非対話モードでも実行できます。

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インスタンスを必要としないコマンドのみが実行されます。実行されるのは、startupshutdownlsdskhelpおよびexitコマンドです。その他のASMCMDコマンドを実行しようとすると、エラー・メッセージが表示されます。

  • Oracle DatabaseホームのbinディレクトリにあるASMCMDを実行すると、データベース・インスタンスにはSYSDBAとして接続できます。

    環境変数ORACLE_HOMEおよびORACLE_SIDがデータベース・インスタンスを参照していることを確認します。オペレーティング・システムによっては、データベース・インスタンスに正しく接続するために、その他の環境変数を設定する必要があります。

    SYSDBAとして接続するには、--privilegeオプションを入力する必要があります。「接続タイプの指定」を参照してください。

    この接続では、実行できる操作が制限されます。詳細は、「Oracle ASMコンポーネントを管理するためのSYSADBA権限」を参照してください。

    ディスク・グループを管理する場合、ディスク・グループ内のファイルの所有者であるデータベース・インスタンスのデータベース・ホームからASMCMDを実行することをお薦めします。

対話モードでのASMCMDの実行

ASMCMDユーティリティの対話モードは、ASMCMDコマンドの入力が求められるシェルに似た環境で動作します。対話モードでのASMCMDを起動する構文は、次のとおりです。


asmcmd [-V]
asmcmd [-v {errors|warnings|normal|info|debug}]
       [ --privilege connection_type ] [-p]

表12-2に、ASMCMDオプションを示します。

表12-2 対話型のASMCMDオプション

オプション 説明

-V

ASMCMDのバージョンを表示してから終了します。

-v display_level

ユーザーが問題を判断する助けとなり、ログインの要求時にメッセージファイルを書き込む、いくつかのコマンドの詳細を表示します。表示レベルが指定されない場合は、normalがデフォルトです。

--privilege connection_type

Oracle ASMインスタンスまたはデータベース・インスタンスへのアクセス時に接続する権限を指定します。SYSASMまたはSYSDBAを指定できます。デフォルトはSYSASMで、Oracle ASMインスタンスを管理する場合に使用されます。

-p

プロンプトで現行ディレクトリが表示されます。


ASMCMDは複数のオプションを指定して起動することができます。次に例を示します。


asmcmd -p -v info

この章のほとんどの例では、-pオプションを指定してASMCMDが起動されています。

オプションなしでのASMCMDの実行

オプションを指定せずに対話モードでASMCMDを実行するには、次のようにします。

  1. オペレーティング・システムのコマンド・プロンプトで、次のように入力します。

    asmcmd

    次のようにASMCMDコマンド・プロンプトが表示されます。

    ASMCMD>

  2. ASMCMDコマンドを入力し、[Enter]を押します。コマンドが実行され、出力がある場合は表示され、次のコマンドの入力が求められます。

  3. タスクが完了するまでASMCMDコマンドの入力を続行します。

  4. exitまたはquitコマンドを入力してASMCMDを終了します。

接続タイプの指定

--privilegeオプションを指定して、接続タイプ(SYSASMまたはSYSDBAのいずれか)を選択できます。デフォルトはSYSASMで、Oracle ASMインスタンスを管理する場合に使用されます。データベース・インスタンスに接続する場合は、SYSDBAとして接続します。

次に例を示します。

$ asmcmd --privilege sysasm

verboseモードの指定

asmcmdコマンドで-vオプションを指定すると、ユーザーが問題を診断するのに役立ついくつかのコマンドとともに追加情報を表示できます。次に例を示します。


$ asmcmd -v debug

asmcmd操作中はログインする必要があるというメッセージが表示される場合、メッセージは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プロンプトへの現行ディレクトリの表示

asmcmdコマンドで-pオプションを指定すると、ASMCMDプロンプトに現行ディレクトリを表示できます。次に例を示します。


$ asmcmd -p
ASMCMD [+] > cd data
ASMCMD [+data] >

ASMCMDのバージョン番号の表示

asmcmdの起動時に-Vオプションを指定すると、asmcmdバージョン番号を表示できます。バージョン番号が表示されると、asmcmdはすぐに終了します。

次に例を示します。


$ asmcmd -V
asmcmd version 11.2.0.3.0
$

非対話モードでのASMCMDの実行

非対話モードでは、ASMCMDの起動時にコマンドラインにコマンドおよびコマンド・オプションを含めることにより、単一のASMCMDコマンドを実行します。ASMCMDはコマンドを実行し、必要な場合は出力を生成し、終了します。非対話モードは、特にスクリプトの実行に便利です。

非対話モードでASMCMDを実行するには、コマンド・プロンプトで次のように入力します。この場合、commandは任意の有効なASMCMDコマンドで、optionsはコマンド・オプションのリストです。

asmcmd command options

非対話モードでは、ASMCMDは表12-3に示すコードを戻します。

表12-3 ASMCMDのリターン・コード

Type リターン・コード 説明

一般

0

コマンドに問題はありません。

一般

1

内部エラーです。

一般

255または-1

コマンドにより戻された外部ユーザー・エラーです。

lsdsk

0

結果にはメンバー・ディスクのみが含まれます。

lsdsk

1

結果には候補ディスクのみが含まれます。

lsdsk

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コマンドを実行する例を示します。

例12-4 スクリプト内でのASMCMDコマンドの実行

#!/bin/sh
for ((i = 1; i <=3; i++))
 do
   asmcmd lsdsk -G data '/devices/diska'$i
done

$ ./asmcmd_test_script
Path
/devices/diska1
Path
/devices/diska2
Path
/devices/diska3

ヘルプの利用

ASMCMDに関する一般情報および使用可能なASMCMDコマンドのリストを表示するには、ASMCMDプロンプトまたは非対話モードでのコマンドとして、helpと入力します。

help commandと入力すると、オプションを指定したコマンドの実行方法に関する使用情報など、特定のコマンドのヘルプ・テキストを表示できます。

次に、helpコマンドの使用例を示します。

例12-5 ASMCMDヘルプ・テキストの表示

ASMCMD [+] > help startup
        startup [--nomount] [--restrict] [--pfile <pfile.ora>]
 
        Start the ASM instance.
 
        [--nomount]           specifies the nomount option.
        [--restrict]          start the instance in restricted mode.
        [--pfile <pfile.ora>] specifies the location of the pfile.