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をカプセル化し、リクエスト呼び出しを実装します

推薦する

MySQL デュアルマシン ホットスタンバイ実装ソリューション [テスト可能]

目次1. コンセプト2. 環境の説明3. マスタースレーブホットスタンバイ実装1. コンセプト1. ...

WindowsシステムでPhPStudy MySQLの起動に失敗する問題を解決する

エラーを報告するApache\Nginx サービスは正常に起動しましたが、MySQL は起動に失敗し...

JavaScriptのモジュール性を理解する方法

目次1. ブラウザのサポート2.エクスポートモジュールのエクスポート3. モジュールをインポートする...

MySQL8のパスワードを忘れた場合の簡単な解決策

序文MySQL データベースのパスワードを忘れると、データベースに正常にアクセスできなくなり、パスワ...

データベースマルチテーブル接続クエリの実装方法の詳細説明

データベースマルチテーブル接続クエリの実装方法の詳細説明結合演算子を使用して複数のテーブルクエリを実...

yum 経由で CentOS に PHP をインストールするチュートリアル

まず、yumを使ってCentOSにPHPをインストールする方法を紹介します。 1. PHPのyumソ...

LinuxサーバーにVueプロジェクトをデプロイする

ケース1 vue-cliはvue3プロジェクトをビルドし、プロジェクトをLinuxサーバーにアップロ...

Vueは複数列レイアウトドラッグを実装します

この記事では、マルチカラムレイアウトドラッグを実装するためのVueの具体的なコードを参考までに共有し...

一般的な JavaScript メモリ エラーと解決策

目次1. タイマー監視2. イベント監視3.オブザーバー4. ウィンドウオブジェクト5. DOM参照...

Nginx ドメイン転送の使用シナリオ コード例

シナリオ 1: サーバーの制限により、外部に開かれているポートは 1 つだけですが、別の外部ネットワ...

Docker デプロイメント RabbitMQ コンテナ実装プロセス分析

1. イメージをプルするまず、次のコマンドを実行して、イメージをローカル コンピューターにダウンロー...

VUEプロジェクトでXSS攻撃に遭遇した実体験

目次序文原因を発見するカスタムフィルタリングルール要約する序文インターネットの急速な発展に伴い、情報...

border-image を使用してテキストバブルの境界線を実装する方法のサンプルコード

開発中に、非常に単純なテキストバブル効果に遭遇しました。これは、おおよそ次のようになります。 うーん...

nginx プロキシ ポート 80 からポート 443 への実装

nginx.conf設定ファイルは次のとおりです。 ユーザー nginx; ワーカープロセス 1; ...

フロントエンドはJavaScriptを通じてCADグラフィックスの詳細を作成および変更します。

目次1. 現状2. JSでCADグラフィックを作成および変更する2.1 サポートされているCADエン...