オラクルをシェルとクロンで動かすレポート
Linux+Oracleのシステムで、
DBデータを自動的に変更・削除するシステム すぐに作れますか? 簡単そうですが、意外と難しいですよ。 実際の現場では、 DB(Oracle)のデータを毎日自動的に削除・更新・挿入する必要がありますね。 例えば、ログデータや履歴データの(論理)削除など。 そんなDB(Oracle)への 自動バッチ処理を速攻で作り、アナタの技術を向上したいなら、 この手紙を読み進めてください。 「プロシージャ+シェル」で楽勝と思いました 私がこの課題を与えられた時、はっきり言って楽勝かなあと思いました。 すぐに、こんな3ステップのイメージがわきましたから。 1.PL/SQL(プロシージャ)でDB処理を行う 2.プロシージャをシェルで呼ぶ 3.シェルをCRONに登録する まずは試しに、データをアップデートするサンプルプロシージャを作ってみました。 ↓のような感じです。
で、このような(サンプル)プロシージャを呼ぶシェルを作って、 適当に加工すれば、なんとかなるだろうと思ったのです。 しかし・・・・甘かった。 この後、私は一気に ドツボにはまりました。 何故なら、問題が次から次へ出てきたからです。 そこでアナタにもお聞きしたいのです。 アナタは、以下の疑問に答えられますか? Q1:シェルからプロシージャをどうやって起動する? プロシージャはできました。 でも、これをシェルからどうやって起動するのでしょうか? まあ、知っている人には簡単でしょうが、ちょっと調査が必要でしょう。 私は、30分ほど悩みましたが、まあ、なんとか出来ました。 Q2:エラー(ORA-XXXXX)をどうやって捕捉する? ほっとしたのも束の間です。次の疑問がわきました。 もし、プロシージャにエラーが発生した場合はどうするのでしょうか? 当然ですが、(メインプログラムの)シェルで、エラーを捕捉する機能が絶対に必要ですね。 さて、アナタは、どうしますか? Q3:エラー発生時にログを残せる? (メインプログラムの)シェルで、エラーを捕捉した場合は、障害対応したいですね。 しかし、そのエラーメッセージが何も残ってないと、どうしようもないです。 エラーメッセージをログに残す機能、アナタはすぐに作れますか? Q4:パラメータがある場合は、どうする? ところで、上で示したプロシージャのサンプルは、パラメータがありません。 でも、通常はプロシージャはパラメータを持ちます。 アナタは、パラメータつきのプロシージャをシェルからキックする方法を知っていますか? Q5:プロシージャが削除されてしまったら? このシステムは、メインがシェルでサブがプロシージャになります。 プロシージャが存在しないような異常事態(削除されたしまった等)でも、 きっちりとシェルで捕捉し、ログに残す機能、アナタはすぐにできますか? Q6:そもそもDBが落ちているときは、どうするのか? さらに、もっと異常事態も想定しておきましょう。 DB(Oracle)が起動していない、DB側の電源が落ちている、そんな場合です。 この異常事態、ログに残す機能を、アナタは作れますか? Q7:Cronで動きますか? 上記のような問題を解決して、初めて実際に使えるシステムになります。 でも、最後の難関があります。 一般的に、シェルは手動で動いても、日次バッチ(Cron)では動くと断言できません。 (いや、たぶん動かないでしょう) 何故なら、シェルにはOracle用の環境設定が必要になるからです。 この環境設定はどうするのか、アナタはご存知ですか? 実際に現場で使い、お客さんに納品するシステムなら、 上記のQを全部解決する必要がありますね。 私は、3日間試行錯誤して、 上記のQを全て解決しました。 そのレポートを今からご提供いたします。 もちろん、アナタがご自分でシェルをパッパと書けるなら必要ありません。 ですが、そうでなければ、「あーだ」「こーだ」やって作るよりも、 手に入れておいて使ったほうが絶対にいいです。 時間も節約できますし、技術力の向上にもなります。 システムに関わっているなら、いつかは必要になります。 ということで、 興味のある方は、↓の説明をよくお読みください。 アナタにお届けするレポートの説明 提供ファイルは5つです 今回、アナタにお届けするファイルは、以下の5つです。 ・dept_in.sh ・common_func.sh ・dept_in.sql ・create_dept_table.sql ・使い方説明書.PDF dept_in.sh がメインのシェルです。 このシェルが、共通関数(common_func.sh)を使って実行される。そんな形になります。 dept_in.sql は、dept_in.sh に呼び出されて実行されるプロシージャです。 このプロシージャは、Oracle 側にセットされます。 create_dept_table.sql は、dept_in.sql を実行するために必要なテーブルを作成します。 このように、テーブル作成文、プロシージャ、シェル、共通関数が、一つのセットになっていて、 説明書.PDFで使用方法を解説しています。 使い方説明書の目次です まず手動で動かす 上記目次に従って、まずは実際にアナタの環境でプログラムを動かします。 テーブル作成文、プロシージャ作成文、初期設定変更、ほとんどコピペで動きますので、 Linux+Oracle環境があれば、5分で実行できます。 この作業を手動で行うことで、アナタは基本を理解できます。 Cron(自動バッチ)でも動かしてみます 手動で動かした後は、Cron(自動バッチ)で動かしてみます。 もちろん、この説明も以下のように例をあげて説明しているので、基本的にはコピペでOKです。 説明は図解していきます 説明にあたっては、 図、コマンド、ソース、実行結果、テーブルのデータ変更点を図解してみました。 ↓のようなかんじで解説していますので、わかりやすいです。 エラーをわざと発生させます 正常の動作を確認した後は、 わざとエラーを発生させています。エラーを発生させる手順も説明してあります。 エラー発生時の対処をリアルに理解できます。 応用すれば必ず現場で対応できます 一通りの動作、エラー発生を確認した後は、応用編に入ります。 別プロシージャを呼ぶには? パラメータを変更するには? プロシージャのメッセージを取得するには? 提供したサンプルファイルを基にすれば、アナタには必ず現場で応用できる実力がつくことでしょう。 こんな場合は、まだ無理かも ちなみに、もしアナタの技術が以下のような場合は、 まだ「今回のご提供レポート」を使いこなすことは無理かなあと思います。 Linuxコマンドを全く知らない もし、Linuxコマンドを全く知らない状態でしたら、使いこなすには大変です。 私も、Linuxコマンドをある程度知っていることを前提に書いています。すみません。 ちなみに、コマンドは知っているがシェルは全然書けないなら、大丈夫です。 レポートにきっちりとシェルが書いてあるので、しっかりコピペだけできれば動くからです。 SQLを全く知らない DB(Oracle)の検索(select)、挿入(insert)、削除(delete)、更新(update)を 全く知らない状態だと、無理です。せめて、この4つのSQLは覚えておきましょう。 ちなみに、プロシージャは作成できなくても、大丈夫です。 レポートにきっちりとプロシージャが書いてあるので、しっかりコピペだけできれば動くからです。 まあ、突撃してみるのも手です もしアナタが、「Linuxコマンド」「SQL」を全く知らないなら、ご遠慮したほうがいいと述べました。 でも、知らなくても無理やりレポートに沿って勉強してしまうのも手です。 わからないところを片っ端から勉強してしまえば、 最初は苦しいかもしれませんが、必ず身につきます。短時間で技術が向上します。 まあ、人間はムチャやったほうが成長すると思いますが、 そのへんはアナタの感覚でお考えくださいね。 私も、アナタの感覚には責任はとれないですが、(笑)、 もし、アナタにこのレポートが全然あわなかったら返金はできますので、 存分に突撃してみてください。 結局、こんなメリットもあります 色々と説明してきましたが、結局のところこんなメリットもあるでしょう。 <Linuxコマンドが少しできるのにシェルが全然書けないなら・・・ <SQLが少しできるのにプロシージャが全然できないなら・・・・ <手動で動かしたシェルが何故かCronで動かない・・・・ <DB(オラクル)のヘルスチェックやってくれ・・・ <上司に同じような仕事を頼まれたら、・・・・ システムに携わっている限り、DB自動実行の仕事は必ず発生します。その時アナタはチャンスです。待ってましたとばかりに、この仕事を引き受けましょう。はっきり言って楽勝で終わります。時間が節約できるので、3日休んでもおつりがきます。 <未熟な後輩に渡しても・・・・ <アナタが教育担当になったとしても・・・・ レポート内容の保証 以上のようなレポートになります。 私は、アナタにとって役に立つレポートになると思います。 しかし、最終的に 役に立つかどうかを決めるのは、アナタです。 (もし、アナタの役に立たないのに、代金をいただくのは、私の本意ではありません。) 従って、このレポートは、 6ヶ月の完全返金保証を行います。 6ヶ月間、いつでも返金要求できます。 返金要求方法は簡単です。アナタが 気にいらない場合は、申込されるとメールが届きますので、 そのまま返金要求してください。 謹んで返金させていただきます。 では、お値段です。 オラクルをシェルとクロンで動かすレポート 6,000円です。 たぶん、私のように3日間悩みそうだったら購入されたほうがいいです。 お申し込みはこちらです。 <カード決済>か<銀行振込>どちらかでお申込みください。 <カード決済>今すぐレポートをダウンロードできます。
<初めての場合> <パスワードをお持ちの場合> <銀行振込>入金後(48h以内に)レポートを送ります。
銀行振込み口座は下記に登録したメールアドレスにお送りします。お申込み後、5日以内にお振込みください。 追伸 後悔しないためのポイント Linux+Oracleのシステムに関わっていたら、このシェルは必ず必要です。 何故なら、上記のような要件で本気でつくるとなると、 1日や2日どころか、テストまで含めたら1週間くらいかかります。 たぶん、「シェルでDBを叩けばいいんだろ」くらいに考えていると痛い目にあいます。 私もそうでした(苦笑)。 そりゃ、正常系では(簡単に)動くのでしょうが、 異常時(特にDB側で発生したエラーメッセージをシェル側で捕捉する)の対処方法は、 なかなか難しいです。 そのへんのシェルをしっかりできるのか? 何時間かかるのか? その辺が、このレポートをおとりよせする目安になると思います。 もし自信が無ければ、このレポートを手に入れた方が効率的ですし、 時間も努力も節約できます。 言葉は悪いかもしれませんが、時間を多少のお金で買って頂ければ、という感じです。 もし、「そのくらいのシェル、自分で書ける」と思われたり、 他の参考書のほうが優れていると感じる場合は、 購入しないほうがいいかもしれません。 もちろん、私がどのようなシェルを書いているかを勉強したい場合は、 おススメですからね(笑)。 アナタ自身の状況に応じてご検討くださいね。 では、またお会いしましょう。 ありがとうございました。 サーチマン佐藤 特定商取引法の表示 |