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

推薦する

CSS は、小さな鋭角のチャット ダイアログ ボックスで鋭角の吹き出し効果を実現します。

1. CSS を使用して、小さな尖った角のチャット ダイアログ ボックスと尖った角の吹き出しを描画...

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

この記事では、WindowsでのMySQL 5.7.18のインストールと設定のチュートリアルを参考ま...

フロントエンドのパフォーマンス最適化 - フロントエンドエンジニアが話し合うべき問題点

はじめに<br />前回の記事「私の CSS アーキテクチャ コンセプト」では、公園で友...

vue 要素 el-transfer にドラッグ機能を追加

コア資産管理プロジェクトでは、el-transfer にドラッグ アンド ドロップによる並べ替えと、...

プライベートレジストリ内の画像を照会または取得する方法

Dockerはプライベートレジストリ内のイメージを照会または取得するために、 docker 検索 1...

Presto をインストールし、Docker で Hive を接続する詳細なプロセス

1. はじめにPresto は、ギガバイトからペタバイトに及ぶデータ ソースに対してインタラクティブ...

jQueryはhide()とtoggle()関数を使用してカメラブランド表示の非表示機能を実現します。

最近、jQuery を学習しているときに、show()、hide()、toggle() 関数に出会い...

Docker ファイルの保存パス、ポート マッピング操作モードの変更

コンテナの起動コマンドを取得する方法コンテナはすでに作成されていますが、その起動パラメータ(データが...

Linux で Redis のリモート接続を実装する方法

LinuxにRedisをインストールしたら、Javaを使って接続します。Javaコードは次のとおりで...

VUEはFlappy Birdゲームのサンプルコードを実装します

Flappy Bird は、誰もがアプリでプレイしたことがある非常にシンプルな小さなゲームです。ここ...

CentOS6.8 は cmake を使用して MySQL5.7.18 をインストールします。

オンライン情報を参考に、cmakeを使用してCentOS6.8サーバーにMySQL5.7.18をイン...

Vue3 のウォッチの使用方法とベストプラクティスガイド

目次序文🌟 1. APIの紹介2. 複数のデータソースの監視3. リスニングアレイ4. 監視対象5....

MySQL カーソルの概念と使用法の詳細な説明

この記事では、例を使用して MySQL カーソルの概念と使用方法を説明します。ご参考までに、詳細は以...

UbuntuのVimにNERDTreeプラグインをインストールする詳細な手順

NERDTree は Vim 用のファイル システム ブラウザーです。このプラグインを使用すると、ユ...

CentOS 6-7 PHPのyumインストール方法(推奨)

1. 現在インストールされているPHPパッケージを確認するyum list installed |...