LinuxはMySQLデータベースの自動バックアップとスケジュールバックアップを毎日実装しています

LinuxはMySQLデータベースの自動バックアップとスケジュールバックアップを毎日実装しています

概要

バックアップは災害復旧の基礎であり、システム操作エラーやシステム障害によるデータ損失を防ぐために、アプリケーション ホストのハード ディスクまたはアレイからデータ セットの全部または一部を他のストレージ メディアにコピーするプロセスを指します。一部の Web サイトやシステムでは、データベースがすべてであるため、データベースをバックアップすることが重要です。

バックアップとは何ですか?

這里寫圖片描述

なぜバックアップするのですか?

這里寫圖片描述

災害復旧計画構築

這里寫圖片描述

ストレージメディア

CD

テープ

ハードディスク

ディスクアレイ

DAS: 直接接続ストレージ

NAS: ネットワーク接続ストレージ

SAN: ストレージ エリア ネットワーク

クラウドストレージ

ここでは、主にローカル ディスクをストレージ メディアとして使用し、スケジュールされたタスクと基本的なバックアップ スクリプトの追加と使用について説明します。他のストレージ メディアとの唯一の違いは、メディアのアクセス方法が若干異なる場合があることです。

1. ディスク容量を確認します。

スケジュールされたバックアップであるため、容量不足によるバックアップの失敗やデータ損失を避けるために、十分な容量のあるディスクを選択する必要があります。

現在のディスクに保存するのが最も簡単ですが、あまりお勧めできません。サーバーに複数のハード ディスクがある場合は、別のハード ディスクにバックアップを保存するのが最適です。条件が許せば、より優れた、より安全なストレージ メディアを選択してください。

# df -h
ファイルシステムサイズ 使用済み 使用可能使用率 マウント先
/dev/mapper/VolGroup-lv_root 50G 46G 1.6G 97% /
tmpfs 1.9G 92K 1.9G 1% /dev/shm
/dev/sda1 485M 39M 421M 9% /ブート
/dev/mapper/VolGroup-lv_home 534G 3.6G 503G 1% /home

2. バックアップディレクトリを作成します。

上記のコマンドから、/home に十分なスペースがあることがわかります。そのため、バックアップ ファイルを /home に保存することを検討できます。

cd /ホーム
mkdir バックアップ
CDバックアップ

3. バックアップ シェル スクリプトを作成します。

次のコマンドの DatabaseName を実際のデータベース名に置き換える必要があることに注意してください。

もちろん、独自の命名規則を使用することもできます。

vi bkデータベース名.sh

以下を入力/貼り付けます。

#!/bin/bash
mysqldump -uusername -ppassword データベース名 > /home/backup/データベース名_$(日付 +%Y%m%d_%H%M%S).sql

バックアップを圧縮するには:

#!/bin/bash
mysqldump -uusername -ppassword データベース名 | gzip > /home/backup/データベース名_$(日付 +%Y%m%d_%H%M%S).sql.gz

知らせ:

ユーザー名を実際のユーザー名に置き換えます。

パスワードを実際のパスワードに置き換えます。

DatabaseName を実際のデータベース名に置き換えます。

4. 実行権限を追加します。

chmod u+x bkデータベース名.sh

実行権限を追加した後、まずスクリプトを実行して、エラーがないか、正常に使用できるかどうかを確認します。

./bkデータベース名.sh

5. スケジュールされたタスクを追加する

crontabを検出またはインストールする

crontab がインストールされているかどうかを確認します。

crontab コマンドがコマンドが見つからないと報告した場合、コマンドがインストールされていないことを意味します。

# クローンタブ
-bash: crontab: コマンドが見つかりません

crontab がインストールされていない場合は、まずインストールする必要があります。具体的な手順については、以下を参照してください。

CentOS に yum コマンドを使用して、スケジュールされたタスク プログラムである crontab をインストールする

rpmコマンドを使用して、CentOSシステムディスクからスケジュールされたタスクプログラムcrontabをインストールします。

スケジュールされたタスクの追加

次のコマンドを実行します:

crontab -e

この時点で、vi エディタを使用する場合と同じように、スケジュールされたタスクを編集できます。

以下を入力して保存します。

*/1 * * * * /home/backup/bkデータベース名.sh

具体的にはどういう意味ですか?

これは、シェル スクリプト「/home/backup/bkDatabaseName.sh」が 1 分ごとに 1 回実行されることを意味します。

6. タスクが実行されたかどうかをテストする

とても簡単です。「ls」コマンドを数回実行し、1 分後にファイルが作成されるかどうかを確認するだけです。

