MySQL スケジュール データベース バックアップ (フル データベース バックアップ) の実装

MySQL スケジュール データベース バックアップ (フル データベース バックアップ) の実装

1. MySQLデータのバックアップ

1.1、データをバックアップするためのmysqldumpコマンド

MySQL には、コマンドラインからデータベースのデータとファイルをエクスポートするための便利なツール mysqldump が用意されています。コマンドラインからデータベースの内容を直接エクスポートしてダンプすることができます。まず、mysqldump コマンドの使い方を簡単に見てみましょう。

#MySQLdump よく使われる mysqldump -u root -p --databases database 1 database 2 > xxx.sql

1.2、mysqldumpの一般的な操作例

1. すべてのデータベースのデータと構造をバックアップする

mysqldump -uroot -p123456 -A > /data/mysqlDump/mydb.sql

2. データベース全体の構造をバックアップする(-dパラメータを追加)

mysqldump -uroot -p123456 -A -d > /data/mysqlDump/mydb.sql

3. すべてのデータベースデータをバックアップする(-tパラメータを追加)

mysqldump -uroot -p123456 -A -t > /data/mysqlDump/mydb.sql

4. 単一のデータベース(データベース名mydb)のデータと構造をバックアップします。

mysqldump -uroot-p123456 mydb > /data/mysqlDump/mydb.sql

5. 単一データベースの構造をバックアップする

mysqldump -uroot -p123456 mydb -d > /data/mysqlDump/mydb.sql

6. 単一データベースのデータをバックアップする

mysqldump -uroot -p123456 mydb -t > /data/mysqlDump/mydb.sql

7. 複数のテーブルのデータと構造をバックアップします(データと構造を個別にバックアップする方法は上記と同じです)

mysqldump -uroot -p123456 mydb t1 t2 > /data/mysqlDump/mydb.sql

8. 複数のデータベースを一度にバックアップする

mysqldump -uroot -p123456 --databases db1 db2 > /data/mysqlDump/mydb.sql

1.3. MySQLバックアップコンテンツの復元

復元には 2 つの方法があります。1 つ目は MySQL コマンドラインで復元する方法、2 つ目は SHELL 行を使用して復元を完了する方法です。

1. システム コマンド ラインで、次のように入力して復元します。

mysql -uroot -p123456 < /data/mysqlDump/mydb.sql

2. MySQL システムにログインした後、source コマンドを使用して対応するシステム内のファイルを見つけて復元します。

mysql> ソース /data/mysqlDump/mydb.sql

2. バックアップデータベースファイルを維持するためのスクリプトを作成する

Linux では、通常、実行する必要があるコンテンツを記述するために BASH スクリプトが使用され、crontab コマンドを使用してスケジュールされた時間にコマンドを実行し、自動ログ生成を実現します。

次のコード関数は、MySQL をバックアップし、crontab と組み合わせて、過去 1 か月 (31 日間) の毎日の MySQL データベース レコードをバックアップします。

2.1. バックアップファイルの数を固定するためにBASHを書く

Linuxでは、viまたはvimを使用してスクリプトの内容を記述し、mysql_dump_script.shという名前を付けます。

#!/bin/bash

#バックアップ数を保存し、31日分のデータをバックアップします。数=31
#バックアップ保存パスbackup_dir=/root/mysqlbackup
#日付 dd=`日付 +%Y-%m-%d-%H-%M-%S`
#バックアップツール tool=mysqldump
#ユーザー名 username=root
# パスワード password = TankB214
#バックアップするデータベース database_name=edoctor

# フォルダーが存在しない場合は作成します if [ ! -d $backup_dir ]; 
それから     
    mkdir -p $backup_dir; 
フィ

# 書き方の簡単な方法は、mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql です。
$tool -u $ユーザー名 -p$パスワード $データベース名 > $backup_dir/$データベース名-$dd.sql

# バックアップ ログを作成するために書き込みます echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt

#削除する必要があるバックアップを検索します delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1`

