NEXT IMAGE
ユーザー:匿名希望 さん      総合情報ポータルログイン 総合情報ポータルとは?  
リンコム通信(公開メッセージ)  > メッセージ詳細表示 
公開メッセージ
検索 検索
[ 閉じる ]

前へ前へ      次へ次へ
   バージョンアップ小技集(2009年12月)
カテゴリー:無し  登録者:リンコム営業   登録日時:2009/12/7 10:14  表示期限:無期限  

ネクスト活用事例紹介

バージョンアップ小技集

2009年12月

text by 山田晃生(技術サービス部 部長)



2009年も最後の回となりました。
個人的には激動の2009だったのですが、1回お休みをいただきながらも何とか連載を続けさせていただき、皆様に大変感謝しております。
さて先月、バージョンアップは難しい・・・と書いたのですが、後で読み直してみて危機感を煽るだけな内容に自己反省しました。
そこで、今月はバージョンアップで使ったテクニックをいくつかご紹介したいと思います。
正直、もっと簡単に・・・という方法があるかもしれませんが、それは私の力不足とご容赦ください。

1.余分なデータは削除
当たり前のことなのですが、バージョンアップには時間が物凄くかかるケースがあります。
私自身がお引き受けした時でも、一晩かかっても終わらないケースなど多々あります。
バージョンアップにかかる時間は、データ量がそのまま比例しますから、データが少ないに越したことはありません。
そこでいらないゴミデータを削除しましょう。
削除の対象としてよくあがるのがDBにあるアクセスログ&監査ログです。
勿論、これらのログファイルは会社の規約上残して置かねばならないものですから、消してしまうわけにはいきません。
データをアーカイブしてから消してしまいましょう。
この2つのテーブルは直接バージョンアップの対象にはなりませんが、データのエキスポート&インポートが発生する場合(例えばサーバリプレースやNext3.0へのバージョンアップなど)に効果を発揮します。

2.速いハードディスクを使おう
バージョンアップの際にハードリプレースを行うことはよくあります。
その場合、旧サーバから新サーバにデータを移しますが、弊社でもこの作業にポータブルHDDを利用します。
どうもこのコピー作業に非常に多くの時間がとられてしまうケースが多いのです。
実際、5GBぐらいのファイルコピーに3時間ぐらいかかったことがありました。
不思議に思ってWindowsのタスクマネージャでディスクIOをチェックしていると、どうもIOの値が低調な状態・・・時々跳ね上がるものの、また低調・・・の繰り返しでした。
私はハードにはあまり詳しくないのですが、素人ながらに出した結論は・・・USBの電圧ではディスクが安定速度を出すことが出来ないのでは?
使っていたHDDはUSBだけでACアダプタがありません。ポータブルなので充電機能は持っているでしょうが、それが切れてしまうと遅い回転速度しか出せずに速度低下を招いているような・・・
あくまで思いつきなのですが、今度ACアダプタ付きのHDDと比較してみようと考えていますが、もし情報をお持ちの方がいれば教えてください。お願いします。
ともかく、バージョンアップの際にはコピー時間というものを計算に入れておかないと、痛い目を見ます。
それと、ネットワーク越しにコピーをする際は圧縮するのがお勧めです。
何を当たり前の・・・と思われるかもしれませんが、DBのMDFなどのファイル類は圧縮効果は少ないのでそのままコピーすることが多いんです。(圧縮時間が勿体ない)
それでも圧縮したほうがいいのは、lzhなど解凍時点でコピーが正しく行われたかをチェックできるのでコピーの成否がすぐに分かります。

3.DBを最適化する
バージョンアップで時間がかかるのは、やはりDBの更新処理です。
特にワークフロー2.3→3.0、3.1→3.2やネクスト2.7SP1→3.0ではデータ総入れ替えが発生します。
この場合、少しでもデータ更新を速くするために以下のことを事前に行ってください。
・Indexを張る
ワークフローで特に有効なのがIndexです、ワークフローでは申請書を復号→変換→暗号化処理を行います。
この処理の中でWORK_PETITIONテーブルやWORK_PETITION_DATAテーブルに予めIndexを張っておけば、かなりの時間短縮が期待できると思われます。
・予めファイル拡張をしておく
特にOracleで顕著なのですが、大量データのInsertを行う場合にデータファイルの自動拡張が足を引っ張るケースがあります。
そこで、予めデータファイルサイズを2〜2.5倍に広げておくことで、都度の拡張が行われず効率的な格納が期待できます。
またRedoやUndo領域も余裕を持って確保しておけば安心です。

4.余分なアプリケーションや機能を停止する
バージョンアップの場合は必ずColdFusionのデバッグモードをOFFにしてください。
デバッグモードでは実行したSQLクエリを表示するため、ネクストサーバのメモリに蓄積します。
ワークフローのバージョンアップでは申請書数×3クエリが個別に実行されますので、デバッグをONにしていると例えば申請書が1万あった場合は3万行をメモリに溜め込んでしまいます。
するとネクストサーバのメモリをデバッグのためだけに使い込んでしまい、非常に遅くなってしまいます。
また、バージョンアップの際はウィルスチェックやスナップショットなどのアプリケーションを停止することが重要です。
ソースや画像ファイルなど、大量のファイルコピーが発生する際に1つ1つスキャンをかけていると、これも非常に遅くなってしまいます。


ざっと書いてしまいましたが、前回と同じく大事なのは事前準備です。
当日、現場の判断も事前の準備があればこそできる決断があります。
こうして、皆様のバージョンアップが無事に終わるよう、早く帰って家族サービスが出来るように願っております。


リンコム通信へのご意見はこちらからお願いします


リンコム ネクスト・総合情報ポータル
Copyright © 2002-2009 LINKcom corporation. All rights reserved.
グループウェアならリンコム ネクスト