タスクの実行が失敗した場合は、次のコマンドを実行してタスク ログを表示できます。

# テール -f /var/log/cron

出力は次のようになります。

9月30日 14:01:01 bogon run-parts(/etc/cron.hourly)[2503]: 0ancronを開始
9月30日 14:01:01 bogon run-parts(/etc/cron.hourly)[2512]: 0anacronが終了しました
9月30日 15:01:01 bogon CROND[3092]: (root) CMD (run-parts /etc/cron.hourly)
9月30日 15:01:01 bogon run-parts(/etc/cron.hourly)[3092]: 0anacronを開始
9月30日 15:01:02 bogon run-parts(/etc/cron.hourly)[3101]: 0anacronが終了しました
9月30日 15:50:44 bogon crontab[3598]: (root) BEGIN EDIT (root)
9月30日 16:01:01 bogon CROND[3705]: (root) CMD (run-parts /etc/cron.hourly)
9月30日 16:01:01 bogon run-parts(/etc/cron.hourly)[3705]: 0anacronを開始
9月30日 16:01:01 bogon run-parts(/etc/cron.hourly)[3714]: 0anacronが終了しました
9月30日 16:15:29 bogon crontab[3598]: (root) 編集終了 (root)

要約する

上記は、Linux での MySQL データベースの毎日の自動バックアップに関する編集者による紹介です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • Linux で毎日データベースの自動バックアップを設定する方法
  • Linux で MySQL データベースを毎日自動的にバックアップする方法
  • Linux で MySQL データベースのスケジュールされたバックアップを実装する簡単な方法
  • Linux は定期的に MySQL データベースをバックアップし、以前のバックアップ ファイルを削除します (推奨)
  • Linux でのデータベースのスケジュールバックアップの実装スクリプト

<<:  Dockerコンテナとローカルマシン間でファイルを転送する方法

>>:  Vue3+TypeScriptはaxiosをカプセル化し、リクエスト呼び出しを実装します

推薦する

uniappとvueの違いの詳細な説明

目次1. シンプルなページの例2.uni-appはvueコンポーネントとミニプログラムネイティブコン...

CSSの省略記号とパディングを組み合わせた場合の問題の詳細な説明

CSS によるテキストの切り捨てテキストを自動的に切り捨てるスタイル コードを実装するには、次のコー...

パーソナライズされたクリエイティブなウェブサイトデザインの例 (30)

そこで、個性的なスタジオやフリーランスを表現する組み合わせを 30 個選びました。デザインを目立たせ...

CSS が最初のサイクルで画像を読み込むために @keyframes を使用するときに発生するホワイトギャップの問題 (フラッシュ画面) をすばやく解決します。

問題の説明: CSS アニメーション プロパティを使用すると、ループが最初に読み込まれたときに白いギ...

SQL 結合クエリの内部結合、外部結合、クロス結合の違いの詳細な説明

データベースを使用するアプリケーションを開発する場合、必然的にユニオンクエリを使用する必要があります...

MySQL で行を列に変換したり、列を行に変換したりする詳細な例

mysql 行から列へ、列から行へ難しい文章ではないので、詳しく説明はしません。文章を読むときは、一...

TypeScript におけるインターフェースと型メソッドの正しい使用例

目次序文インタフェースタイプ付録: インターフェースとタイプの違い要約する序文インターフェースとタイ...

Windows Server 2008 R2 マルチユーザー リモート デスクトップ接続ライセンス

仕事ではリモート サーバーが必要になることが多く、次の 2 つの問題に遭遇することがよくあります。 ...

nginxプロキシsocket.ioサービスの落とし穴の詳細な説明

目次Nginx は 2 つの socket.io サーバーをプロキシします。 socket.ioの動...

要素に丸い境界線を追加する border-radius メソッド

border-radius:10px; /* すべての角は半径 10px で丸められます*/ bor...

Linuxのtopコマンド出力の詳細な説明

序文皆さんは Linux で top コマンドを使ったことがあると思います。私は Linux に触れ...

MySQLで日付を比較する方法の詳細な説明

データ型が datetime であるフィールド add_time を持つテーブル product が...

Node.js http モジュールの使用

目次序文ウェブHTTP サーバーファイルサーバー練習する序文Node.js 開発の目的は、JavaS...

MySQL で削除されたレコードが有効にならない理由のトラブルシューティング

オンライン MySQL トランザクションの問題の記録先週の金曜日、大きなテーブルを削除する操作を実行...

MySQL 8.0.16 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.16圧縮パッケージのインストールと設定方法を参考までに紹介します。...