ASM を味わう ~ ASM の情報を取得せよ ~ その3
<ASM を味わう ~ ASM の情報を取得せよ ~ その3>
ペンネーム:ダーリン
引き続き Oracle 10g の新機能である ASM の検証を行います。
Oracle 10g では ASM 関連の情報が得られる新しい動的パフォーマンスビュー
がいくつか増えています。でも、検索してもなにも表示されないビューがあり
ました。
SQL> select * from v$asm_alias; no rows selected SQL> select * from v$asm_file; no rows selected
ちなみに ASM と名の付く動的パフォーマンスビューは 7 個あります。
( GV$ 表など実質同じビューに関しては省いています。)
ビュー名 DB インスタンス ASM インスタンス ----------------- ---------------- ---------------- V$ASM_ALIAS × ○ V$ASM_CLIENT ○ ○ V$ASM_DISK ○ ○ V$ASM_DISKGROUP ○ ○ V$ASM_FILE × ○ V$ASM_OPERATION × ○ V$ASM_TEMPLATE ○ ○ (○:検索可 ×:検索不可)
実はこれらのビューは、データベースインスタンスのほか、ASM インスタンス
でも検索することが出来ます。注意しなくてはいけないのが、同じ名前のビュ
ーですが、表示している内容は異なる点です。また、上記のようにデータベー
スインスタンスでは、データが表示されないビューもあります。
これらのビューからはおおむね次のような情報が取得できます。
ビュー名 説明 インスタンス ---------------- ---------------------------------------- ------------ V$ASM_ALIAS ASM マウントされた DISK グループの名称 ASM V$ASM_CLIENT 使用している ASM インスタンスの情報 DB 使用している DB インスタンスの情報 ASM V$ASM_DISK DB が使用している DISK の情報 DB ASM がマウントしている DISK の情報 ASM V$ASM_DISKGROUP DB が使用している DISK Group の情報 DB ASM がマウントしている DISK Group の情報 ASM V$ASM_FILE ASM がマウントしている DISK Group に存在 ASM するファイルの情報 V$ASM_OPERATION ASM インスタンスで実行されている処理情報 ASM V$ASM_TEMPLATE 通信対象 ASM が管理する DISK Group のテ DB ンプレート情報 自身が管理する DISK Group のテンプレート ASM 情報
さて今回は、これらを使って ASM で管理されているファイルの情報を取得し
ましょう。
もっともそれらしいのは、V$ASM_FILE でしょうか。でもこのビューを使って
もデータベースインスタンスではなにも情報が取得できません。
では、ASM インスタンスへログインして情報を見てみましょう。
ちなみに V$ASM_FILE で確かに ASM で管理しているファイルの情報がわかる
のですが実はファイル名が取得できません。 V$ASM_ALIAS とジョインするこ
とで、ファイル名と共に情報を取得してみます。
すると、こんな具合になります。
SQL> select a.name FILE_NAME 2 ,b.blocks USED_BLOCKS 3 ,trunc(b.bytes/1024/1024) USED_MBytes 4 ,trunc(b.space/1024/1024) ALLOCATE_MBytes 5 ,type TYPE 6 from v$asm_alias a,v$asm_file b 7 where a.group_number = b.group_number 8 and a.file_number = b.file_number 9 and a.file_incarnation = b.incarnation; FILE_NAME USED_BLOCKS USED_MBYTES ALLOCATE_MBYTES TYPE ------------------ ----------- ----------- --------------- ------------- SYSTEM.256.1 56321 440 885 DATAFILE SYSAUX.257.1 29441 230 465 DATAFILE UNDOTBS1.258.1 3201 25 52 DATAFILE USERS.259.1 641 5 12 DATAFILE Current.260.3 175 2 16 CONTROLFILE Current.261.3 175 2 16 CONTROLFILE group_1.262.1 20481 10 32 ONLINELOG group_1.263.1 20481 10 32 ONLINELOG group_2.264.1 20481 10 32 ONLINELOG group_2.265.1 20481 10 32 ONLINELOG group_3.266.1 20481 10 32 ONLINELOG group_3.267.1 20481 10 32 ONLINELOG TEMP.268.1 2561 20 42 TEMPFILE spfile.269.1 5 0 2 PARAMETERFILE spfileora101.ora 5 0 2 PARAMETERFILE TEST.270.1 12801 100 202 DATAFILE TEST001.275.3 2561 20 42 DATAFILE 17 rows selected.
ファイル名とそのサイズ、さらに、ファイルの種類がわかります。ASM では、
データファイルのほか、制御ファイルや、REDO ログファイル、パラメータ
ファイルも管理することが出来るようです。もちろんこれ以外にも管理でき
るファイルのタイプがあるので、マニュアルを確認してみてください。
上記の結果から、どうやら先週削除した “TEST002” 表領域のデータファイル
“test002.274.3″ はASM 上からも削除されているということがわかります。
DB_CRAETE_FILE_DEST の設定ははずしたので、OMF は効いていないはずなの
ですが。。。んー、本当に OMF は必要なんだろうか? 疑問が残ってしまいま
した。継続して調査が必要なようです。
とにかく、上記の SQL からどんなファイルが ASM で管理されているのかを確
認することが出来そうです。しかし、次はどうもファイルのサイズが気になり
ます。”TEST001” 表領域は確か、20 MB で作成したはずです。USED_MBYTES は
確かに、20 MB です。では、ALLOCATE_MBYTES の 42 MB とは何のことでしょ
うか。良く見ると、他のデータファイルなども、USED_MBYTES よりも 大きな
領域が ALLOCATE_MBYTES になっています。マニュアルには、「割り当てられ
たバイト数」と書かれています。割り当てたのは、20 MB だっちゅうのに。
ふと見ると、データファイルと思われるファイルのサイズはおおむね、2 倍ほ
ど “ALLOCATE” されています。
皆さん気が付きましたか?
どうやら冗長化された分だけ多く “ALLOCATE” されているような気がしてきま
した。
SQL> select name,type from v$asm_diskgroup; NAME TYPE ------------------------------ ------------------------------ DATA NORMAL
ふむふむ、ここで言う NORMAL とは、2 重化の意味です。
では、多重化しない DISK Group に表領域を作成した場合、多めに “ALLOCATE”
されるのかどうか見てみましょう。
ちょっとお隣の環境を借りてみます。
SQL> select a.name FILE_NAME 2 ,b.blocks USED_BLOCKS 3 ,trunc(b.bytes/1024/1024) USED_MBytes 4 ,trunc(b.space/1024/1024) Allocate_Mbytes 5 ,b.type TYPE 6 ,c.type REDUNDANCY 7 from v$asm_alias a,v$asm_file b,v$asm_diskgroup c 8 where a.group_number = b.group_number 9 and a.file_number = b.file_number 10 and a.file_incarnation = b.incarnation 11 and a.group_number = c.group_number FILE_NAME USED_BLOCKS USED_MBYTES ALLOCATE_MBYTES TYPE REDUNDANCY ----------------- ----------- ----------- --------------- ------------- ----------- SYSTEM.256.1 56321 440 885 DATAFILE NORMAL SYSAUX.257.1 26881 210 425 DATAFILE NORMAL UNDOTBS1.258.1 3201 25 52 DATAFILE NORMAL USERS.259.1 641 5 12 DATAFILE NORMAL Current.260.3 175 2 16 CONTROLFILE NORMAL Current.261.3 175 2 16 CONTROLFILE NORMAL group_1.262.1 20481 10 32 ONLINELOG NORMAL group_1.263.1 20481 10 32 ONLINELOG NORMAL group_2.264.1 20481 10 32 ONLINELOG NORMAL group_2.265.1 20481 10 32 ONLINELOG NORMAL group_3.266.1 20481 10 32 ONLINELOG NORMAL group_3.267.1 20481 10 32 ONLINELOG NORMAL TEMP.268.1 2561 20 42 TEMPFILE NORMAL spfile.269.1 5 0 2 PARAMETERFILE NORMAL spfileora101.ora 5 0 2 PARAMETERFILE NORMAL TEST000.256.1 2561 20 21 DATAFILE EXTERN ~~~~~~~~~~~~~~ ~~~ ~~~ ~~~~~~~~ 16 rows selected.
一番下の “TEST000” 表領域が多重化しない DISK Group に作成した表領域
です。どうやら予想は当たった見たいです。
ただ、いずれにしても少しオーバーヘッドがあるようですね。数MB 大きくな
っています。
今週はここまで。
台風接近中の茅ヶ崎にて