序文 この世の愛には値段のつくものもありますが、データには値段のつけられないものがあります。将来、誤ってデータベースを削除してしまった場合に慌てて逃げなくて済むように、データのバックアップは特に重要です。 この記事で紹介する解決策は、Linux 独自の crontab スケジュール タスク機能を使用して、データベース バックアップ スクリプトを定期的に実行することです。 技術的なポイント:
データバックアップダンプ データベースには、データベース内のデータと構造をエクスポートするコマンドがあり、これがバックアップです。 バックアップしたデータを復元すると、元のデータ内のテーブルが削除され再構築され、その後バックアップ内のデータを挿入します。これがリカバリです。 リカバリ前のデータがバックアップよりも多い場合、リカバリ後に余分なデータが失われることに注意することが重要です。 私がよく使う2つのデータベースのバックアップとリカバリのコマンドを一覧表示します PostgreSQL: pg_dump -h [ip] -U [ユーザー名] [データベース名] > [エクスポートされた.sqlファイル] をバックアップします 復元 psql -s [データベース名] -f [.sql ファイルをエクスポート] マイスク: mysqldump -h -u [ユーザー名] -p [データベース名] > [エクスポートされた.sqlファイル] をバックアップします mysqlを復元 -u [ユーザー名] -p [データベース名] < [エクスポートされた.sqlファイル] シェルスクリプト 完全に機能するバックアップ ソリューションを完成させるには、シェル スクリプトが必要です。 このスクリプトでは、最大 30 個のファイルを指定されたパスにバックアップし、圧縮形式で保存します。30 個を超えるファイルがある場合は、最も古いファイルが削除され、操作ログが記録されます。 これ以上言うことはありません。すべては脚本に書いてあるので、やってみましょう! #ユーザー名 username=root # パスワード password = nicai #バックアップするデータベース database_name=l_love_you #保存するバックアップファイルの最大数は count=30 です #バックアップ保存パスbackup_path=/app/mysql_backup #日付 date_time=`日付 +%Y-%m-%d-%H-%M` # フォルダーが存在しない場合は作成します if [ ! -d $backup_path ]; それから mkdir -p $バックアップパス; フィ #backupmysqldump を開始 -u $username -p$password $database_name > $backup_path/$database_name-$date_time.sql #圧縮を開始 cd $backup_path tar -zcvf $データベース名-$日付時刻.tar.gz $データベース名-$日付時刻.sql #ソースファイルを削除します rm -rf $backup_path/$database_name-$date_time.sql # バックアップ ログを更新 echo "create $backup_path/$database_name-$date_time.tar.gz" >> $backup_path/dump.log #削除する必要があるバックアップを検索します delfile=`ls -l -crt $backup_path/*.tar.gz | awk '{print $9 }' | head -1` #現在のバックアップ数がしきい値より大きいかどうかを判断します number=`ls -l -crt $backup_path/*.tar.gz | awk '{print $9 }' | wc -l` [ $number -gt $count ]の場合 それから #最も古いバックアップを削除し、count 個のバックアップのみを保持します rm $delfile # ファイル削除ログを更新 echo "delete $delfile" >> $backup_path/dump.log フィ スクリプトに意味のある名前を付けます。例: dump_mysql.sh スクリプトに実行権限を付与します (chmod +x dump_mysql.sh)。実行後、スクリプトは緑色に変わり、実行可能ファイルになります。 実行方法: ./ プラススクリプト名
スケジュールされたタスクの crontab Crontab は Linux に付属するスケジュールされたタスク機能です。これを使用して、毎朝 1 回 dump_mysql.sh スクリプトを実行できます。 Crontab の使用法:
元金が確保され、引き出しが完了すると追加が完了します。 コンテンツの説明: 最初の部分 00 01 * * * はスケジュールされたタスクの期間であり、2 番目の部分 /app/dump_mysql.sh は指定された時間に実行する内容です。 期間表現は、分、時間、日、月、週を表す 5 つのプレースホルダーです。 プレースホルダー * は、毎を表します。最初の桁は毎分、2 番目の桁は毎時間、というようになります。 プレースホルダーは、特定の数字を使用して特定の時間を表します。最初の位置の 10 は 10 分を意味し、3 番目の位置の 10 は 10 日を意味します。 プレースホルダー - は間隔を示します。最初の 5-7 は 5 分から 7 分を意味し、5 番目の場合は金曜日から日曜日を意味します。 プレースホルダー / は間隔を示します。 5-10/2 は、最初の位置で 5 分から 10 分の間隔を示すために使用され、2 番目の位置で 5 時から 10 時までの間隔を示すために使用されます。 プレースホルダーでは、リストを示すために , を使用します。最初の位置の 5,10 は 5 ポイントと 10 ポイントを意味し、4 番目の位置は 5 月と 10 月を意味します。 要約する これで、MySQL スケジュール バックアップ ソリューションに関するこの記事は終了です。MySQL スケジュール バックアップに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Reactはダブルスライダークロススライドを実装します
Web デザインは、個人の好みや Web ページの内容に応じて、デザインのレイアウトが常に変化します...
目次LinuxでTCPを作成する手順サーバクライアントTCP確立プロセスサンプルコードLinuxでT...
先日、外国人の方がHTML+CSSを使ってHamburgerMenuを実装している動画を見ました。最...
序文デフォルトでは、MySQL はデータベース クエリ データをキャッシュするために大きなメモリ ブ...
歴史的な理由により、MySQL レプリケーションは、REDO ログではなく論理バイナリ ログに基づい...
目次1. 問題のあるSQL文たとえば、次の図のような質問をした人がいました。 問題は次のように要約で...
場合によっては、特定の条件に基づいて Web ページ内の HTML 要素を表示するか非表示にするかを...
オプションに属性 selected = "selected" を追加すると、それ...
この記事では、ソーシャル ウェブサイトのホームページを比較分析することで洞察を得て、ソーシャル ウェ...
結果: 実装コードhtml <div id="価格表" class=&qu...
<br />昨日、W3C で新しいHTML 5 ドラフト (ワーキング ドラフト) が ...
ロゴの最適化: 1.ロゴ画像はできるだけ小さくしてください。 2. 一般的には背景として配置されます...
Nginx ログは、ユーザーの住所の場所や行動プロファイルなどを分析するために使用できます。Elas...
私が現在の仕事の面接を受けたとき、リーダーが真剣にこう言っていたのを覚えています。「今の世の中はイン...
xshell を使用したリモート接続システムの自動切断の問題の解決策: 1. サーバー構成サーバーは...