web-dev-qa-db-ja.com

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

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

そのための最良のツールは何なのか分かりません。誰かアドバイスがあれば...

前もって感謝します。

12
user1260928

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

mysqldump.shファイルを作成します

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

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

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

スクリプトをテストします

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

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

29
Eduardo López