ASMCMDについて
ASMCMDは、Oracle ASMインスタンス、ディスク・グループ、ディスク・グループのファイル・アクセス制御、ディスク・グループ内のファイルおよびディレクトリ、ディスク・グループのテンプレートおよびボリュームの管理に使用できるコマンドライン・ユーティリティです。
ASMCMDユーティリティは、対話モードでも非対話モードでも実行できます。
この項では、次の項目について説明します。
ASMCMDコマンドのタイプ
表10-1に、ASMCMDコマンドのタイプを示します。
表10-1 ASMCMDコマンドのタイプ
カテゴリ | コマンド |
---|---|
Oracle ASMインスタンスの管理 |
コマンドのリストは、「ASMCMDインスタンス管理コマンド」を参照してください。 |
Oracle ASMメンバー・クラスタ |
コマンドのリストは、「ASMCMDメンバー・クラスタ管理コマンド」を参照してください。 |
Oracle ASMフィルタ・ドライバ管理 |
コマンドのリストについては、「ASMCMD Oracle ASMフィルタ・ドライバ管理コマンド」を参照してください |
Oracle ASMファイルの管理 |
コマンドのリストは、「ASMCMDファイル管理コマンド」を参照してください |
Oracle ASMディスク・グループの管理 |
コマンドのリストは、「ASMCMDディスク・グループ管理コマンド」を参照してください |
Oracle ASMファイル・グループの管理 |
コマンドのリストは、「ASMCMDファイル・グループ管理コマンド」を参照してください。 |
Oracle ASMテンプレートの管理 |
コマンドのリストは、「ASMCMDテンプレート管理コマンド」を参照してください |
Oracle ASMファイル・アクセス制御 |
コマンドのリストは、「ASMCMDファイル・アクセス制御コマンド」を参照してください |
Oracle ADVMボリューム |
コマンドのリストは、「ASMCMDによるOracle ADVMの管理」を参照してください。 |
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ではスラッシュ(/)のみがサポートされます。ファイル名の大文字と小文字は区別されませんが、保持されます。小文字でパス名を入力すると、ASMCMDは小文字で保持します。
Oracle ASMのファイル名の詳細は、「完全修飾ファイル名形式」を参照してください。
ディレクトリ
他のファイルシステムと同様、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
コマンドを使用して移動できます。
次の例では、ディスク・グループdata
のorcl
の下にディレクトリ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つのワイルドカード文字の動作は同じです。ワイルドカードは、cd
、du
、find
、ls
、lsattr
、lsdg
、lsdsk
、lsgrp
、lsusr
、rm
など、様々なASMCMDコマンドで使用できます。
cd
でワイルドカード文字を使用する場合、ワイルドカードのパターンと一致するのが1つのディレクトリのみの場合、cd
はそのディレクトリを目的のディレクトリに変更します。ワイルドカードのパターンが複数のディレクトリと一致する場合、ASMCMDはディレクトリを変更せず、エラーが戻されます。
非対話モードでASMCMDコマンドを実行する場合、ほとんどのオペレーティング・システムで、ワイルドカード文字を引用符で囲む必要があります。詳細は、「非対話モードでのASMCMDの実行」を参照してください。
例10-1に、ワイルドカードの使用例を示します。
例10-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ユーティリティは、対話モードでも非対話モードでも実行できます。ASMCMDを実行する前に、次の事柄を確認します。
-
管理する予定のOracle ASMインスタンスがあるホストにログインします。
オペレーティング・システム認証によって、SYSASMまたはSYSDBA権限を持つユーザーとしてログインする必要があります。SYSASM権限は、Oracle ASMインスタンスを管理するために必要な接続です。
-
Oracle ASMインスタンスに接続するには、Oracle Gridインフラストラクチャ・ホーム(Oracle ASMホーム)の
bin
サブディレクトリにあるASMCMDを実行します。Oracle ASMインスタンスを管理するには、SYSASMとして接続(デフォルトの接続)します。
環境変数
ORACLE_HOME
およびORACLE_SID
がOracle ASMインスタンスを参照していることを確認します。オペレーティング・システムによっては、Oracle ASMインスタンスに正しく接続するために、その他の環境変数を設定する必要があります。Oracle Gridインフラストラクチャ・ホームの
bin
サブディレクトリがPATH
環境変数に指定されていることを確認します。単一インスタンス・データベース用のOracle ASM SIDのデフォルト値は、
+ASM
です。Oracle Real Application Clusters環境では、すべてのノードでOracle ASM SIDのデフォルト値は、+ASM
node#
です。 -
ほとんどの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
オプションを入力する必要があります。この接続では、実行できる操作が制限されます。
ディスク・グループを管理する場合、ディスク・グループ内のファイルの所有者であるデータベース・インスタンスのデータベース・ホームからASMCMDを実行することをお薦めします。
関連項目:
-
Oracle ASMインスタンスにアクセスする際の認証の詳細は、「Oracle ASMインスタンスにアクセスするための認証」
-
接続オプションの指定の詳細は、「接続タイプの指定」
-
権限と接続の詳細は、「Oracle ASMコンポーネントを管理するためのSYSDBA権限」
-
環境変数の設定の詳細は、『Oracle Database管理者ガイド』
-
オペレーティング・システム認証の詳細は、『Oracle Database管理者ガイド』
対話モードでのASMCMDの実行
ASMCMDを起動するための構文
対話モードでのASMCMDを起動する構文は、次のとおりです。
asmcmd [-V]
asmcmd [--nocp] [-v {errors|warnings|normal|info|debug}]
[--privilege connection_type ] [-p]
[--inst instance_name] [--discover]
表10-2に、ASMCMDオプションを示します。
表10-2 対話型のASMCMDオプション
オプション | 説明 |
---|---|
- |
ASMCMDのバージョンを表示してから終了します。 |
|
接続プーリングを無効にします。接続プーリングの詳細は、『Oracle Database管理者ガイド』を参照してください。 |
|
ユーザーが問題を判断する助けとなり、ログインの要求時にメッセージファイルを書き込む、いくつかのコマンドの詳細を表示します。表示レベルが指定されない場合は、 |
|
Oracle ASMインスタンスまたはデータベース・インスタンスへのアクセス時に接続する権限を指定します。 |
|
プロンプトで現行ディレクトリが表示されます。 |
|
特定のOracle ASMインスタンスに接続することを指定します。 |
|
|
ORACLE_HOME
環境変数とORACLE_SID
環境変数は、ASMCMDが接続するインスタンスを判別します。ASMCMDは、ユーザーがOSASM
グループのメンバーであることを要求するSQLPLUS
/
AS
SYSASM
と同じ方法でBequeath接続を確立します。
Oracle Flex ASMが有効になっている場合、ASMCMDは、クラスタ内で実行されているOracle ASMインスタンスのいずれかに接続します。Oracle ASMインスタンスへの接続は、ORACLE_HOME
環境変数とORACLE_SID
環境変数に依存しません。ASMCMDアラート・ログには、ASMCMDが接続しているインスタンスが表示されます。特定のOracle ASMインスタンスに接続する場合は、--inst
オプションを使用します。
ASMCMDは複数のオプションを指定して起動することができます。次に例を示します。
asmcmd -p -v info
この章のほとんどの例では、-p
オプションを指定してASMCMDが起動されています。
verboseモードの指定
asmcmd
コマンドで-v
オプションを指定すると、ユーザーが問題を診断するのに役立ついくつかのコマンドとともに追加情報を表示できます。次に例を示します。
$ asmcmd -v debug
asmcmd
操作中はログインする必要があるというメッセージが表示される場合、メッセージはalert.log
ファイルまたはtrace.trc
ファイルに書き込まれます。
alert.log
ファイルは、asmcmd
が-v
errors
、-v
warnings
、または-v
normal
の表示レベルで開始されたときに作成または更新されます。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の起動時にコマンドラインにコマンドおよびコマンド・オプションを含めることにより、単一のASMCMDコマンドを実行します。ASMCMDはコマンドを実行し、必要な場合は出力を生成し、終了します。非対話モードは、特にスクリプトの実行に便利です。
ほとんどのオペレーティング・システムでは、非対話モードでASMCMDコマンドを実行する場合、ワイルドカード文字を引用符で囲む必要があります。
非対話モードでASMCMDを実行するには、コマンド・プロンプトで次のように入力します。この場合、command
は任意の有効なASMCMDコマンドで、options
はコマンド・オプションのリストです。
asmcmd
command
options
非対話モードでは、ASMCMDは表10-3に示すコードを戻します。
表10-3 ASMCMDのリターン・コード
タイプ | リターン・コード | 説明 |
---|---|---|
一般 |
0 |
コマンドに問題はありません。 |
一般 |
1 |
内部エラーです。 |
一般 |
255または-1 |
コマンドにより戻された外部ユーザー・エラーです。 |
|
0 |
結果にはメンバー・ディスクのみが含まれます。 |
|
1 |
結果には候補ディスクのみが含まれます。 |
|
2 |
結果にはメンバー・ディスクおよび候補ディスクの両方が含まれます。 |
例10-2に、非対話モードでASMCMDを実行する方法を示します。1番目のコマンドでは、ls
コマンドを実行してOracle ASMインスタンスのディスク・グループをリストします。2番目のコマンドでは、lsod
コマンドの出力をmy_lsod_test
ファイルにリダイレクトします。3番目のコマンドでは、ワイルドカード文字のパターンを使用してlsdsk
を実行し、data
ディスク・グループの特定のディスクをリストします。ほとんどのオペレーティング・システムでは、非対話モードでASMCMDコマンドを実行する場合、ワイルドカード文字を引用符で囲む必要があることに注意してください。
例10-3では、間違ったディスク・グループ名によりエラーが発生し、リターン・コード(255)が表示されます。
例10-4に、スクリプト内で非対話モードでASMCMDコマンドを実行する例を示します。
例10-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
例10-3 非対話モードでのASMCMDの実行時のリターン・コードの表示
$ asmcmd ls -l dat ASMCMD-08001: diskgroup 'dat' does not exist or is not mounted $ echo $? 255
例10-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
コマンドの使用例を示します。
例10-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.