質問: ### 前提・実現したいこと DB定期バックアップの最適な方法が知りたいです。 当方ポータルサイトを複数管理する業務を半年ほど前から行っております。 前任者から引き継いだ際、ソースコードのバックアップに関しては口酸っぱく言及があったのですが、DBのバックアップに関しては言及がありませんでした。 今までバックアップとってたのかもよくわかりません。 サイト運用は5年以上はしてるようなので、何もしてないことはないと思うのですが、、 DBについて色々調べたところシェルを作って定期的に自動バックアップとれる方法(mysql の定期的なバックアップ)が多かったのですが、これが一般的な方法なのでしょうか? また上記の方法であれば、「事前準備(バックアップ保存用ディレクトリの作成)」とは、サーバ上ディレクトリに「/backup/mysql」を作成すればよいのでしょうか? 管理してるサイトは1つが、 ・MySQL(phpMyAdminからしか触ったことありません) ・テーブル数14 ・カラム数最大50 ・レコード数最大数千 です。 そのほかに7サイトから参照されているDBがあり、そちらは ・PostgreSQL(phpPgAdminからしか触ったことありません) ・テーブル数数百 ・カラム数最大100程度 ・レコード数最大数千 です。 全サイト共通 ・サイトはphpで実装 ・サーバは業務用レンタルサーバ(MySQL使用のデータベースのみ異なるサーバ。他の7サイトは同一のサーバで各々別アカウントにてサーバを借りている) どのように定期バックアップをとるのが最適でしょうか? 当方、学校などでITを学んだこともなく、実務経験も1年程度ですが、前任者は1カ月の引継ぎ後退職、自分以外にプログラマやSEなどは社内におらず、相談したり一般的なエンジニアの見解を聞ける先輩などいません。 自分でも調べてはいるのですが、右も左もわからなすぎるのと諸事情で作業時間もあまりとれないため、調査の方向性だけでも(検索キーワードだけでも)教えていただけると助かります。 宜しくお願い致します。
回答: 大抵のDBにはdump(MySQLであればmysqldump)コマンドが準備されているので 参考先の記事のように定期にコマンドを実行するプログラムを用意しておけば良いでしょう。 > > 、「事前準備(バックアップ保存用ディレクトリの作成)」とは、サーバ上ディレクトリに「/backup/mysql」を作成すればよいのでしょうか? > > > そこは決め方次第かと。 ブラウザから参照できないディレクトリであれば良いですし、 ただ、サーバーも容量が無限ではないので可能であれば別途ミラーサーバーなど用意しておいてそちらにバックアップを保管するとかですかね。 もちろんミラーサーバー用意しても有限なので、バックアップの保管期間はルールとして設けておいたほうが良いと思います。 が、 > > 前任者は1カ月の引継ぎ後退職 > > > 前任者から何も聞いていないのでしょうか? 仰っているように、何もバックアップを取らずに運用していくというのは通常ありえません。 システム運用していくうえで何も問題が起きないまま過ぎていくというのはありえませんので、何かあったときにある地点の状況に戻せるようにしておく必要は必ずあります。 (ISMSでも「データバックアップ体制の構築」は謳われています。もちろんISMS取得目指さないからってやらなくていいってわけではないですが) そこは前任者やかかわったことのあるメンバーに確認をしたほうが良いと思います。 なぜかというと、ここで得られた情報がそのままそちらに合うとは限らないからです。何かしらルールもあるかもしれません。 質問者さんの状況からルールを決められる立場にはないと思うので、その立場の人に確認できるようであれば確認してください。 ※DBバックアップが質問の入りなので冒頭はDBについて書いていますが、ソースコードやファイル(画像など)も「変化」があるものなので、ここでの「データバックアップ」は「ソースコードやファイル含めて全て」と捉えてください