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

【小説 エンジニアの事故記録】第四話 100%の愛情

»

 幸一郎と小山は自分の席がある四階の開発室を出ると、階段を上り五階のサーバ室の扉の前に立った。
 サーバ室にある開発サーバや、遠隔地にある本番サーバに接続できる保守端末はお客の資産である。
 そのため、ここに入るにはお客から貸与されたパスカードを扉横にある読み取り機にかざし、認証されないと入れない。
 幸一郎はいつもの手順で首から下げたパスカードを読み取り機にかざし、扉を開け中に入った。
 数秒後、同じ手順を踏んで小山も入室して来た。
 その小山を連れて、本番データベースサーバにリモート接続可能な保守端末の前に座った。
 まずは端末の電源を入れwindowsを起動させる。
 ID、パスワードを入力してログインし、デスクトップ画面にあるTeraTermのショートカットをダブルクリックする。
 TeraTermの接続画面が表示され、そこに本番データベースサーバのIPアドレスを打ち込み、SSH接続を行った。
 rootユーザにスイッチし「crontab -l」コマンドで、今日から毎晩23時に日次実行される「売上データ蓄積バッチ」がcron登録されているかを確認した。

<<crontab -lの結果>>
====================================================
# 売上データ蓄積バッチ起動
0 23 * * * su - oracle -c /batch/database/uriage_data_tikuseki.sh > /dev/null 2>&1
====================================================

「よし! ちゃんと登録されている」

 定義されている部分をしっかりと確認した幸一郎は、大きくうなずいた。
 毎日23時に/batch/databaseディレクトリにあるuriage_data_tikuseki.shが実行されることを確認した。
 これが今日から日次実行される「売上データ蓄積バッチ」の正体である。
 このシェルは中でsqlplusに接続するので、oracleユーザにスイッチしてから実行されるようになっている。
 幸一郎はuriage_data_tikuseki.shをviewコマンドで開いて、中を確認した。

<<uriage_data_tikuseki.shの中身>>
====================================================
sqlplus admin/admin @/batch/database/uriage_data_tikuseki.sql

ORA_ERR=`grep ORA- /batch/database/BATCH_RESULT.LOG |wc -l`

if [ $ORA_ERR = 0 ] ; then
/usr/bin/logger "売上データ蓄積バッチ成功"
else
/usr/bin/logger "売上データ蓄積バッチ失敗"
fi
====================================================

sqlplusでORACLEデータベースに接続する。
その際、/batch/databaseディレクトリにあるuriage_data_tikuseki.sqlファイルを引数にしている。
uriage_data_tikuseki.sqlファイルに書かれているSQLの実行結果を、BATCH_RESULT.LOGファイルに出力している。
BATCH_RESULT.LOGファイルの中に「ORA-」エラーがあればバッチ失敗のメッセージをsyslogに出力するようにしていた。
さらに、念のためuriage_data_tikuseki.sqlを開いて中身を確認してみる。

<<uriage_data_tikuseki.sqlの中身>>
====================================================
SPOOL BATCH_RESULT.LOG

INSERT INTO URIAGE_RIREKI
SELECT *
FROM URIAGE,
URIAGE_MEISAI
WHERE URIAGE.URIAGE_ID = URIAGE_MEISAI.URIAGE_ID
AND URIAGE.URIAGE_DAY = TO_CHAR(SYSDATE,'YYYYMMDD');

EXIT

SPOOL OFF
====================================================

 当日の売上テーブル(URIAGE)と売上明細テーブル(URIAGE_MEISAI)を結合した結果を、売上履歴データテーブル(URIAGE_RIREKI)に入れるSQLである。
 お客が顧客ごとの売り上げや、商品ごとの売上を帳票なり画面に出力させようとする度に、裏で売上テーブルと売上明細テーブルを結合したSQLを発行し、プログラムで加工した結果を表示させていた。
 だがそれだと、表示するのに時間が掛かるとクレームが来るようになった。
 SQLの結合処理に時間が掛かっていたのである。
 ならばと言うことで、SQLのパフォーマンスチューニングをしてもいいところだが、SQLの実行結果を、毎日ため込んでデータ分析に使用すればどうかと、小山が提案した。
 お客の方も、顧客ごとの売上データを蓄積して分析したいという要望があったらしく、丁度いいということで、今後五年分の売上データを履歴として保持して置く事になった。
 その格納先が、売上履歴データテーブル(URIAGE_RIREKI)である。

売上履歴データ作成.jpg


 と言うわけで、メンテナンスと称して今回のバッチを後付けのような形で作成したわけである。

