こ、こんばんわ
私は客先でオブジェクトブラウザ(OB)を使って仕事している
新米SEです。
今日OBを使って本番データを操作していたところ、
あやまって一テーブルのデータを全件削除してしまいました。
すぐに気づいて青くなり、気を落ち着けて慎重にロールバックボタンを押したところ、
全データ復活しました。
消えている間そのテーブルに関するバッチプログラムも動いていません。
なので、特に報告もしなかったのですが、
今日のこのミスは報告しなくてもよかったんだろうか
といまさら悩んでいます、、。
いったんデリートしたという事実はアーカイブログかなんかで
わかるんですよね?
ウツです。。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
>いったんデリートしたという事実はアーカイブログかなんかで
わかるんですよね?
アーカイブログでも分かりますが、SQL監査(audit)を有効にしていると、詳細に記録が残ります。本番DBということであれば恐らくある程度の監査をかけているのでは?と思います。
(ロールバックしても記録が残ります)
仕事での出来事はちゃんと報告をしましょう。
隠しても何もよいことはありません。きちんと報告をして次への対策を上司を練ってください。そうすれば、ミスを責められることよりも、むしろ信頼を得る結果になると思います。
逆に、黙っていて監査ログを確認されたら・・・、非常によろしくありません。
本番環境でのデータ更新作業は、
・事前バックアップを取る
・作業のログを取る
・作業内容の手順書やスクリプトを事前に作成し、関係者でレビューする
ということをぜひ行ってください。
いまこういうことが行われていないなら、ぜひ提案しましょう。
「急いでいるから」というのは、スピード違反で事故を起こすようなことになるので、大事件が起こる前に改めましょう。
本番での作業準備や作業に十分な時間を与えられないなら、上司に必要性を強く訴えましょう。
No.4
- 回答日時:
アーカイブログ上には記載されているので、ログマイナで調査すれば分かります。
あとは、監視ツールを入れているとSQLを監査されてしまうかもしれません。以前、PISOを使ってマスタテーブルに対するSQL監査を仕掛けていて、無断でUpdate文を流したのを検知されて怒られたケースは見たことがあります。
http://www.insight-tec.com/products/service_piso …
あと意見としては、復旧できる準備がない作業は行わないのが基本です。
作業前にはバックアップをとりましょう。
厳しいシステムでは本番機を触る場合、以下が基本でした。
・データの変更はテスト機でスクリプトとして開発する。
・本番機では上記のスクリプトを実行する。
・スクリプト実行も手順書化しておき確認された方法でしか本番機を触らない。
・手順書を実行する時は複数人でチェックを行う。
・本番データを触る場合はバックアップを取る。
報告云々ですが、次に起こった際に復旧できない可能性を考えると
再発防止策はたてるためにも報告はしたほうがよいと思います。
まあ、報告の仕方にもよりますが作業に不安をかかえておりミス時のリカバリー方法を検討してもらうようにはした方がよいと思います。
No.3
- 回答日時:
ま、とりあえず報告だけして、ごめんなさいして、
後は上司に責任(リカバリー)を取ってもらいましょう。
それが上司の仕事なので。
ま、オブジェクトブラウザーで、発生した問題は、
Oracle社非サポートなんですけど、
とりあえず、やった内容を正確(どんなSQLを実行したかとか。)に
上司につたえれば、上司なら対応考えてくれるはずです。
顔が青ざめるような失敗はDBAなら誰でも経験することです。
逆に失敗を経験していないDBAの方が怖いです。
なので、一つ成長し、良い経験をしたと思って
その場を乗り切りましょう。
1年もすれば、やってしまった失敗なんて、
そんなこともあったな程度の内容になるので、
そんなに落ち込むことはないです。
大丈夫。頑張れ!!
No.2
- 回答日時:
まずは技術的な面を。
ORACLEは、通常COMMIT(かROLLBACK)するまで、他セッションからは更新前のデータしか参照できません。
※そのテーブルに関するバッチプログラムも動いていません
に関して。
が、それはあくまで通常の話です。
ObjectBrowserは便利なツールです。下の画面に表示されているデータを修正した場合、カーソルを他行へ移すと、確か自動的にCOMMITがかかったと思います。
新米SEであれば、ObjectBrowserでデータを更新するような作業はやめておいた方が良いと思います。
基本は、SQL*PlusでSQL実行です。
御回答ありがとうございます。
僕のような不注意でスキルの低い奴が、
OBで本番データをさわることじたいほんとどうかと思うんですが、
どうすれば人為ミスを回避できるのか、もししてしまった場合は・・?
ということから逃げてはいけないですよね。
SQL*Plusについて、もちろん知ってはいるのですが
それを使って作業することはあまりありません。
ミス回避につながるということなので、これから勉強しようと思います。
No.1
- 回答日時:
20年のDB技術者です。
その気になって調べれば分かりますが、まぁ殆ど分からないですよ。
ただ、報告しないのはアウトです。貴方は元に戻ったと思っていても、本当に戻っていると確信できるのでしょうか。
どのような設計になっているかは不明ですが、その時点で報告すれば完全に復活できたものを、見逃してしまった可能性は0ではありません。
それとテーブルを全て消してしまうという事は、delete文のwhere句に不備があったのだと思いますが、ObjectBrowser上でSQL文を書いて実行するのは私のチームではご法度です。あれはあくまでも管理用ツールなので、データを扱う時は、必ずsql用ファイルを作成し、検証後に実行しましょう。
御解答ありがとうございました。
>ただ、報告しないのはアウトです。貴方は元に戻ったと思っていても、本当に戻っていると確信できるのでしょうか。
>どのような設計になっているかは不明ですが、その時点で報告すれば完全に復活できたものを、見逃してしまった可能性は0ではありません。
ですよね。
もう本当ごめんなさい!と心の中で思うしか僕には・・・
>それとテーブルを全て消してしまうという事は、delete文のwhere句に不備があったのだと思いますが、ObjectBrowser上でSQL文を書いて実行するのは私のチームではご法度です。
>あれはあくまでも管理用ツールなので、データを扱う時は、必ずsql用ファイルを作成し、検証後に実行しましょう。
未然防止は意識しているところなのですが、
期限が迫っていると利便性を優先している自分がいます。
私のチームではあくまでも個人の注意力に任されてまして、、、。
取り返しの付かないミスを想像するとそれだけで、
不安でいっぱいになっていまいます。
仲間が平然とデータを扱っているのに対し、
どこか抜けている私は常に今日のような不安につつまれている状態です。。
そしてちょっと気が抜けたとき、今日のようなミスを・・・あぁ・・・
実は皆さんもそうなんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- iPhone(アイフォーン) iPhone SE 3 Google アカウントの削除で保存したデータは全て消える? 1 2023/03/06 11:48
- iPhone(アイフォーン) AppleID 1 2023/06/12 13:59
- その他(クラウドサービス・オンラインストレージ) 個人情報保護の件 1 2023/05/18 12:19
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- 会社・職場 出張中に、 会社の後輩に大切なデータを削除されました。 私は部内リーダーです。 無いと気付いた際に部 7 2023/03/01 19:49
- その他(法律) 携帯電話会社に保管されている解約済み個人情報を消去したい 3 2022/08/13 23:23
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- ハッキング・フィッシング詐欺 スマホアプリのトラッキング 個人情報について 5 2023/03/31 08:16
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Oracleで上書きImportはできま...
-
CONNECT BYに関して
-
ビューのソートについて
-
このISAMでは、リンクテーブル・・
-
同一テーブルのデータを参照し...
-
ORA-01401が表示され、データが...
-
Accessのテーブルデータを一気...
-
accessでレコード更新直後の反...
-
left joinなどで結合対象のレコ...
-
SQL Server に画像を登録
-
テーブルで一番古いレコードだ...
-
アクセス レコードセットを更...
-
仕事のミス:本番データの削除→...
-
PostgreSQLのパフォーマンスに...
-
MySQLのDB内容をWEB上に表示す...
-
mysqlへの書き込みがリロードす...
-
ERROR1062:Duplicate entry.......
-
データベースのテーブル設計に...
-
IF NOT EXISTを使用するINSERT文
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Accessのテーブルデータを一気...
-
Oracleで上書きImportはできま...
-
テーブルで一番古いレコードだ...
-
アクセス レコードセットを更...
-
ビューのソートについて
-
住所のDBテーブル、マスターの...
-
同一テーブルのデータを参照し...
-
マテリアライズドビューとスナ...
-
PostgreSQLでテーブル構成を変える
-
ORA-01401が表示され、データが...
-
結合テーブルでINSERTする方法...
-
構文エラー : 演算子がありませ...
-
このISAMでは、リンクテーブル・・
-
accessでレコード更新直後の反...
-
MS Accessを共有した際にファイ...
-
IF NOT EXISTを使用するINSERT文
-
Accessでの稼働日数計算の方法
-
処理の途中で停止させ、再開さ...
-
データベースの構造について
おすすめ情報