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

推薦する

Clickhouse Docker クラスターの展開と構成を例を使って説明します

目次前面に書かれた環境の展開Zookeeper クラスタの展開Clickhouse クラスターの展開...

Nest.js のハッシュと暗号化の例の詳細な説明

0x0 はじめにまず、ハッシュアルゴリズムとは何でしょうか?メッセージやセッション項目など、一部のデ...

Nginx でアクセス頻度、ダウンロード速度、同時接続数を制限する方法

1. アクセス頻度、同時接続、ダウンロード速度を制限するために使用されるモジュールと命令の概要ngx...

Linux システムの /etc/fstab ファイルの詳細な解釈

序文 [root@localhost ~]# cat /etc/fstab # #/etc/fsta...

HTML でさまざまなスペースの特徴と表現を探る (推奨)

I. 概要HTML テンプレートを作成するときに、テキスト レイアウトの手段としてスペースが使用さ...

知らないかもしれないLinuxのファイル権限管理方法

なぜ権限管理が必要なのでしょうか? 1. コンピュータ リソースは限られているため、コンピュータ リ...

mysql mycat ミドルウェアのインストールと使用

1. mycatとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベ...

Websocket+Vuexはリアルタイムチャットソフトウェアを実装します

目次序文1. 効果は図の通りです2. 具体的な実施手順1. Vuexの紹介2.webscoked実装...

js の一般的でない演算子と演算子の概要

一般的な演算子と JavaScript の演算子の概要カテゴリオペレーター算術演算子+、–、*、/、...

MySQL における主キーが 0 であることと主キーの自己選択制約の関係についての詳しい説明 (詳細)

序文この記事は主にMySQLの主キー0と主キー自己排除制約の関係を紹介し、皆さんの参考と学習のために...

IE ラベル LI テキスト折り返し問題について

私は長い間この問題に悩まされていましたが、検索してみたところ、実際にこの問題を解決した人がいることが...

一般的な JavaScript 文字列メソッド 28 個と使用方法のヒントのまとめ

目次序文1. 文字列の長さを取得する2. 文字列の指定された位置の値を取得する(1) charAt(...

Vue2.x および Vue3.x のカスタム命令の使用方法とフック関数の原理を理解する

目次Vue2.x の使用法グローバル登録部分登録使用フック機能フック関数のパラメータVue3.x の...

2015-2016年に主流となるインタラクティブ体験のトレンド

5月の最も重要なインタラクティブデザイン記事!今年、Baiduのデザイナーは体験の観点から出発し、大...

Linux に nginx をインストールする方法

Nginx は C 言語で開発されており、Linux で実行することをお勧めします。もちろん、Win...