「大竹、新規に作成した売上履歴データテーブルがちゃんとデータベースに作成されているか確認してくれ」
「分かったよ」

 幸一郎は、小山の余りの念の入れようを、少々うっとおしいと感じながらも従った。

「sqlplus admin/adminと......」

 sqlplusでデータベースに接続した。
 以下のコマンドを打ち込み、売上履歴データテーブル(URIAGE_RIREKI)があるか確認した。
 
「select table_name from user_tables where table_name = 'URIAGE_RIREKI';」

 「URIAGE_RIREKI」と表示され、目当てのテーブルがあることを確認した幸一郎は、sqlplusから抜けた。

「ちゃんと登録されてるみたいで安心した。さすが、不器用で真面目な大竹だな」
「不器用は余計だろ」
「ははは、すまん。でもこれで、今日の食事会は安心して参加できるよな」

 確認が済み安心したのか、二人はジャレたような会話をしてしばし和んだ。


---------------------------------------------------------------------

 幸一郎、小山、渚沙の三人は、各自の仕事の進み具合で、今日の飲み会は18時に現地集合とした。
 もちろん秘密の打ち合わせ通り、小山は突然仕事が入ったことにして、出席しないことになっている。
 つまり、店に行くのは幸一郎と渚沙だけである。

「おつかれさまでしたー」

 時計の針が17時を指した。
 ノートパソコンの蓋をパタリと閉じた渚沙はバッグを片手に、幸一郎より先に上がった。
 幸一郎は後を追わない。
 店に行く前に寄りたい場所があったからだ。
 渚沙が職場を出て行ったのを確認すると、幸一郎もカバンを手にし席から立ち上がった。

「おつかれさまでした」

 と、礼をして職場が入っているビルを後にした。
 特に小山には目配せをして出て行った。


---------------------------------------------------------------------

 まだ日の落ちていない真夏の街を、幸一郎は急ぎ足で歩いていた。
 今日の会場であるフランス料理店「マイフレンチ」は、職場から歩いて10分ほどで着く近い店である。
 幸一郎が17時ちょっと過ぎという早い時間に職場を出たのは、フレンチに行く前に寄るところがあったからだ。
 それは「フローリスト野々花」という花屋だった。

「いらっしゃいませ」

 花屋の店員に出迎えられた幸一郎は、店員の女性にお辞儀すると、こう尋ねた。

「今日、女性と食事するんですけど、その時に花をプレゼントしたいんです」
「あ、デートなんですね」

 店員は笑顔でそう応じると、一緒に花を選んでくれた。

「そうですねー、これくらいの花束だと相手の方も貰っても持ち帰りやすいですよ」

 手に収まる程の赤い薔薇の花束を見せてくれたが、幸一郎は奮発して百本の赤い薔薇の花束を選んだ。
 自分でもちょっと気障かなとは思ったが、何事もやっておくに越したことは無いし、花を貰って喜ばない女性はいないと思った。
 それに過去の成功体験もある。
 高校の頃、人生でただ一人付き合ったことがある彼女がそうだった。
 彼女に薔薇をプレゼントした時も喜んでいた。
 ならば渚沙の場合も喜ぶと思ったし、量が多い方がより喜ばれると思ったのだった。
 だが、それは高校の時の彼女が幸一郎を好きだったから喜んだのであり、渚沙の場合は好きかどうかも分からない。
 後に、渚沙に対してのこの行いが勘違いだったと知らされることになる。
 つまりは、恋愛初心者が陥りがちな、暑苦しいというか豪華だったらいいかもという、相手の思いを忘れがちな、初歩的な愚を犯していた。


---------------------------------------------------------------------

 百本の薔薇の花束を抱えた幸一郎は、周囲の視線をいたく感じながらマイフレンチへと向かった。
 白いスーツなら様になったのかもしれないが、灰色のスラックスに開襟シャツでは何がしたいのか周りからは分からない。
 実は白いスーツを用意することも考えてはいたが、予算の関係と着替える場所が無いということで自分の中で泣く泣く却下にしていた。
 後に薔薇を目にした渚沙の引きっぷりを鑑みるに、白いスーツでの登場を避けれたことだけは、不幸中の幸いでもあった。
 だがその時の彼は、やっぱり白いスーツが良かったかなと、その辺りのダメポイントには気が及んでいない。
 そこが、彼の女性にも仕事にも不器用たる所以かもしれない。


---------------------------------------------------------------------

 17時50分、店に入ると、もうすでに渚沙が席に着いていた。
 幸一郎が目の前に現れるなり、驚愕の表情でこう言った。

「何、その花!?」

 渚沙の顔から表情が無くなっていった。

つづく

Comment(0)

コメント

コメントを投稿する