Ubuntuでのmysqlの自動バックアップ


12

Mysql daatabaseを備えたUbuntuサーバーがあります。夜中に別のサーバー(たとえばovh)でこのデータベースの自動バックアップを設定したいと思います。

それに最適なツールは何なのかわかりません。誰かアドバイスがあれば...

前もって感謝します。

回答:


29

このタスクを自動化する最も簡単な方法は、MySQLダンプとcronjobの組み合わせです。このトピックに関する多くの情報は、このサイトおよび他のインターネットサイトで見つけることができますが、完了のためです。

mysqldump.shファイルを作成する

これには、cronジョブでスケジュールするmysqlダンプコマンドが含まれます(ユーザー、パスワード、およびパスを環境に合わせて置き換えます)。

mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz

編集:スクリプトでバックアップをリモートの場所に保存する場合は、対応するデバイスまたは共有をマウントし、スクリプトでマウントパスを使用します。

スクリプトをテストする

スクリプトに実行権限があることを確認します。

chmod +x /path/to/mysqldump.sh

スクリプトを実行します。

sh /path/to/mysqldump.sh

そして、それが正しく機能していることをテストします(バックアップファイルは指定されたバックアップフォルダーに作成されます)。

新しいcronジョブを作成してスケジュールする

コマンドプロンプトで次を入力します

sudo crontab -e

そして、ファイルの最後に次の行を追加します。

30 23 * * * /path/to/mysqldump.sh

これにより、毎日23:30にスクリプトが実行されます。

この単純なスクリプトを拡張する

この単純なバックアップ方法を改善するためにできることは、文字通りたくさんあります。

  • 別のシステムへのバックアップ
  • ディスク容量を監視する
  • メールレポート
  • ...

ここで終わらせて実験しないでください!:-)

バックアップツールまたはクラウドベースのバックアップサービスを使用する

上記の方法は最も簡単な方法の1つであり、特定のニーズに合わせて拡張することができますが、他の選択肢があることに言及する価値があります。

  • バックアップの電子メール通知、圧縮、暗号化、ローテーション、およびタイプ(たとえば増分)の構成プロセスを容易にする可能性があるオープンソースアプリケーションであるAutoMySQLBackupなどのバックアップツール。Mai 2018に関しては、APTを通じてUbuntu Serverで利用可能です。
  • BackupBird、myRepono、Bitcanなどのクラウドベースのバックアップサービス。複数のデータベースサーバーを管理し、それらのすべてのバックアップを集中管理したい場合に興味深いかもしれません。

上記のソリューションやサービスとは一切関係がなく、参考のためにリストしているだけなので、ご自身の責任で使用してください。

便利なリンク/リファレンス:

Cron-> https://en.wikipedia.org/wiki/Cron

MySQLダンプ-> https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html


4
使用date +%F-ユーザーのロケールに適した年+月+日付の組み合わせを自動的に選択します(たとえば、を取得しますYYYY-MM-DD)。
ムル

ああ、はるかに良い。答えを編集します:-)
エドゥアルドロペス

+1良い答え:ここで何が必要か、それ以上でもそれ以下でもありません。
ジョス

2
sudoを使用してこの操作を行う必要がある場合(a)呼び出しsudo crontab -e、スクリプトを実行可能にすることを忘れないでください:chmod +x /path/to/mysqldump.sh
zinon

zinon-ヒントをありがとう!答えを更新しました。
エドゥアルドロペス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.