個々の移行プログラムができてきたら移行ジョブ設計を行います。数が少なければ毎回手で実行しても問題なさそうですが、たとえ数個の処理にしても一気に実行できると格段に楽になります。そして、手作業が介在するということはミスの混入可能性を残すことになります。
移行ジョブ化が必要な理由
本番移行はシステム停止を伴うため、一秒たりとも無駄にしてはいけませんし、ミスの混入は許されません。特に移行チームの作業にはしわ寄せがくることも多いので、眠気や疲労で作業品質を下げない工夫は重要です。
なので簡易なものでもよいので、移行処理はジョブ化するべきです。
移行ジョブ設計で考慮すること
- 正しいデータの投入順にする
- 検証ポイントを設ける
- リカバリーポイントを設ける
データ投入には順番があります。他のテーブルの項目を外部キーとして参照している場合、パッケージなどでは内部IDを生成するため、先に投入を終えておく必要があります。そのため、大きくはマスタ、トランザクションの順。その中でも、親データ、子データの順にします。
自動化を優先して忘れがちなのが検証ポイントです。変な状態のまま処理を続けてしまうと取り返しがつかないことになります。例えばマスタの取り込みエラーが大量にある状態でトランザクションを取り込むと、マスタ参照の外部キー項目が大量にブランクになってしまいます。
検証ポイントの他に、リカバリーポイントを設けて、データベース全体のバックアップをとることも有用です。環境設定時のOSバックアップだと移行プログラムのデプロイから再度実施が必要になるため、データ移行タスクとして適宜バックアップを設けることをお勧めします。開始前、マスタ一通り完了時などです。
結局ボタン一つで移行を完了させることはできないと感じたかもしれません。しかし、どんなに簡単な手順に見えても完全に手作業でやるのはお勧めしません。
移行データとプログラムの精度が上がれば自動化の範囲は増えます。本番移行に向けて成長させていく過程を楽しんではいかがでしょうか。
次記事では移行リハーサル計画について紹介します。