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 つの最も効果的な方法

推薦する

Dockerのオンラインおよびオフラインインストールと一般的なコマンド操作

1. テスト環境名前バージョンセント7.6ドッカー18.09.06 2. オンラインインストールここ...

WindowsX Hyper-V ベースの CentOS システムをインストールする

現在、Linux を使用するほとんどの人は、クラウド サーバーを使用するか、Windows 上に仮想...

iframe を介してフレームセットを本体に配置する

フレームセットと本文は同じレベルにあるため、本文にフレームセットを配置することはできません。まずペー...

HTML フォーム タグの使用方法を学ぶチュートリアル

HTML のフォームを使用して、ユーザーからさまざまな種類の入力情報を収集できます。フォームは、実際...

純粋な CSS 流星群の背景サンプルコード

GitHubアドレス、気に入ったらスターを付けてくださいプラグインのプレビューチュートリアルコード表...

Nginxを使用してストリーミングメディアサーバーを構築し、ライブブロードキャスト機能を実現する

前面に書かれた近年、ライブストリーミング業界は非常に人気が高まっています。伝統的な業界でのライブスト...

Windows に MySQL をインストールする方法のグラフィック チュートリアル

概要: この記事では主に、Windows 環境に MySQL をインストールする方法について説明しま...

Nginx 設定ファイルの詳細な説明と最適化の提案ガイド

目次1. 概要2. nginx.conf 1) 設定ファイルの場所2) ワーカープロセス3) イベン...

Linux で LVGL エミュレータをコンパイルする際のエラーの解決方法

目次1. エラー現象2. エラー分析3. エラー解決1. エラー現象仮想マシンでLVGLエミュレータ...

モバイル端末におけるビューポートの具体的な使用法についての簡単な説明

目次1. 基本概念1.1 2種類のピクセル1.2 3つのビューポート2. ビューポート設定3. 1回...

JavaScriptタイマーとボタン効果設定の詳細な説明

タイマー効果: <div> <font id='timeCount'...

シンプルなプログレスバーを作成するための HTML+CSS

1. HTMLコードコードをコピーコードは次のとおりです。経験値: <span class=...

Win10 での MySQL 8.0.15 のインストールと設定のチュートリアル

最近私が学んでいるのは MySQL の知識なので、MySQL をインストールすることが非常に重要です...

JavaScriptは、ユーザーがチェックボックスをオンにする必要があるプロトコルの例を実装します。

js では、ログインまたは登録を確認する前に、ユーザーが特定の契約書を読むように設定します (使用...

redhat7 に yum 経由で mysql5.7.17 をインストールするチュートリアル

RHEL/CentOS シリーズの Linux オペレーティング システムには MySQL ソース自...