CodeGym /コース /SQL SELF /バックアップ(バックアップ)の導入

バックアップ(バックアップ)の導入

SQL SELF
レベル 43 , レッスン 0
使用可能

さてみんな、またまた面白い話の時間がやってきたよ。冗談抜きで!自分のデータベースが大事な情報が詰まった本だと想像してみて。もしその本のページをうっかり破っちゃったり、ドラゴン(もしくはハードディスクが「今こそ壊れるタイミングだ!」って思っちゃったり)に燃やされたらどうなる?現実でもファンタジーでも、情報は消えちゃうよね。そんな時に助けてくれるのがバックアップ、つまりデータの「命綱」なんだ。

バックアップ、つまり簡単に言うとバックアップを作ることは、データを別のファイルや場所に保存しておいて、もしもの時に復元できるようにするプロセスだよ。

バックアップは「何かあった時」の保険みたいなもの。ハードやソフトの障害からデータを復元したり、うっかりDELETEWHEREなしで実行しちゃった時のリカバリ、さらに開発環境から本番環境への移行にも使える。あと、古いデータを「念のため」や履歴用にアーカイブする時にもよく使うよ。バックアップがなかったら、いざという時に何も残らないかも。

データ損失のリスク

じゃあ、実際にどんな危険がデータを消しちゃうのか話そう。これ、マジで怖いから!データベース管理者なら誰でも冷や汗かくような例をいくつか挙げるね:

ハードウェア障害。 ハードディスクは壊れるし、USBはなくすし、サーバーは時々「永遠のバカンス」に出ちゃう。

ユーザーのミス。

たとえば開発者がうっかりこんなクエリを実行しちゃう時:

DELETE FROM 学生;

WHEREを使わずにね。おめでとう、全学生データが消えたよ!(データベースの学部長じゃなくてよかったね)

悪意ある攻撃。
ハッカーがシステムを攻撃して、データを暗号化したり消したりすることもある。

自然災害。
映画みたいだけど、地震や洪水でサーバーが壊れることもあるんだ。

そして、安心感ってやつは何度あっても困らない。一度バックアップをちゃんと設定しておけば、あとでドラゴンにデータを返してもらおうと必死になるよりずっとマシだよ。

バックアップの主な利用シナリオ

バックアップがなぜ必要か分かったところで、実際にどんな時に役立つのか見てみよう。

障害後のデータ復元

普通に作業してたら、突然全部落ちた――データベースもサーバーもネットも。障害発生!バックアップがなかったら、最後にデータを保存したのがいつだったか思い出すしかない。でもバックアップがあれば、すぐにシステムを復元できる。たいていは障害直前のデータコピーを使うよ。例えば:

  • サーバー全体の障害。 バックアップからデータベース全体を復元する。
  • 特定テーブルの破損。 必要なテーブルだけ復元する。

サーバー間のデータ移行

例えば、データベースを別のサーバーに移したい時――ハードをアップグレードしたり、新しいサーバーをセットアップしたり。そんな時もバックアップが大活躍。古いサーバーでコピーを作って、新しいサーバーで展開するだけ。

データベースのバックアップを作るコマンド例:

pg_dump -U postgres -d 大学 -f 大学_バックアップ.sql

このコマンドは大学データベースのバックアップファイルを作って、他のサーバーで復元できるようにするよ。

長期保存用のデータアーカイブ

たまに、後で分析したり履歴として残したいデータがあるよね。例えば、過去10年分の注文データを一番古いものからアーカイブして、メインのデータベースの容量を空けるとか。

こうすることで:

  • メインのデータベースの動作が速くなる。
  • いつか必要になるかもしれない大事な履歴データを保存できる。

バックアップが助けてくれたリアルな例

バックアップの大切さが分かるリアルな話をいくつか紹介するね:

ハッカー攻撃からの復旧。 ある会社がランサムウェアで全データを失ったことがあった。でも前日に取っておいたバックアップだけが救いだった。攻撃の被害は2時間のダウンだけで済んで、ビジネスは守られたよ。

開発者のミス。(開発者だってミスするんだよね?)ある学生が卒論データのテーブルを消しちゃった。でもバックアップがあったおかげで、10分で全部元通り!

今回はここまで。これでバックアップがなぜ必要か、どんなリスクを防げるのか、どれくらいの頻度で作ればいいのか分かったよね。次のレクチャーではバックアップの種類についてもっと詳しく解説するから、自分の目的に合った方法を選べるようになるよ。じゃあ、また次のレクチャーで!

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION