常駐先で、ORACLEデータベースの管理やってます。ORACLE Platinum10g、データベーススペシャリスト保有してます。データベースの話をメインにしたいです

【小説 愛しのマリナ】第十九話 環境取違事件

»

 縁天株式会社が運営している結婚情報サービスシステムの現行バージョンは、教育環境と本番環境が存在する。
 教育環境は文字通りエンドユーザーである縁天の社員が、本システムの使い方を習得するために用意された環境である。
 システムを使用した会員情報の管理や分析、メールの配信方法など、この教育環境を使った研修で習得する。
 画面や動作しているプログラムについては、本番環境と同等のものを別サーバに用意して使用している。
 データベースについても、本番環境と別サーバとディスクを用意してそれを使用している。
 そして、教育環境のデータベースには教育用のデータが登録されている。
 ちなみに、現行のデータベースはORACLE10gで、来年四月からのシステムリニューアル後は11gにバージョンアップすることが決まっている。

「教育環境データベースのメンテナンスするから、チェッカーをお願いしたい」

 荒川は慶太に、作業を行う上での確認者、つまりチェッカーの役目を依頼した。
 ブレインズ情報システムでは、お客が使用する環境のメンテナンスを行う際、作業者と確認者という二人体制で行うというのが決まりだった。
 荒川が言うには、どうしても間に合わせてほしいデータがあるという客からの要望で、休日の今日に急遽対応することになった、とのことである。

「......分かりました」

 慶太は早く帰って、真里菜と希優羅に会いたかったが、荒川と作業をすることを選んだ。
 見たところ、フロアには慶太と荒川の二人しかいない。
 慶太は荒川に対して、いつも反論ばかりしているので、協力をお願いされた時くらいは快く引き受けようと思った。
 それに、実際お客が使用している現行システムと言うものにも興味があった。

「どこでやるんですか?」
「六階の開発サーバ室だよ。教育環境に接続出来る保守端末があるんだ」

 二人は六階の開発サーバ室に入った。
 この部屋には慶太が所有するパスカードの権限では入ることが出来ない。
 荒川のパスカードだと入ることが出来る。
 慶太は共連れの形で入ることになった。
 室内には開発サーバや作業用端末が所狭しと置かれていた。
 ここは普段、インフラチームが詰めているところだが、今日は休日のため誰もいない。

「ゴー、ゴー」

 サーバ内部にあるファンの音が耳をつんざく。
 話すときは多少声を張らないと聞こえないくらいの大きな音だ。
 林立した開発サーバの間を縫うように、部屋の奥へ向かう。
 保守端末はその部屋の右端にあった。
 向かって左側が教育環境に接続できる保守端末。
 右側が本番環境に接続できる保守端末。
 本来なら、その二台あるはずだが、左側の保守端末一台しかない。
 右側の保守端末があるはずの机の上には、

「現在、本番環境接続用の保守端末は修理中」

 という紙が置かれていた。

環境概略図.jpg

 荒川によると、右側の本番に接続できる保守端末は修理に出しているとのことだった。
 荒川は、あらかじめ予約して置いた保守端末の電源スイッチを入れた。
 この保守端末にインストールされているOracleClientのSQL*PLUSを使用し、遠隔地のデータセンタにある教育環境データベースへ接続する。
 荒川は保守端末のWindowsが起動するのを確認すると、管理者権限ユーザでログオンした。
 作業目的、そして作業者と確認者を入力する画面が表示され、そこに必要事項を入力し登録ボタンを押す。
 こうして、保守端末へのログイン履歴と作業履歴を残して、後から何をしたか追跡できる仕組みになっている。
 荒川は、紙の手順書を慶太に手渡すと、

「じゃ、作業項目を読み上げて行ってくれるかな」
「はい」

 慶太は、手順書の作業者欄に「荒川」、確認者欄に「大沢」と書いた。
 手順書のフォーマットとしては、左に作業内容、右に確認事項が書いてある。
 荒川曰く、この手順はいつも使っていて実績がある物、とのことである。 

「コマンドプロンプトを起動し、expコマンドでテーブルのバックアップを取ってください」

 慶太がそう指示すると、荒川は慣れた手つきで操作を行った。

「コマンドは?」
「exp adm/adm@endb file=hobby.dmp log=hobby.log tables=hobby statistics=none feedback=1000です」
「了解」

 endbデータベースに存在するadmユーザが持つ、hobbyテーブルのデータを、expコマンドでバックアップするようだ。
 一見何の変哲もないexp文のように見える。
 少し気になるのは@マークの後ろのendbという単語である。
 恐らく、教育データベースに向き先を設定した接続文字列なのだろう。
 だが、何か慶太は引っ掛かるものを感じた。
 それは、荒川も同じようで、顎に手を添え、何か考え込んでいる。
 デスクトップには、教育環境のシステムを起動させている。
 データメンテナンス後に、画面確認するためにあらかじめ起動して置いたものだ。
 趣味マスタ画面という名前の画面を開いている。
 システム管理者である縁天の社員が使用するマスタメンテ画面で、会員が選択することが出来る趣味を登録する画面である。

 今回、会員が設定する趣味の呼び名を変更することになった。
 例えば、

  「買い物」→「ショッピング」
  「マラソン」→「ランニング」
  「外食」→「食べ歩き」
  「動物」→「ペット好き」
  「車」→「ドライブ」

 と言った、コード値は変えず、名称だけをソフトな呼び名に変えようとしているのである。
 まずは、教育環境で呼び名に違和感がないかを、相談員である社員に操作させて確認してもらい意見を貰う。
 問題が無ければ、リニューアル後のシステムは、これらの呼び名に統一されることになる。
 今回は教育と言うよりも、若干、運用テストという立場での使われ方である。

「じゃ、行くぞ」
「はい」

 荒川は考え込んでいたが吹っ切ったかのように、そのままexpコマンドを実行した。
 hobbyテーブルは100件くらいの小さいテーブルだったため、データ変更前のバックアップは五秒で終わった。
 荒川と慶太は、保守端末のcドライブ直下にhobby.dmpが出来ているのを確認した。
 
「sqlplus adm/adm@endbにログインして、hobbyテーブルをtruncateしてください」
「おう」

 数百件のテーブルだから、deleteでもいいかと思ったが、今までこの手順でやって来たのだからtruncateでも問題ないのだろうと、慶太は思った。
 
「select count(*) from hobby;で0件になったか確認してください」
「OK。0件です」
「では、データを取り込みます。@ins_hobby.sqlを実行してください」

 荒川はここで、念のためcドライブにあるins_hobby.sqlを開いて確認した。
 中には100件のinsert文がある。
 これは開発環境で事前に実行した実績あるinsert文だとのこと。
 truncateして0件にした後、insert文で一気に新しい趣味データを登録するやり方なのだろう。
 コード値を指定して名前の部分を変更するupdate文を、100件発行してもいいだろう。
 だが、慶太は少量のデータなら、全消し全入れのこのやり方の方がシンプルだとは思った。
 何より何度も実績がある手順だと聞いているので、敢えて意見を言う必要はないと思った。

「@ins_hobby.sqlを実行しました」

 全データのインサートが5秒で完了した。

「select * from hobby;で出力し、開発環境での結果ログと突き合わせて差異が無いか確認してください」

 事前に開発環境で確認した結果を「正」とし、それと合っていればOKとする確認方法だった。
 このやり方は、時間の節約にもなるし、慶太も特に問題ないと思った。

「確認、OK」

 荒川がそう言うと、あらかじめ開いておいた教育環境の趣味マスタ画面を確認するよう、慶太に指示した。
 F5キーを押し、趣味マスタ画面を更新する。

「あれ? 新しい名称になってないですよ」

 慶太は荒川にそう伝えると

「おかしいな......もう一回、F5を打ってくれ」

 だが、画面は古い名称のままだった。
 荒川の顔が少しずつ青ざめていく。
 慶太は、F5を連打する。

「再ログインして見ろ!」

 荒川の声が荒くなる。
 額にじっとりと汗がにじんでいる。

「だめです。変わらないです」
「どいて!」

 荒川は慌てた様子で、慶太を退けると、自ら「本番環境」の画面を起動した。
 慶太は心の中で

(まさか)

 と呟いた。
 教育環境が変更されていないということは、今までの作業はどこで行われていたのか。
 それは、荒川も同じことを思っていたらしく、その疑念を解消するために、本番環境に向かって行った。
 趣味マスタ画面まで遷移すると、荒川わなわなと震え出した。

「これって......」

 横から見ている慶太も驚きの声を発した。
 本番環境の方の趣味データが変更されていた。

つづく

Comment(0)

コメント

コメントを投稿する