Centos7 で mysqldump を使用して MySQL データベースの毎日の自動バックアップを作成する

Centos7 で mysqldump を使用して MySQL データベースの毎日の自動バックアップを作成する

1. 要件:

データベースのバックアップは、実稼働環境にとって特に重要です。データベースのバックアップは、物理バックアップと論理バックアップに分けられます。

物理バックアップ: 関連するコピー コマンドを使用して、データベースのデータ ディレクトリ内のデータを直接コピーするか、複数のコピーを作成します。よく使用されるツール: XtraBackup。

論理バックアップ: MySQL に付属する mysqldump コマンドを使用して、バックアップするデータを SQL ステートメントの形式で保存します。

次に、mysqldump コマンドを使用してデータをバックアップします。毎日のバックアップには自動タスクを使用します。

2. 実行ファイルの書き込み:

1. フォルダを作成し、実行されたshファイルとデータベースのバックアップファイルをこのフォルダに保存します。

mkdir /usr/local/mysqlDataBackup
cd /usr/local/mysqlDataBackup

2. sh ファイルを作成し、シェル スクリプトを記述します。

バックアップ.sh

単一データベース スクリプト:

#!/bin/bash
#このスクリプトはデータベースの自動バックアップ用です
#作成者: weijb 日付: 2021-07-28
#7日前のデータを削除

DATAdelete='日付 +%F -d "-7 日"'
rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz

MYSQL_CMD = /usr/bin/mysqldump
MYSQL_USER=アカウント MYSQL_PWD=パスワード DATA='日付 +%F'
DB名=test_db

