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

【小説 エンジニアの事故記録】第四十話 小さいおじさん

»

「バックアップがありました!」

 幸一郎はA会議室の扉を開けるなり、開口一番、ダンプファイルの存在を報告した。
 データベースのバックアップには二種類ある。
 一つはディスクをまるごと取得した物理バックアップ。
 もう一つはデータポンプ等を使ってデータや定義だけを取得した論理バックアップ。
 幸一郎は物理バックアップからのリストアを試み、これに失敗している。
 残されたのは論理バックアップからのリストアのみだ。

「そのダンプから戻すことが出来るかもしれないということか」
「はい」

 楠木部長にそう訊かれた幸一郎は頷いた。
 ホワイトボードを背にして、楠木部長、吉田課長が座っている。
 それに向かい合う形で、お客側である富永、そして彼の上司である西川部長が座っている。

「そのバックアップは今日の20時に取得された物だろ? それ使えるのか?」
「え?」
「事故は20時30分に起きている。その20時から20時30分に更新されたデータはそのダンプファイルには入っていないわけだ。それはどうする?」
「どうするって......いうと......」

 楠木部長の問いに、幸一郎は黙り込んでしまった。
 ダンプファイルの復旧だと事故発生直前の状態に戻らない。
 30分間のデータは欠落してしまうことになる。
 それでいいのか。
 いいはずがない。

「仕方ないですよ。楠木部長」

 今まで口を開かず黙ってやり取りを聴いていた西川部長が喋った。

「そのダンプファイルからデータを戻すしかもう方法は無いのでしょう? じゃ、過去の状態に戻るけどそれで戻すしかないじゃないですか? そうだろ? 富永」
「え、あ、はい。ですが、20時から20時30分の間に発生した注文データや、システム部で更新したデータはどうしましょうか? これが復旧出来ないとなるとマズイですよ」

 富永は、おずおずと反論した。
 ちょび髭をはやし茶髪の西川部長は腕を組んで考え込んだ。
 ダブルのスーツに七色のネクタイをしている。
 長髪、黒いスーツで群青色のワイシャツを着た楠木部長とどこか共通するものを感じる。
 それに二人の部長とも、見た感じ同じくらいの年齢だ。 

「それは伝票とか注文メールとかを見ながら、画面から手打ちで入れてくしかないだろ。システム部で入れたデータは身内で作ったデータなんだから後で何とでも調整つくだろうが」

 ベルルーノでは、顧客からウエブで受け付けた注文は自動的にデータベースに登録される。
 それと同時に受付た内容は、顧客と情報システム部そしてコールセンターに注文メールとして転送される。

「は、はぁ......ですけど注文なんて数百単位であるんですけど、それを手入力するのは時間掛かりますよ」
「そんなのシステム部とか別の部署の手も借りて、一斉にやればなんとかなるだろ」
「は、はぁ......」

 富永は西川部長が怖いのか、大人しく従っている。

「じゃ、ブロンズ情報さん。ダンプファイルで戻してください。今、22時20分を回ったところです。色々準備などで22時30分から開始したとして、24時までには完了してほしい。動作確認も込みで。要件定義書やSLAにもこのシステムは365日24時間稼働とうたってある。うちも、このままずーっと昔みたく台帳と電話対応で注文を受け付けるという訳には行きませんから」
「はい」

 楠木部長、吉田課長は頷いた。

「もしこの時間までに終われなかったら、今後の契約についても考えさせてください」
「分かりました」

 そう言うと、楠木部長は幸一郎の方を向いた。

「大竹君、ダンプファイルからのインポートは1時間半で収まりそうか?」

 そう言う楠木部長に被せるように吉田課長がこう答えた。

「部長、業務の動作確認の時間を考慮してください」
「どれくらいかかるんだ?」
「30分くらいです」
「分かった。大竹君。1時間で出来るか?」

 幸一郎は会議室に来る前にダンプファイルのサイズを確認した。
 それは30GByteほどあった。
 幸一郎は開発環境でだが、ダンプファイルからの復旧を経験している。

