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

推薦する

Vueはツリー構造の追加、削除、変更、チェックのサンプルコードを実装します

実は多くの会社がユーザー権限ツリーに似た機能を持っています。最近、追加、削除、修正のツリー構造を書き...

MySQL 8.0 が起動できない 3534 の解決策

MySQL 8.0 サービスを開始できません最近、 cmdで MySQL サービスを起動するときに遭...

JSにおける合同と不等式、等式と不等式の問題について

目次一致と不一致一致するすべてが平等ではない平等と不平等等しい等しくない一致と不一致シンボルの両側の...

過去2年間のユーザーエクスペリエンス

<br />国内のウェブサイトが本格的に普及し、ユーザーエクスペリエンスに重点が置かれる...

負のマージントップ値は、ラベルテキストと入力の間の垂直中央揃えの問題を解決します。

ラベルテキストと入力の垂直方向の中央揃えを調整するのは簡単ではありません。padding、verti...

VMware仮想マシンの起動時に黒い画面が表示される問題を解決する

# VMware ハードディスクの起動優先順位を調整するステップ 1: 電源をオンにすると、BIOS...

純粋な CSS を使用して脈動するローダー効果のソースコードを作成する

効果プレビュー右側の「クリックしてプレビュー」ボタンを押すと現在のページでプレビューが表示され、リン...

Dockerコンテナイメージからコードを復元する手順

コードが失われ、コンテナ内で実行されているイメージから必要なコードを回復する必要がある場合があります...

MySQLユーザーと権限管理の詳細な説明

この記事では、例を使用して MySQL ユーザーと権限の管理について説明します。ご参考までに、詳細は...

CSS で QR コードスキャンボックスを実装するためのサンプルコード

カメラを開くと通常はスキャンボックスが表示されますが、静的なQRコードではフォーカスを合わせたりスキ...

uniapp プロジェクトの最適化方法と提案

目次1. 複雑なページデータ領域をコンポーネントにカプセル化する2. 大きな画像の使用を避ける3. ...

3つの簡単な例を使ってハイパーリンクの下線を削除する方法

ハイパーリンクの下線を削除するには、スタイルシート CSS を使用する必要があります。当面は CSS...

Vue プロジェクトをパッケージ化して Apache サーバーにデプロイする手順

開発環境では、vue プロジェクトは、ローカルで Express サーバーを構築することをベースにし...

CentOS7 に YUM 経由で MySQL 5.7 をインストールする詳細な手順

1. インストールパッケージを保存する場所に移動しますcd /home/lnmp 2. MySQL ...

node.js で EventEmitter をカスタマイズする方法

目次序文1. 何ですか2. Node.jsでEventEmitterを使用する方法3. 実施プロセス...