asmcmdとは

asmcmdとは10.2以降に追加されたASMの管理用コマンドです。10.1のバージョンにおいてはASMのディスクグループ情報やファイルの一覧等を取得するためにはsqlplus等からASMインスタンスに接続し、 sqlで情報を取得する必要がありましたがasmcmdを使用することでosコマンドライクな記述でASMの処理を行うことができます。


asmcmdのバージョンによる違い

asmcmdは10.2に追加された機能ですが10.2のバージョンではasm上のファイルのコピーやディスクグループの追加や削除といったオペレーションには対応していませんでした。 11.1ではファイルのコピーやディスク情報の表示、11.2においてはディスクグループの追加や削除、asmインスタンスの起動や停止等ほとんどのオペレーションに対応する等、バージョンが上がるにつれ機能が拡張されてきています。

特にcpコマンドはASMからファイルシステム上へファイルをコピーする機能を持っており、cpコマンド以外で同じ作業をするためにはrmanを使う必要が出てくるため重宝します。

asmcmdの使用方法

asmcmdは内部ではASMインスタンスに接続して処理しているためほとんどのオペレーションを実行するにはASMインスタンスが起動している必要があります。 asmcmd実行時に接続するASMインスタンスの設定は環境変数ORACLE_HOME及びORACLE_SIDが参照されるためこれらの環境変数を設定した上で$ORACLE_HOME/bin/asmcmdを実行するとasmcmdが使用できます。

対話モードと非対話モード
以下は対話モードでasmcmdが起動する例です。 -pはプロンプトにカレントディレクトリを表示するオプションです。

[ora111@localhost bin]$ export ORACLE_SID=+ASM
[ora111@localhost bin]$ export ORACLE_HOME=/app/oracle/product/11.1.0/db_1
[ora111@localhost bin]$ asmcmd -p
ASMCMD [+]>
引数にコマンド名を渡すことで非対話モードで起動します。
[ora111@localhost bin]$ asmcmd ls -l +DG1/ORCL111
Type           Redund  Striped  Time             Sys  Name
                                                 Y    CONTROLFILE/
                                                 Y    DATAFILE/
                                                 Y    ONLINELOG/
                                                 Y    PARAMETERFILE/
                                                 Y    TEMPFILE/
                                                 N    spfileORCL111.ora => +DG1/ORCL111/PARAMETERFILE/spfile.265.749180179
[ora111@localhost bin]$

asmcmdのコマンド

10.2~に使用可能なコマンド
・cd(カレントディレクトリの移動)
ASMCMD> cd +DG1/ORCL111
ASMCMD> pwd
+DG1/ORCL111	
・find(ファイルの検索)
find <検索ディレクトリ> <ファイル名>
ASMCMD> find +DG1 USERS*
+DG1/ORCL111/DATAFILE/USERS.264.749179607
以下はすべてのディスクグループの全ファイルをリストします
ASMCMD> find * *
+DG1/ORCL111/
+DG1/ORCL111/CONTROLFILE/
+DG1/ORCL111/CONTROLFILE/Current.256.749179559
+DG1/ORCL111/DATAFILE/
+DG1/ORCL111/DATAFILE/SYSAUX.261.749179585
+DG1/ORCL111/DATAFILE/SYSTEM.260.749179573
+DG1/ORCL111/DATAFILE/UNDOTBS1.262.749179591
+DG1/ORCL111/DATAFILE/USERS.264.749179607
+DG1/ORCL111/ONLINELOG/
+DG1/ORCL111/ONLINELOG/group_1.257.749179559
+DG1/ORCL111/ONLINELOG/group_2.258.749179563
+DG1/ORCL111/ONLINELOG/group_3.259.749179569
+DG1/ORCL111/PARAMETERFILE/
+DG1/ORCL111/PARAMETERFILE/spfile.265.749180179
+DG1/ORCL111/TEMPFILE/
+DG1/ORCL111/TEMPFILE/TEMP.263.749179599
+DG1/ORCL111/spfileORCL111.ora
・du(ファイルの使用量の表示)
ASMCMD> du
Used_MB      Mirror_used_MB
   1054                2114
