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 プロジェクトをより速くビルドする

推薦する

MySQLは、where in()順序ソートを実装するためにfind_in_set()関数を使用します。

この記事では、MySQL で find_in_set() 関数を使用して where in() の順...

xshellを使用してLinuxサーバーに接続する

xshellを使用してLinuxに接続する利点Windows環境でLinuxを直接操作できるインター...

Vue の長いリストをすばやく読み込む方法

目次背景メインコンテンツ1. コンポーネントの比較2. 実装のアイデア3. キーメソッドソースコード...

Docker Compose マルチコンテナデプロイメントの実装

目次1. WordPressの導入1. 環境を整える(II) イメージを実行するDocker の作成...

MySql ファジークエリ JSON キーワード取得ソリューションの例

目次序文オプション1:オプション2:オプション3:オプション4(最終的に採用されたオプション):要約...

Docker 入門インストールチュートリアル (初心者版)

ドクター紹介: Docker はコンテナ関連の技術です。簡単に言うと、さまざまなソフトウェアを実行で...

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

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

Dockerfile テキストファイルの使用例の分析

Dockerfile は、イメージをビルドするために使用されるテキスト ファイルです。テキスト コン...

Dockerコンテナでアプリケーションサービスを自動的に起動する方法の例

コンテナの起動時に Docker コンテナ内のアプリケーション サービスを自動的に起動する場合。 D...

MySqlはページクエリ機能を実装します

まず、ページ分割クエリを使用する理由を明確にする必要があります。データが膨大なため、すべてのデータを...

Linux での mysql8.018 のインストールと設定のプロセスの詳細な説明

Windowsでのインストールの紹介:こちらもご覧ください –》WindowsでのMySQL 8.0...

CSSでプロセスナビゲーション効果を実現する(3つの方法)

CSS によりプロセスナビゲーション効果を実現します。具体的な内容は以下のとおりです。 ::tip...

Nest.js パラメータ検証とカスタム戻りデータ形式の詳細な説明

0x0 パラメータ検証Nest.jsでは、パラメータ検証業務のほとんどをパイプライン方式で実装してい...

jQuery ベースのカレンダー効果

この記事では、カレンダー効果を実現するためのjQueryの具体的なコードを例として紹介します。具体的...

Vueカスタムカプセル化ボタンコンポーネント

Vueボタンコンポーネントのカスタムカプセル化コードは参考用です。具体的な内容は次のとおりです。ボタ...