読者です 読者をやめる 読者になる 読者になる

■ASMCMDで遊んでみようぜ!!の巻

※ここで記載した内容は独断と偏見に基づく個人の見解であり、実行しているコマンドや手順も必ずしも正しい手順とは限りません。その為、あくまで参考程度にご覧頂ければと思います。

 

■ASMCMDで遊んでみようぜ!!の巻

極まれにASMCMDを使う場面がありますよね。タマに使うものなので使い方をど忘れしてしまったなんて事も往々にしてあるかと思います。今日は備忘録的にASMCMDの基本的な使い方に触れてみようと思います。

■検証環境
DB:Oracle Database 12.1.0.1
OS:Oracle Enterprise Linux 5.8(64-bit)
Oracle Restart環境

(1)ASMCMDを起動する前にはgridユーザにて最低限、ORACLE_SIDとORACLE_HOME、PATHの3つの環境変数の指定を行う必要があります。

$export ORACLE_SID=<ASMインスタンスのSIDを指定>
$export ORACLE_HOME=<$ORACLE_HOMEを指定>
$export PATH=<$ORACLE_HOME直下/binディレクトリを指定>

以下、参考までに実行例です。
[grid@hoge ~]$ export ORACLE_SID=+ASM
[grid@hoge ~]$ export ORACLE_HOME=/opt/app/grid/product/12.1.0/grid
[grid@hoge ~]$ export PATH=$ORACLE_HOME/bin:$PATH

(2)ASMCMDは以下コマンドで起動します。
[grid@hoge ~]$ asmcmd
ASMCMD>

(3)lsdgコマンドにてASMインスタンスにマウントされたディスクグループの一覧が確認できます。

以下ご参考までに実行例です。
ASMCMD>lsdg
State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files
MOUNTED EXTERN N 512 4096 1048576 12284 9686 0 9686 0 N DATA/

以下に主な列の概要を記載しました。

State列 :ディスクグループの状態を表します
Type 列 :ディスクグループの冗長性を表します(EXTERNは冗長無し、NORMALは2重、HIGHは3重)
Rebal列 :リバランス操作が進行中かどうか
Sector列 :セクタサイズ
Block列 :OraclASMメタデータのブロックサイズ(バイト単位)
AU列 :割当てユニットのサイズ(バイト単位)
Total_MB :該当ディスクグループの総容量(MB単位)
Free_MB :ディスクグループの未使用容量(MB単位)
Offline_disks列:ディスクグループ内のオフラインなディスクの本数
Name列 :ディスクグループ名
Voting_files列 :ディスク内に投票ファイルが含まれるか否か

(4)次はfindコマンドでASMディスク上の特定のファイルを検索します。

以下ご参考までに実行例です。個々のコマンドの詳細な説明は割愛させていただきます。

ASMディスク上の制御ファイルを確認する例
ASMCMD> find --type CONTROLFILE +data/orcl *
+data/orcl/CONTROLFILE/Current.261.873197667
+data/orcl/CONTROLFILE/Current.262.873197667

ASMディスク上のデータファイルを確認する例
ASMCMD> find --type DATAFILE +data/orcl *
+data/orcl/DATAFILE/EXAMPLE.270.873197687
+data/orcl/DATAFILE/SYSAUX.257.873197453
+data/orcl/DATAFILE/SYSTEM.258.873197537
+data/orcl/DATAFILE/UNDOTBS1.260.873197635
+data/orcl/DATAFILE/USERS.259.873197633

ASMディスク上のオンラインREDOログを確認する例
ASMCMD> find --type ONLINELOG +data/orcl *
+data/orcl/ONLINELOG/group_1.263.873197669
+data/orcl/ONLINELOG/group_1.264.873197669
+data/orcl/ONLINELOG/group_2.265.873197669
+data/orcl/ONLINELOG/group_2.266.873197671
+data/orcl/ONLINELOG/group_3.267.873197671
+data/orcl/ONLINELOG/group_3.268.873197671

ASMディスク上の初期化パラメータを確認する例
ASMCMD> find --type parameterfile +data/asm *
+data/asm/PARAMETERFILE/bkpspfile.272.873245209

ASMディスク上のパスワードファイルを確認する例
ASMCMD> find --type password +data/asm *
+data/asm/PASSWORD/pwdasm.256.873196493