「大丈夫です」

 経験上、このサイズなら1時間ほどで終わるという予測がついていた。
 自信を持って答えた幸一郎見て、楠木部長は頷いた。
 データポンプによるデータ復旧の制限時間は1時間。
 つまり、23時30分までにインポートを完了させ、業務の動作確認を行わなければ24時に間に合わない。
 タイムアップになれば吉田課長率いるプロジェクトが解散する。

「楠木さん、うちも今回はかなり無理をしています。その代わりと言っては何だが......フェーズ2の件、サーバのリプレースも一緒にお願いしますよ。今のハードだと保守費が高くてしょうがない」
「分かりました。大竹君、早速取り掛かってくれ」

 お客に借りが出来た楠木部長は、面倒な仕事を依頼されたようだ。


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

 月曜日、22時30分。

 幸一郎は保守端末の前に座った。
 TeraTermを起動し本番データベースサーバ一号機に接続した。
 cdコマンドでダンプファイルがある場所へ移動した。
 ダンプファイルは各本番サーバがマウントしているNASに置いてある。
 「ls -l」コマンドでダンプファイル「ORACLE_DATA.dmp」があることを確認した。
 このダンプファイルこそが石川が言っていた秘中の秘。
 隠し玉バックアップだ。
 これをデータベースにインポートして復旧させる。
 impdpコマンドを幸一郎は組み上げた。

「impdp adm/adm dumpfile=ORACLE_DATA.dmp logfile=ORACLE_DATA_imp.log content=data_only owner=adm status=60」

 コマンドが正しいかどうか、渚沙に確認を依頼した。

「このコマンドで、/NAS/oracle/DATAの配下にあるORACLE_DATA.dmpをインポートするのね」
「はい」
「大丈夫だと思う」

 幸一郎は内心ほっとしていた。
 データポンプなら何度か使用したことがある。
 自分が知っている技術なら何とかなる。
 そう思った。
 インポートするために全業務テーブルのデータを削除した。

「では行きます」

 リターンキーを押した。
 画面が応答待ち状態になった。
 数秒後、進捗状況が画面に表示された。
 ディスプレイに向かう幸一郎を取り囲む誰もが、その様子を固唾を飲んで見守っている。

(あとは、待つだけか......)

 幸一郎は全てを天に任せるような気持だった。
 データベースサーバとORACLEに頑張ってもらうしかない。
 コマンドが流れ出したのを確認した一同は幸一郎から離れた。
 サーバ室の端っこにある大きな机に集まり出した。
 業務設計書を拡げ、データインポート後の業務確認について話し合いを行っているようだ。


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

 月曜日、23時00分。
 幸一郎はインポートされたデータ量とダンプファイルサイズから、あとどれくらい時間が掛かるか割り出した。
 まずは、USER_SEGMENTS表にアクセスした。
 各テーブルごとのBYTES項目を積算することで、どれくらいのデータが入ったか確認した。
 結果、インポートされたデータ量は10GByteだという事が分かった。

(30分掛かって全体の1/3が入っていない)

 残りはあと2/3。
 つまり、20GByte残っている。
 1/3入れるのに30分掛かるということは、あと2/3入れるのに単純計算で1時間は掛かるだろう。
 つまり、インポートの制限時間である23時30分に間に合わない。

(やばい......)

「どうしたの?」

 渚沙が作業の手を止め、凍り付いたように固まった幸一郎に声を掛けた。

「やばいです......」
「え? うまくいってるじゃない?」
「そうなんですが......このペースだと制限時間に間に合わないんです」

 石川に何度も電話しているが、スマホの電源自体が切れているようで繋がらない。

「速くすることは出来ないの?」
「一度実行してしまったらもう......」

 不穏な空気を感じ取った吉田課長が声を掛けて来た。

「それは......まずいな......」

 幸一郎から話を聴いた吉田課長は天を仰いだ。
 蛍光灯の白い光が目に入ったのか、眼を閉じ顔をしかめた。
 渋い顔をしているのは眩しいからというだけでは無いだろう。
 このまま24時までにインポートと動作確認が終わらなければ、自分のプロジェクトが解散してしまう。
 定年までの自分の身の振り方を考えなければならない。
 ディスプレイにはインポートが順調に進んでいることを示すかのようにスラスラと状況が表示されている。
 だが、このままでは時間が足りないのだ。

