** 意図しないデータの削除経験(QiitaEngineerFesta2024)**
しくじりエンジニアとして、あるある(?)のデータ削除経験を投稿します。
・目次
1.事象
2.原因
3.解決方法
4.対策
1.事象
初歩的なミスですが、where文を付けずにdeleteを実行してしまいました。。。
・本来実行すべきクエリ
DELETE FROM [テーブル名] WHERE [カラム] = ''; --条件一致データのみ削除
・誤ったクエリ
DELETE FROM [テーブル名] ; --全件削除
2.原因
簡潔にまとめると確認不足ですが、詳しく原因分析を行います。
▼技術的要因
・バックアップの不足
・リカバリメカニズムの不備(トランザクションログの管理)
▼ヒューマンエラー
・確認不足
・誤ったSQLクエリ
▼プロセス・手順の問題
・手順の欠如
3.解決方法
バックアップを実行しておらず、自動コミット設定だった為データの復旧ができず、
1からデータを作り直しました。。
4.対策
▼技術的要因
・バックアップの不足
→DBバックアップを定期的に行い、復元可能にする。
また、復元手順を定期的に確認しておく。
・リカバリメカニズムの不備(トランザクションログの管理)
→トランザクションログを管理、確認できるようにしログから復元可能な状態にする。
→クエリ実行時にトランザクションを記録し、自動commitを使用しない。
▼ヒューマンエラー
・確認不足
→事故意識の欠如。 改めて意識して作業を行う。
・誤ったSQLクエリ
→DELETE文作成、実行時の注意点を理解する。(WHERE文を先に書く、など。)
▼プロセス・手順の問題
・手順の欠如
→DELETE、UPDATE等のデータ更新時は指差し確認を行なう。
以上