MySQL データベースのバックアップをスケジュールするいくつかの方法 (包括的)

MySQL データベースのバックアップをスケジュールするいくつかの方法 (包括的)

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

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

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


2. 一般的なmysqldump操作の例

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

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

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

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

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

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

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

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

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

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

単一のデータベースのバックアップ

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

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

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

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

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

3. MySQLバックアップコンテンツを復元する

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

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

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

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

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

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

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

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. まず、バックアップnumber最大數目、バックアップ路徑用戶名密碼などの各種パラメータを設定します。

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

3.削除するファイルを定義する: lsコマンドを使用して 9 番目の列、つまりファイル名の列を取得し、削除する必要がある最新の操作時刻を持つファイルの定義を実装します。

4.バックアップの数を定義します。ls lswc -lを使用して、ファイル内のsqlで終わる行の数をカウントします。

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

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

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

2.1 Cronサービス

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

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

2.2crontabの構文

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 ファイルを編集します。編集を終了して終了すると、編集したファイルが自動的にインストールされます。

2.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


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

4. 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 * * * * ビン/アカウント


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

* * * * * /root/mysql_backup_script.sh


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

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

以下もご興味があるかもしれません:
  • MySQL データベースのデータを定期的にバックアップし、指定した期間保持するシェル スクリプト
  • MySQL データベースのスケジュールされたバックアップ スクリプトの共有
  • MySQL スケジュールされたデータベース バックアップ操作の例
  • Linux は MySQL データベースのスケジュールされたバックアップを実装し、30 日以上前のバックアップ ファイルを削除します。
  • MySQLデータベースのスケジュールバックアップを実装する方法
  • Linux で MySQL データベースのスケジュールされたバックアップを実装する簡単な方法
  • MySQL データベースを自動的にバックアップする最良の方法 (Windows サーバー)

<<:  CSS 動的読み込みバー効果のサンプルコード

>>:  Docker で Maven プロジェクトをより速くビルドする

推薦する

XHTML でのハイパーリンク タグの使用に関するチュートリアル

ハイパーリンク。「リンク」とも呼ばれます。ハイパーリンクは、私たちが閲覧する Web ページのいたる...

MySQL 8.0.3 RCがリリースされようとしています。変更点を見てみましょう。

MySQL 8.0.3がリリースされます。新機能を見てみましょうMySQL 8.0.3 は RC ...

HTTPSの最も優れた説明

皆さんおはようございます。しばらく記事を更新していませんでした。実は、私は流行中に1か月以上家にいて...

CSS 境界線の長さ制御機能の実装

以前は、境界線の長さをコンテナーよりも小さくする必要があったときに、div ネストを使用していました...

Vueページの画像が表示されない問題の解決方法

新しいバージョンの設定インターフェースを作る際に、vueフレームワークを使用して実装しました。ページ...

JavaScript進捗管理の詳しい説明

目次序文質問原理テスト序文プログラムを作成するときに、読み込みの進行状況やアップロードの進行状況など...

CSSは5つの一般的な2D変換を実装します

CSS の 2D 変換を使用すると、移動、回転、拡大縮小、変形などの基本的な変換操作を 2 次元空間...

組み込みオブジェクトに関するJavascriptの基礎

目次1. 組み込みオブジェクトの紹介1.1 数学オブジェクト1.2 数学における方法1.3 日付オブ...

同じドメイン名を持つ Nginx プロキシのフロントエンドとバックエンドの分離プロジェクトの完全な手順

フロントエンド プロジェクトとバックエンド プロジェクトは分離されており、フロントエンドとバックエン...

一時ファイルを作成できないために MySQL が起動できない問題を解決する方法

問題の説明最近、仕事中に問題が発生しました。MySQL が起動に失敗しました。エラー ログは次のとお...

Tomcatはスレッドプールを使用してリモート同時リクエストを処理します。

Tomcatが同時リクエストを処理する方法を理解することで、スレッドプール、ロック、キュー、および...

CSSでnグリッドレイアウトを実装する方法

一般的なアプリケーションシナリオ現在のアプリのインターフェースは基本的に同じであり、グリッドレイアウ...

Vue で ToDo アプリケーションを実装する例

背景まず最初に、私はフロントエンド開発の専門家ではないことを述べておきたいと思います。私の以前のコン...

reactにおけるstateの略語の詳細な説明

序文国家とは何か私たちは皆、React はステート マシンであると言います。それはどのように反映され...

この記事ではJavaScriptの基本であるディープコピーとシャローコピーについて説明します。

目次浅いコピーディープコピー補充する要約するコピー(クローン、複製などとも呼ばれる)ですが、ディープ...