(AIX) Linux のように一発でアーカイブ+圧縮(tar+compress)

AIXにて Linux のように一発でアーカイブ+圧縮(tar+compress)する方法。
tarとcompressを別に行うと中間ファイルができてしまい、ディスク容量を喰ってしまい嫌だという場合に有効
・アーカイブ+圧縮
# tar cf - <アーカイブするファイル/ディレクトリ> ... | compress -c > xxxxxx.tar.Z
参考:linuxの場合
# tar zcf xxxxxx.tar.gz <アーカイブするファイル/ディレクトリ> ...

・解凍+アーカイブ展開
# zcat xxxxxx.tar.Z | tar xf -
または
# compress -dc xxxxxx.tar.Z | tar xf -
参考:linuxの場合
# tar zxf xxxxxx.tar.gz

DB2 SMSテーブルスペースチューニング

DB2のテーブルスペースのコンテナでSMSを使用する場合、Direct I/Oを使用するようにする。
理由は、Linuxカーネル(2.6)のファイルキャッシュとDB2のバッファプールが同じ働きをするから。
→要するに同じことを2回やっているので、処理時間とメモリ容量が無駄!

db2 “ALTER TABLESPACE <テーブルスペース名> NO FILE SYSTEM CACHING”

メモリーチューニング(AIX)

・現在の状態を確認

# vmstat -v
    524288 memory pages          ←実メモリページ数
   494223 lruable pages
      4115 free pages
         2 memory pools
    176832 pinned pages           ←ページアウトされない使用メモリ
      80.0 maxpin percentage
      20.0 minperm percentage     ←ファイルキャッシュの最低保持割合
      80.0 maxperm percentage     ←ファイルキャッシュの最大保持割合
      15.5 numperm percentage     ←実メモリに対するファイルキャッシュの占める割合
     76722 file pages             ←ファイルキャッシュのページ数
       0.0 compressed percentage
         0 compressed pages
      16.4 numclient percentage   ←現在のバッファキャッシュの実メモリに対する割合
      80.0 maxclient percentage   ←バッファキャッシュの最大保持割合
     81069 client pages           ←現在のバッファキャッシュのページ数
         0 remote pageouts scheduled
      9203 pending disk I/Os blocked with no pbuf
      8718 paging space I/Os blocked with no psbuf
      2740 filesystem I/Os blocked with no fsbuf
        30 client filesystem I/Os blocked with no fsbuf
         0 external pager filesystem I/Os blocked with no fsbuf

・メモリ関連のパラメータ確認

# vmo -a

・ファイルキャッシュを減らす
 明らかに、大量のファイルが何度も読み取られるがない場合 有効
 maxperm の値を減らす。
  ( maxperm > numpermの場合、ファイルキャッシュを取りにいこうとする。実メモリから移動できない実行中のメモリが大きいほど、使われてないメモリがスワップされてしまう)

# vmo -o maxperm=60 [-p]

 strict_maxperm を 1 にすると maxperm がファイルキャッシュのハード制限になる

# vmo -o strict_maxperm=1 [-p]

・バッファキャッシュを減らす
 大量ファイル読み取りによってメモリを逼迫している場合に有効
 当然、ディスクI/Oパフォーマンスは落ちる
 maxclient の値を減らす

# vmo -o maxclient=30 [-p]

・空きメモリ確保
 大きく空けるとプロセス生成時にページアウトしにくくなる。
 前もってページアウトして局所的に遅くなるのを防ぐ
 minfree ページアウト開始トリガー
 maxfree ページアウト終了

# vmo -o minfree=1000 [-p]

・プロセスごとの使用メモリ量取得

# svmon -P

DB2 ユーザデータの格納場所の移動

DB2 ユーザデータの格納場所の移動
DB2 ユーザデータの格納場所(コンテナ)の移動する方法。
DB2のリダイレクトリストア(RESTORE コマンド)機能を利用する
1.テーブルスペース・コンテナ情報取得
 テーブルスペース名とテーブルスペースIDの確認

$ db2 “LIST TABLESPACES”

 テーブルスペースIDごとに現在のコンテナパスの確認

$ db2 “LIST TABLESPACE CONTAINERS FOR <テーブルスペースID>

2.バックアップ取得

$ db2 “BACKUP DATABASE <DB名> ~(以下省略)

3.リダイレクトオプションを使用して、リストアを実行。
 ※リストアはペンディング状態になる

$ db2 “RESTORE DATABASE <DB名> FROM <バックアップイメージディレクトリパス> TAKEN AT <使用データのタイムスタンプ(YYYYMMDDhhmmss)> REDIRECT

4.リストアするデータ格納場所(コンテナパス)の変更

$ db2 “SET TABLESPACE CONTAINERS FOR <テーブルスペースID> USING (path ‘<新しいコンテナのパス>‘)”

5.リストアを再開する

$ db2 “RESTORE DATABASE <DB名> CONTINUE