・ls(ファイルリストの表示)
ASMCMD> ls -l
Type           Redund  Striped  Time             Sys  Name
                                                 Y    CONTROLFILE/
                                                 Y    DATAFILE/
                                                 Y    ONLINELOG/
                                                 Y    PARAMETERFILE/
                                                 Y    TEMPFILE/
                                                 N    spfileORCL111.ora => +DG1/ORCL111/PARAMETERFILE/spfile.265.749180179
・rm(ファイルの削除)
ASMCMD> rm spfile.265.749180179.bk
・lsct(ディスクグループをマウントしているクライアント情報の表示)
ASMCMD> lsct
DB_Name  Status     Software_Version  Compatible_version  Instance_Name  Disk_Group
ORCL111  CONNECTED        11.1.0.6.0          11.1.0.0.0  ORCL111        DG1
・lsdg(ディスクグループ情報の表示)
ASMCMD> lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Name
MOUNTED  NORMAL  N         512   4096  1048576      3997     1801                0             900              0  DG1/
11.1~に使用可能なコマンド
・cpコマンド(ファイルのコピー)
cpコマンドはASM⇔ファイルシステム間、asm⇔asm間のファイルコピーが可能です。
ASMCMD [+DG1/ORCL111/CONTROLFILE] > cp +DG1/ORCL111/CONTROLFILE/Current.256.749179559 /var/tmp/Current.256.749179559
source +DG1/ORCL111/CONTROLFILE/Current.256.749179559
target /var/tmp/Current.256.749179559
copying file(s)...
file, /var/tmp/Current.256.749179559, copy committed.
・lsdsk(ディスクグループを構成するディスクの情報)
例1 ディスクパスのみ
ASMCMD> lsdsk
Path
/dev/raw/raw1
/dev/raw/raw2
例2 ディスク使用量表示
ASMCMD> lsdsk -k
Total_MB  Free_MB  OS_MB  Name  Failgroup  Library  Label  UDID  Product  Redund   Path
    2047      949   2047  RAW1  FAIL1      System                         UNKNOWN  /dev/raw/raw1
    1950      852   2047  RAW2  FAIL2      System                         UNKNOWN  /dev/raw/raw2
例3 統計表示
ASMCMD> lsdsk -s
Reads  Write  Read_Errs  Write_Errs  Read_time   Write_Time  Bytes_Read  Bytes_Written  Path
12031  89313          0           0   91.21589  1291.853295   223900160                 /dev/raw/raw1
 9280  89313          0           0  82.889608  1289.858427   180162560                 /dev/raw/raw2
例4 時刻表示
ASMCMD> lsdsk -t
Create_Date  Mount_Date  Repair_Timer  Path
11-04-23     11-04-23    0             /dev/raw/raw1
11-04-23     11-04-23    0             /dev/raw/raw2
例5 グループ番号、ディスク番号等を表示
ASMCMD> lsdsk -p
Group_Num  Disk_Num      Incarn  Mount_Stat  Header_Stat  Mode_Stat  State   Path
        1         0  3916084479  CACHED      MEMBER       ONLINE     NORMAL  /dev/raw/raw1
        1         1  3916084478  CACHED      MEMBER       ONLINE     NORMAL  /dev/raw/raw2
・md_backup(ディスクグループのメタデータのバックアップ)
ASMCMD> md_backup
Disk group to be backed up: DG1
・md_restore(ディスクグループのメタデータバックアップのリストア)

11.2~に使用可能なコマンド
・dsget/dsset(ディスク検出文字列の表示、変更)

・mount/umount(ディスクグループのマウント、アンマウント)

・startup/shutdown(ASMインスタンスの起動、停止)

・lsop(ASMオペレーション(リバランス等)の表示)

マニュアル

ユーティリティ10g リリース2(10.2)
ストレージ管理者ガイド11gリリース1(11.1)
Oracle Automatic Storage Management管理者ガイド11gリリース2(11.2)
★ORACLE案件承ります