「まだ家のローンが......娘の学費が......」

 弱弱しくそう呟くと、サーバ室をふらつきながら出て行った。
 会議室にいる楠木部長のところにでも行くのだろうか。

「毛利くぅ~ん」

 幸一郎は涙声で毛利の名を呼んだ。
 渚沙は不思議そうな顔をした。
 何故、幸一郎がここで毛利に助けを求めているのか不思議なのだろう。
 業務の打ち合わせから抜け出した毛利が幸一郎のそばまで来た。

「ギブアップですか?」

 毛利は周りに聞こえないくらいの小さい声で言った。

「ま、間に合わない......」
「じゃ、赤江課長に連絡しましょう」

 赤江課長とその仲間たちに助けを求めるということは、このプロジェクトが彼らに巻き取られるということだ。
 それは吉田課長チームの解散を意味する。
 そして小山の戻る場所が無くなることも意味していた。

(助けを求めても、タイムアップでも、どちらにしろプロジェクト解散なんだ。なら、自分で何とかするしかない)

 幸一郎は悪魔に一瞬でも助けを求めたことを恥じた。

「自分で何とかする!」

 幸一郎は毛利にそう言うと、ディスプレイに向き直った。
 だが、どうすればいいかといった術は、この時点では思い付いていない。

(がんばれ、がんばれ......)

 祈り続けた。
 新人の頃、派遣先のプロパーからこう教わったことがある。

---------------------------------------------------------------------
「コンピュータの中には小さなおじさんが沢山いるんだよ」
「へえ」

 プロパー氏は自分のパソコンを指さしてそう言った。

「その小さいおじさんたちは、えっちらおっちらコンピュータの中で頑張ってるんだよ」
「ほう」

おじさん.jpg

「で、こうやってバッチを掛け流した状態で帰る。すると、おじさんたちが頑張って朝までに終わらせてくれるんだよ!」

 プロパー氏と幸一郎は帰る方向が一緒だった。
 年が近く話が良く合う二人は、バッチをそのままにして一杯飲んで帰ったのだった。
 翌朝。
 バッチは終わっていなかった。
 コンピュータが長時間触れられずにいたため省電力モードに突入していたのが原因だった。
---------------------------------------------------------------------

(がんばれ! 小さいおじさん!)

 おじさんを神に見立てていた。
 幸一郎は神頼みならぬ、おじさん頼みを試みていた。
 端末が省電力モードにならないようにマウスを左右に動かし続けた。

「祈ってても終わんないでしょ! どいて!」

 渚沙は幸一郎をどかすと、TeraTermを起動しデータベースサーバ一号機に接続した。
 そして、nmonコマンドを実行した。
 データベースサーバ一号機のCPU、ディスク、メモリなどの各リソースを確認している。

「うーん、何がボトルネックなのかが分かんないわね......。CPUも遊ぶこと無く動いてるし、ディスクの書き込み待ち、読み込み待ちも無いし......」

 サーバに異常が無いということは、ただ単に幸一郎のインポート時間見積もりが甘かっただけ、ということなのだろう。
 ダンプの中のデータ量や内容、そして環境によってインポート時間は異なるのだ。
 そこの考慮が欠けていたのだ。
 サーバとしてはしっかり仕事しているが、これでは制限時間には間に合わない。

(くっ......)

 幸一郎は苦悩し、喘いだ。
 あともう少しなのに。
 その時、サーバ室の扉が開いた。
 吉田課長が戻って来たのかと思い、幸一郎は顔を上げた。

「あ」

 幸一郎は指さしたまま固まった。

「よう」

 小山が手を上げ、こちらに近づいて来る。

つづく

Comment(2)

コメント

VBA使い

>お客に貸しが出来た楠木部長は
「借り」では?

読んでて、最後に小山が出てきた時、からっからに喉が乾いてるときに、美味しい水を飲んだ感じがした。

湯二

VBA使いさん、指摘ありがとうございます。

確かに、借りが出来てますね。
修正しました。
この小説、借りとか貸しとかがいっぱい出て来て、書いてる本人も時々こんがらがります。

>からっからに喉が乾いてるときに、美味しい水を飲んだ感じがした。
砂漠に缶コーラってやつですね。
このまま一気に終わらせたいものです。

コメントを投稿する