#現在のバックアップ数が$numberより大きいかどうかを判断します
count=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l`

[ $count -gt $number ]の場合
それから
  #最も古いバックアップを削除し、バックアップの数だけ残す rm $delfile
  # 削除ファイルログを書き込みます echo "delete $delfile" >> $backup_dir/log.txt
フィ

上記コードの主な意味は次のとおりです。

1. まず、バックアップする最大番号、バックアップパス、ユーザー名、パスワードなどのさまざまなパラメータを設定します。

2. mysqldump コマンドを実行してバックアップ ファイルを保存し、同じディレクトリの log.txt に操作を出力して操作ログをマークします。

3. 削除するファイルを定義します。lsコマンドを使用して、ファイル名の列である9番目の列を取得し、

頭 -1

最新の操作時刻を持つファイルは実装によって定義されており、削除する必要があります。

4. バックアップの数を定義する: lsコマンドを追加する

トイレ -l

sql で終わるファイル内の行数をカウントします。

5. ファイルが制限を超えた場合は、最初に作成されたSQLファイルを削除します。

2.2. crontabを使用して定期的にバックアップスクリプトを実行する

LINUX では、定期的なタスクは通常、cron デーモン プロセス [ps -ef | grep cron] によって処理されます。 Cron は、コマンド ラインとそれが呼び出される時刻を含む 1 つ以上の構成ファイルを読み取ります。
cron 設定ファイルは「crontab」と呼ばれ、「cron table」の略です。

1. Cronサービス

Cron は、人間の介入なしにジョブを実行できる、Linux 上のスケジュール実行ツールです。

  service crond start //サービスを開始します service crond stop //サービスを終了します service crond restart //サービスを再起動 service crond reload //設定を再読み込みします service crond status //サービスの状態を確認します

2. Crontab 構文

crontab コマンドは、cron デーモンを駆動するために使用されるテーブルをインストール、削除、または一覧表示するために使用されます。ユーザーは、実行するコマンド シーケンスを crontab ファイルに記述して、コマンドを実行します。各ユーザーは独自の crontab ファイルを持つことができます。 /var/spool/cron 内の crontab ファイルを直接作成または変更することはできません。 crontab ファイルは crontab コマンドによって作成されます。
crontab ファイルに実行するコマンドと時刻を入力する方法。このファイルの各行には 6 つのフィールドが含まれており、最初の 5 つのフィールドはコマンドが実行される時間を指定し、最後のフィールドは実行されるコマンドです。
各フィールドはスペースまたはタブで区切られます。形式は次のとおりです。
分 時間 日 月 曜日 コマンド
有効な値: 00-59 00-23 01-31 01-12 0-6 (0 は日曜日)
数字に加えて、いくつかの特殊記号があります。つまり、「*」、「/」、「-」、「」です。「*」は値の範囲内のすべての数字を表し、「/」はすべてを意味し、「/5」は5単位ごとを意味し、「-」は特定の数字から特定の数字までを表し、「、」は複数の個別の数字を区切ります。

  • -l 現在のcrontabを標準出力に表示します。
  • -r 現在のcrontabファイルを削除します。
  • -e VISUAL または EDITOR 環境変数で指定されたエディターを使用して、現在の crontab ファイルを編集します。編集を終了して終了すると、編集したファイルが自動的にインストールされます。

3. cronスクリプトを作成する

ステップ 1: cron スクリプト ファイルを作成し、mysqlRollBack.cron という名前を付けます。
15,30,45,59 * * * * echo "xgmtest....." >> xgmtest.txt は、印刷コマンドが 15 分ごとに 1 回実行されることを意味します。ステップ 2: スケジュールされたタスクを追加します。コマンド「crontab crontest.cron」を実行します。 3番目のステップを完了します: 「crontab -l」を実行して、スケジュールされたタスクが成功したかどうか、または対応するcronスクリプトが/var/spool/cronに生成されたかどうかを確認します。

注: この操作は、新しいcrontabを追加するのではなく、ユーザーのcrontabを直接置き換えます。

スケジュールされたタスク スクリプトを定期的に実行します (最初にシェル スクリプトの実行権限を与えることを忘れないでください)

0 2 * * * /root/mysql_backup_script.sh

次に、crontabコマンドを使用して、定期的にスケジュールされたスクリプトを作成します。

crontab mysqlRollback.cron

次に、次のコマンドを使用して、スケジュールされたタスクが作成されたかどうかを確認します。

crontab -l

crontab の使用例を添付します。

1. 毎日午前6時

0 6 * * * echo "おはようございます。" >> /tmp/test.txt //注意: echo だけでは、cron がすべての出力を root のメールボックスに電子メールで送信するため、画面に出力が表示されません。

2. 2時間ごと

0 */2 * * * echo "ちょっと休憩しましょう。" >> /tmp/test.txt  

3. 午後11時から午前8時まで2時間ごとと午前8時

0 23-7/2,8 * * * echo "良い夢を" >> /tmp/test.txt

4. 毎月4日と毎週月曜日から水曜日の午前11時

0 11 4 * 1-3 コマンドライン

5. 1月1日午前4時

0 4 1 1 * コマンドライン SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //エラーが発生したりデータが出力された場合、データはこのアカウントに電子メールとして送信されます HOME=/

6. /etc/cron.hourlyのスクリプトを1時間ごとに実行する

01 * * * * ルート実行部分 /etc/cron.hourly

7. /etc/cron.dailyのスクリプトを毎日実行する

02 4 * * * ルート実行部分 /etc/cron.daily 

8. /etc/cron.weeklyのスクリプトを毎週実行する

22 4 * * 0 ルート実行部分 /etc/cron.weekly

9. /etc/cron.monthlyのスクリプトを毎月実行する

42 4 1 * * ルート実行部分 /etc/cron.monthly

注: 「run-parts」パラメータ。このパラメータを削除すると、フォルダ名の代わりに実行するスクリプトの名前を書き込むことができます。

10. 毎日午後 4 時、5 時、6 時の 5 分、15 分、25 分、35 分、45 分、55 分にコマンドを実行します。

5、15、25、35、45、55、16、17、18 * * * コマンド

11. システムは毎週月曜日、水曜日、金曜日の午後 3 時にメンテナンス モードに入り、再起動します。

00 15 * * 1,3,5 シャットダウン -r +5

12. 毎時 10 分と 40 分に、ユーザー ディレクトリで innd/bbslin コマンドを実行します。

10,40 * * * * innd/bbslink

13. 毎時 1 分ごとにユーザー ディレクトリで bin/account コマンドを実行します。

1 * * * * ビン/アカウント

3. 実行効果のスクリーンショット

以下は 1 分ごとのテストのスクリーンショットです。対応するコードは次のとおりです。

* * * * * /root/mysql_backup_script.sh

エフェクトのスクリーンショット:

log.txt ファイルには、バックアップ操作の詳細なログが記録されます。

この記事の参考文献:

1. MySQLdump の一般的なコマンド: https://www.cnblogs.com/smail-bao/p/6402265.html (Blog Park)

2. シェル スクリプトを使用して MySQL データベースをバックアップする: https://www.cnblogs.com/mracale/p/7251292.html (Blog Park)

3. Linux での Crontab スケジュール実行タスク コマンドの詳細な説明: https://www.cnblogs.com/longjshz/p/5779215.html (Blog Park)

これで、MySQL データベースのスケジュール バックアップ (フル データベース バックアップ) の実装に関するこの記事は終了です。MySQL のスケジュール バックアップに関する関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL データベースを自動的にバックアップする最良の方法 (Windows サーバー)
  • Linux での crontab スケジュール バックアップの例を使用した MySQL スケジュール バックアップ
  • Linux で MySQL データベースのスケジュールされたバックアップを実装する簡単な方法
  • Linux は定期的に MySQL データベースをバックアップし、以前のバックアップ ファイルを削除します (推奨)
  • 定期的にMySQLをバックアップし、定期的にnginxのアクセスログをカットする方法
  • MySQL スケジュールされたデータベース バックアップ操作の例

<<:  VMware は Centos7 システムの PXE+kickstart 無人インストールの詳細なプロセスを実装します

>>:  TypeScript 列挙型

推薦する

CSS XTHML の記述標準とよくある問題の概要 (ページ最適化)

プロジェクトドキュメントディレクトリDiv+CSS 命名規則 - 4 - Div+css 命名規則 ...

Docker コンテナのログを表示およびクリーンアップする方法 (テスト済みで効果的)

1. 問題Docker コンテナのログにより、ホストのディスク領域がいっぱいになりました。 doc...

MySQLのロングトランザクションに関する深い理解

序文:この記事では主にMySQLのロングトランザクションに関する内容を紹介します。例えば、トランザク...

Linux での透過的巨大ページの使用と無効化の概要

導入コンピューティングのニーズが拡大し続けるにつれて、アプリケーションのメモリに対する需要も増加して...

CSS プロパティ *-gradient の実用的な価値を探る

まず興味深い性質であるconic-gradientを紹介しましょう。円錐グラデーション!円グラフの作...

Linux で pyenv をインストールする方法

前提条件gitをインストールする必要があるインストール手順1. リモートリポジトリからpyenvをク...

nginx ロードバランシングを介して https にリダイレクトする方法

ウェブ上で証明書とキーをコピーするscp -rp -P52113 /application/ngin...

モバイル Web WAP には Bootstrap と jQuery Mobile のどちらを使用すべきか

問題を解決するBootstrap は、次の問題を解決する CSS フレームワークです。デバイス間での...

CSS スタイルにおける中国語フォントのフォントファミリーに対応する英語名の詳細な説明

ソングティ: SimSun太字: SimHeiマイクロソフト YaHei: マイクロソフト YaHe...

CentOS 8 仮想マシンから Windows 10 ホスト フォルダーにアクセスする方法の簡単な分析

VMware Toolsをインストールすると、仮想マシンホスト間で①テキストをコピーして貼り付けるこ...

ウィンドウ表示効果を実現するJavaScript

この記事では、ウィンドウ表示効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

Ubuntu仮想マシンでシリアル通信にcutecomを使用する方法

Ubuntu仮想マシンでのシリアル通信にcutecomを使用する1. cutecomをインストールす...

easycomモードでUNI-APPコンポーネントを呼び出す際に習得する必要がある実践的なスキル

この記事は議論の出発点となることを目的としています。詳細なドキュメントと easycom の仕様につ...

JavaScriptの再帰の詳細

目次1. 再帰とは何ですか? 2. 再帰を使って数学の問題を解く1. 1 * 2 * 3 * 4 …...