(5)iostatコマンドにてディスクI/Oの統計も確認可能です。詳細な説明は割愛します。

以下ご参考までに実行例です。
ASMCMD> iostat --region
Group_Name Dsk_Name Reads Writes Cold_Reads Cold_Writes Hot_Reads Hot_Writes
DATA DATA_0000 360195072 133446656 359871488 130972672 0 0

(6)lsofコマンドにてオープンされているファイルの一覧が確認出来ます。

以下ご参考までに実行例です。
ASMCMD> lsof
DB_Name Instance_Name Path
orcl ORCL +DATA/ORCL/CONTROLFILE/current.261.873197667
orcl ORCL +DATA/ORCL/CONTROLFILE/current.262.873197667
orcl ORCL +DATA/ORCL/DATAFILE/example.270.873197687
orcl ORCL +DATA/ORCL/DATAFILE/sysaux.257.873197453
orcl ORCL +DATA/ORCL/DATAFILE/system.258.873197537
orcl ORCL +DATA/ORCL/DATAFILE/undotbs1.260.873197635
orcl ORCL +DATA/ORCL/DATAFILE/users.259.873197633
orcl ORCL +DATA/ORCL/ONLINELOG/group_1.263.873197669
orcl ORCL +DATA/ORCL/ONLINELOG/group_1.264.873197669
orcl ORCL +DATA/ORCL/ONLINELOG/group_2.265.873197669
orcl ORCL +DATA/ORCL/ONLINELOG/group_2.266.873197671
orcl ORCL +DATA/ORCL/ONLINELOG/group_3.267.873197671
orcl ORCL +DATA/ORCL/ONLINELOG/group_3.268.873197671
orcl ORCL +DATA/ORCL/TEMPFILE/temp.269.873197675

(7)lsodコマンドにてオープンデバイスの一覧が確認可能です。

以下ご参考までに実行例です。
ASMCMD> lsod
Instance Process OSPID Path
1 oracle@hoge (DBW0) 8975 /dev/sdb1
1 oracle@hoge (GMON) 8987 /dev/sdb1
1 oracle@hoge (LGWR) 8977 /dev/sdb1
1 oracle@hoge (RBAL) 8985 /dev/sdb1
1 oracle@hoge (RBAL) 8985 /dev/sdb1
1 oracle@hoge (TNS V1-V3) 9027 /dev/sdb1
1 oracle@hoge (TNS V1-V3) 9333 /dev/sdb1
1 oracle@hoge (X000) 9628 /dev/sdb1

(8) showpatches コマンドにてパッチ適用状況について確認

以下ご参考までに実行例です。
ASMCMD> showpatches
---------------
List of Patches
===============

(9)showversionコマンドでASMのバージョンを確認。基本的にはGridInfraStructureのバージョンに順じます。

以下ご参考までに実行例です。
ASMCMD> showversion
ASM version : 12.1.0.1.0

(10)rabelコマンドでASMCMDから実行可能なコマンド一覧が確認出来ます。

以下ご参考までに実行例です。
ASMCMD> rabel
commands:
--------

md_backup, md_restore


lsattr, setattr

cd, cp, du, find, help, ls, lsct, lsdg, lsof, mkalias
mkdir, pwd, rm, rmalias, showclustermode, showclusterstate
showpatches, showversion

mapau, mapextent

chdg, chkdg, dropdg, iostat, lsdsk, lsod, mkdg, mount
offline, online, rebal, remap, umount

pwcopy, pwcreate, pwdelete, pwget, pwmove, pwset

dsget, dsset, lsop, shutdown, spbackup, spcopy, spget
spmove, spset, startup

chtmpl, lstmpl, mktmpl, rmtmpl

chgrp, chmod, chown, groups, grpmod, lsgrp, lspwusr, lsusr
mkgrp, mkusr, orapwusr, passwd, rmgrp, rmusr, rpusr

volcreate, voldelete, voldisable, volenable, volinfo
volresize, volset, volstat

(11) passwdコマンドでASMインスタンス側(DBユーザでは無い)のユーザパスワードの変更が可能です。


以下ご参考までに実行例です。
ASMCMD> passwd sys
Enter old password (optional): ******
Enter new password: ******

以上です。