The Dragon Scroll

Be just and fear not.

10gがもたらす福音(10)〜ASM。

10gの真骨頂、ASMについて。
ASMとは、自動ストレージ管理の略称。
物理ファイルから、Oracleを解放する画期的な機能。
Oracle風ボリュームマネージャ(LVM)といえば話が早い。


まずは、構成要素から。これらの要素は、DBインスタンスとは
別のASMインスタンスで管理される。
1、ASMディスク
物理的なディスクパーティションに対するもの。
LVMでいう、物理ボリューム。
2、ASMディスクグループ
ASMディスクをまとめる管理グループ。
LVMでいう、ボリュームグループ。
3、ASMファイル
DBインスタンス側から見た、1つのファイル。
LVMでいう、論理ボリューム。


ASMの仕掛けを支えるバックグランドプロセス達。
ASMインスタンス

  1. RBAL … ASMディスクグループ全体のバランスを調整するプロセス。
  2. ARBn … 実際の再バランスを担う。

DBインスタンス

  1. RBAL … ASMディスクへのアクセスコントロールを担うプロセス。
  2. ASMB … ASMインスタンスに接続するためのプロセス。


ASMインスタンスに必要な初期化パラメータ達。

  1. INSTANCE_TYPE … ASMインスタンスでは[ASM]を指定(必須)。
  2. DB_UNIQUE_NAME … ASMディスクグループを管理するサービス名。
  3. ASM_POWER_LIMIT … 再バランス作業の速度制御。11が最速。
  4. ASM_DISKSTRING … ASMディスクの名前。
  5. ASM_DISKGROUPS … 起動時に自動的にマウントされるASMディスクグループのリスト。
  6. LARGE_POOL_SIZE … ASMインスタンスが使用するパッケージはここで使用する。


ASMディスクグループの作成。
create diskgroup ディスクグループ名
[external/normal/high] redundancy
disk 'ディスク'

※normal/high指定時は、冗長グループを持つことができる。
一方のグループの障害があっても他方が生きていれば操作を
継続できる。

create diskgroup ディスクグループ名
normal redundancy
failgroup 障害グループ名1
  disk 'ディスク1'
failgroup 障害グループ名2
 disk 'ディスク2'

※highの場合は、最低3つの障害グループを指定する。

ASMファイルを使う例。
create tablespace 表領域名 datafile 'ディスクグループ名'

既存の非ASMファイルをASMファイルに移行する

RAMNを使う。

1、イメージコピーとして作成する。
  BACKUP AS COPY TABLESPACE hoge FORMAT '+asmgroup1'
2、SWITCHコマンドで切り替え。
  SWITCH TABLESPACE hoge TO COPY