DB2 で raw デバイス を使用する方法(for Solaris) ---------------------------------------------------------------------- ■作業対象  Netra-T1(memory : 1 GB)  Netra-st A1000  Solaris8 ---------------------------------------------------------------------- ■前提条件  DB2 とコントロールセンターはインストール済み。 ---------------------------------------------------------------------- ■事前確認。 RAID のどのスライスが使用可能か確認する。 以下のコマンドは間違えるとディスク上のデータを消してしまう 恐れがあるので要注意。 ●ルートになって以下のコマンドを実行。 kenta[irecs-db]%format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c0t0d0 /pci@1f,0/pci@1,1/scsi@2/sd@0,0 1. c2t5d0 /pseudo/rdnexus@2/rdriver@5,0 Specify disk (enter its number):1 ※StorEDGEA1000 の記述からこれが RAID である事が確認できる。 selecting c2t5d0 [disk formatted] FORMAT MENU: ※途中表示略 format> p ※ p は partition の略式指定 PARTITION MENU: ※途中表示略 partition> print ※print サブコマンドでスライステーブルを表示する。 Current partition table (original): Total disk cylinders available: 25849 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 63 128.00MB (64/0/0) 262144 1 swap wu 64 - 127 128.00MB (64/0/0) 262144 2 backup wu 0 - 25848 50.49GB (25849/0/0) 105877504 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 usr wm 128 - 25848 50.24GB (25721/0/0) 105353216 7 unassigned wm 0 0 (0/0/0) 0 ※スライス 6 が RAID disk の本体?である事が確認できる。 partition> quit format> quit ※quit を二回 ●上記スライスに直接アクセスする場合は /dev/rdsk/c2t5d0s6 でアクセスする。  ※ rdsk は raw disk の略らしい。 ●スライスの再定義 partition> 3 Part Tag Flag Cylinders Size Blocks 3 unassigned wm 0 0 (0/0/0) 0 Enter partition id tag[unassigned]: Enter partition permission flags[wm]: Enter new starting cyl[0]: 128 Enter partition size[0b, 0c, 0.00mb, 0.00gb]: 16.75gb partition> 4 Part Tag Flag Cylinders Size Blocks 4 unassigned wm 0 0 (0/0/0) 0 Enter partition id tag[unassigned]: Enter partition permission flags[wm]: Enter new starting cyl[0]: 8704 Enter partition size[0b, 0c, 0.00mb, 0.00gb]: 16.75gb partition> print Current partition table (unnamed): Total disk cylinders available: 25849 + 2 (reserved cylinders) partition> 4 Part Tag Flag Cylinders Size Blocks 4 unassigned wm 0 0 (0/0/0) 0 Enter partition id tag[unassigned]: Enter partition permission flags[wm]: Enter new starting cyl[0]: 8704 Enter partition size[0b, 0c, 0.00mb, 0.00gb]: 16.75gb partition> 5 Part Tag Flag Cylinders Size Blocks 5 unassigned wm 0 0 (0/0/0) 0 Enter partition id tag[unassigned]: Enter partition permission flags[wm]: Enter new starting cyl[0]: 17280 Enter partition size[0b, 0c, 0.00mb, 0.00gb]: 16.73gb partition> print Current partition table (original): Total disk cylinders available: 25849 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 63 128.00MB (64/0/0) 262144 1 swap wu 64 - 127 128.00MB (64/0/0) 262144 2 backup wu 0 - 25848 50.49GB (25849/0/0) 105877504 3 unassigned wm 128 - 8703 16.75GB (8576/0/0) 35127296 4 unassigned wm 8704 - 17279 16.75GB (8576/0/0) 35127296 5 unassigned wm 17280 - 25845 16.73GB (8566/0/0) 35086336 6 usr wm 128 - 25848 50.24GB (25721/0/0) 105353216 7 unassigned wm 0 0 (0/0/0) 0 partition> label Ready to label disk, continue? y ●権限の付与。 kenta[irecs-db]%ls -lL /dev/rdsk/c2t5d0s3 crw-r----- 1 root sys 232, 4 Nov 30 15:03 /dev/rdsk/c2t5d0s3 目的のスライスに db2 インスタンスオーナーの書き込み権限を付与する。 kenta[irecs-db]%chown irdb2ins:db2iadm1 /dev/rdsk/c2t5d0s3 ※この時 シンボリックリンクの /dev/rdsk/c2t5d0s3 の権限は変更されていない事に注意。  リンク先の実ファイルの権限がちゃんと変更されている。 kenta[irecs-db]%ls -lL /dev/rdsk/c2t5d0s3 crw-r----- 1 irdb2ins db2iadm1 232, 3 Nov 30 15:03 /dev/rdsk/c2t5d0s3 ---------------------------------------------------------------------- ■データベースの作成 ・インスタンスオーナーで次のコマンドを実行。 $ db2set DB2_STRIPED_CONTAINERS=ON ※念の為システムをリブート ・solaris 上でコントロールセンターを起動する。 ツリーを展開して、[Databases] を右クリック [Create]>[Database Using Wizard] を選択。 1.Name Database name [IRECS] 2.UserTables High performance ... (Database-Managed Space) を選択。 [ADD...]ボタンを押し、(Add Container ウィンドウが開く) [File size] には 17024 MB と入力。 ※指定するスライスのほぼ最大容量を指定する。 今回は 16.75gb=16.75x1024=17152mb なので 17024mb を指定。(フルで指定しないのは何となく。) ※一応 17024 は 8 の倍数 [Raw device]を選択、Path に /dev/rdsk/c2t5d0s3 を入力。 [OK]ボタンを押す。 3.CatalogTables 4.TemporaryTables Low... (Systen-Magaged Space) のまま 5.Performance [Change...]ボタンを押す。 [Recommended setting] の [Extent size] を 32 [4KB pages] に変更。 ※ストライプサイズは不明だが 32x4=128k であれば、 128,64,32,16,8 のいずれの整数倍にもあたるので安牌。 [Prefetch size] も [32 4KB pages] に変更。 ※sample 等の SMS の prefetch がいずれも 32 4KB pages である為。 6.Region [Country(Language)] を [Japan] に [Code set] はそのまま [eucJP] 。 コマンドは下記 CREATE DATABASE IRECS ON /export/home/irdb2ins USING CODESET eucJP TERRITORY JP COLLATE USING SYSTEM USER TABLESPACE MANAGEDBY DATABASE USING(DEVICE '/dev/rdsk/c2t5d0s3' 4358144) EXTENTSIZE 32 PREFETCHSIZE 32 OVERHEAD 24.1 TRANSFERRATE 0.9 一応できたみたい? 後はパフォーマンスチューニング。