${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz

分析:

(1)スペースを節約するために7日前のバックアップデータを削除します。
DATAdelete='date +%F -d "-7 day"' 現在時刻の7日前の日付

rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz スペースを節約するために過去 7 日間のバックアップ データを削除し、最新の 7 日間のデータのみを保持します。

(2)変数を定義する:
MYSQL_CMD=/usr/bin/mysqldump mysql に付属する mysqldump コマンドの場所MYSQL_USER=Account mysql に接続するアカウントMYSQL_PWD=Password mysql に接続するパスワードDATA='date +%F' 現在の日付を取得します。%F は %Y-%m-%d の形式を表します。例: 2021-07-28
DBname=test_db バックアップするデータベースの名前。現在のデータベース名は test_db です。
(3)バックアップコマンドを実行します。
${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz
--compact は出力情報を最適化します -B はデータベース作成ステートメントを含みます gzip 圧縮されたバックアップはバックアップファイルのサイズを縮小します usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz バックアップファイルの保存パスと名前

複数のデータベースのバックアップ:

#!/bin/bash
#このスクリプトはデータベースの自動バックアップ用です
#作成者: weijb 日付: 2021-07-28
#7日前のデータを削除
DATAdelete='日付 +%F -d "-7 日"'
rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz

MYSQL_CMD = /usr/bin/mysqldump
MYSQL_USER=アカウント MYSQL_PWD=パスワード DATA='日付 +%F'
DBname='mysql -u${MYSQL_USER} -p${MYSQL_PWD} -e "データベースを表示;" | sed '1,5d''

${DBname} の DBname について
する 
  ${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz
終わり

分析:

(1)バックアップが必要なデータベースを傍受する

-e "show databases;" | sed '1,5d'' はすべてのデータベースを表示し、mysql 自身の information_schema、mysql、performance_schema、および sys を除くすべてのデータベースをキャプチャします。

(2)その他の詳細は単一データベースバックアップと同様である。

3. スクリプトが正常に書き込まれたことを確認します。

(1)スクリプトファイルの認証:

cd /usr/local/mysqlDataBackupchmod +x バックアップ.sh

(2)スクリプトを実行する。

sh バックアップ.sh

/usr/local/mysqlDataBackup の下に生成されたファイルは、書き込みが成功したことを示しています。

4. 自動タスクを記述する:

毎日午前 1 時にデータベースをバックアップします。

crontab -e

編集するには i と入力します:

00 01 * * * /usr/local/mysqlDataBackup/backup.sh

esc キーを押してファイル編集を終了し、:wq と入力して保存して終了します。

タスクが正常に設定されているかどうかを確認します。

crontab -l

crontab サービスを再起動します。

サービスcrondの再起動

この時点で、データベースをバックアップする mysql 自動タスク スクリプトが完了します。

CentOS 7 で mysqldump を使用して MySQL データベースの毎日の自動バックアップを実行する方法については、これで終わりです。mysqldump を使用した MySQL 自動バックアップの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Windows での MySQL 自動バックアップのバッチ処理の実装 (ディレクトリのコピーまたは mysqldump バックアップ)
  • MySQLdump コマンドを使用した MySQL データの移行
  • mysql バックアップ スクリプト mysqldump の使い方の詳細な説明
  • Linux mysqldump によるデータベース、データ、テーブル構造のエクスポートの詳細な説明
  • mysqldumpデータエクスポートの問題に関する詳細な議論
  • mysqldump (MySQL データベースのバックアップとリカバリ) の使用方法についての簡単な説明
  • MySQL データベースを手動および自動でバックアップする 8 つの方法
  • LinuxはMySQLデータベースの自動バックアップとスケジュールバックアップを毎日実装しています
  • MySQL 自動バックアップとリカバリのいくつかの方法の詳細な説明 (グラフィック チュートリアル)
  • CentOS システムで MySQL の自動毎日バックアップを設定する方法

<<:  Docker で TLS と CA 認証を有効にする方法

>>:  HTML と CSS を書くための 6 つの最も効果的な方法

推薦する

マークアップ言語 - Web アプリケーション CSS スタイル

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

MySQL ログインおよび終了コマンドの形式

mysql ログインのコマンド形式は次のとおりです。 mysql -h [hostip] -u [ユ...

shtmlとhtmlの違い

Shtml と asp は似ています。shtml という名前のファイルでは、asp の命令と同様に、...

JavaScript でドラッグ スライダー パズルの検証機能を実装します (html5、canvas)

導入:スライダー ドラッグ検証は現在、多くの場所で使用されています。週末に 1 つ作成しようと思い、...

メタビューポートタグ(モバイルブラウジングズームコントロール)の使用方法

OP が現在のファームウェアで Web ページを開くと、常に 50% にズームアウトされてから表示さ...

vue-cropperプラグインは、画像キャプチャとアップロードコンポーネントのカプセル化を実現します。

vue-cropperプラグインをベースにした画像キャプチャとアップロードコンポーネントをカプセル...

Nginx フォワード プロキシとリバース プロキシ、および負荷分散機能の構成コード例

この記事は主に、Nginx のフォワード プロキシとリバース プロキシ、および負荷分散機能の設定コー...

Linux デバイス用ネットワーク ドライバーの紹介

有線ネットワーク: イーサネット 無線ネットワーク: 4G、WiFi、Bluetooth、5G 概要...

JavaScript ベースの Web 計算機の実装

この記事では、ウェブ計算機のマインスイーパゲームを実装するためのJavaScriptの具体的なコード...

HTML webpackプラグインの使用に関する簡単な分析

html-webpack-pluginプラグインを使用してページを開始すると、htmlページをメモリ...

Vueは完全な選択機能を実装しています

この記事の例では、完全な選択機能を実装するためのVueの具体的なコードを参考までに共有しています。具...

MySQL 8.0.18 のインストールと設定方法のグラフィック チュートリアル (Linux)

この記事では、Linux MySQL 8.0.18のインストールと設定のグラフィックチュートリアルを...

Vue3の一般的なAPIの使用方法の紹介

目次ライフサイクルの変化反応的な参照vue2.x では ref を使用して要素タグを取得します。vu...

shtml includeの使い方

これを応用することで、ウェブサイトの一部の公開領域を独立したページにすることができ、その後、この技術...

ボタントリガーイベントを使用して背景色の点滅効果を実現します

背景色の点滅効果を実現するには、次のコードを <body> 領域に追加するだけです。コー...