アイデア それは実はとても簡単です シェル スクリプトを記述して、mysql の mysqldump を介してデータを対応する sql ファイルにエクスポートします。Linux の crontab を使用して、対応するスクリプトを定期的に実行し、sql ファイルを対応するディレクトリに保存します。データ量とバックアップ頻度の増加に伴い、バックアップ サーバーのハード ディスク リソースの使用率も急激に上昇することが考えられます。この問題を解決するには、バックアップ コンテンツを定期的にクリーンアップする必要があります。私は単にシェル スクリプトを使用して、crontab を介して定期的にクリーンアップします。注 ここで注意すべき問題がいくつかあります。 mysqldump を介して対応するライブラリ テーブルの SQL をエクスポートすると、mysql サーバーのリソース消費 (cup、memory、io など) が必然的に発生します。mysqldump のデフォルトの方法ではテーブル ロックが発生し、これはひどいことであり、オンライン サービスの中断を引き起こします。一時的なものかもしれませんが、致命的です。(構成によってトランザクション モードに変更でき、テーブルをロックする必要はありません) データ量が増えると、mysqldump が SQL をエクスポートするのにかかる時間も長くなります。 もちろん、データのバックアップでは、対応する期間を選択し、対応する業務状況に応じてバックアップ サイクルを定義することができます。または、MySQL サーバーに多数のデータベースがある場合は、さまざまな業務に応じて異なる期間にバックアップすることもできます。 。 。具体的なビジネス状況によって異なります。 開発とテストのみで使用しているため、データ量はそれほど大きくなく、影響は無視できます。全員が退社した後にバックアップすれば問題ありません(そのため、毎晩12時にバックアップし、1か月後に先月のデータをクリーンアップするように設定しています) 1.mysqldumpの権限 mysqldump に必要な権限の説明: mysqldump には少なくともテーブルに対する選択権限が必要です。ビューの場合、mysqldump には show view 権限が必要です。トリガーの場合、mysqldump にはトリガー権限が必要です。一貫性のあるバックアップを作成するには、mysqldump に lock tables 権限が必要です。 以下はユーザー作成数の推定値です(わからない場合は別途 Google で検索してください。詳細は説明しません)。 ユーザー dumper@'127.0.0.1' を作成します。 tempdb.* に対する選択権限を dumper@'127.0.0.1' に付与します。 dumper@'127.0.0.1' に tempdb.* の show view 権限を付与します。 dumper@'127.0.0.1' に tempdb.* のテーブルロックを許可します。 tempdb.* のトリガーを dumper@'127.0.0.1' に付与します。 2. シェルスクリプト(データエクスポートSQL) #!/bin/sh # データベース情報 DB_USER="ダンパー" DB_PASS="..." DB_HOST="..." # データベース配列 DB_NAME=("ホテル" "食品" "フードウェブ") # その他の変数 BIN_DIR="/usr/bin" #mysql bin パス BCK_DIR="/home/mysql-backups" #バックアップファイルのディレクトリ DATE=`日付 +%F` # ファイルを作成 mkdir $BCK_DIR/$DATE # やるべきこと # /usr/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /mnt/mysqlBackup/db_`date +%F`.sql ${DB_NAME[@]}内のvarの場合; する $BIN_DIR/mysqldump --opt --single-transaction --master-data=2 -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME > $BCK_DIR/$DATE/db_$var.sql 終わり パラメータの説明: --マスターデータ[=#] バイナリ binlog ファイルの場所と名前をバックアップ エクスポート ファイルに追加します。値が 1 の場合、CHANGE MASTER ステートメントが追加されます。値が 2 の場合、CHANGE MASTER ステートメントの前にコメントが追加されます (機能しません~) --単一トランザクション トランザクションとして実行 3. シェル スクリプト (スケジュールに従って N 日前のスクリプトを一括でクリアする) #!/bin/sh /home/mysql-backups -mtime +30 -name "*.*" -exec rm -Rf {} \; を見つけます。 例: /home/lifeccp/dicom/studies: クリーンアップするディレクトリを準備します-mtime: 標準ステートメントの記述 +10: 10 日前のファイルを検索します。数字は日数を表します。+30 は 30 日前のファイルを検索することを意味します" . ": 検索するデータのタイプ。" .jpg" は拡張子 jpg のすべてのファイルを検索することを意味します。" " はすべてのファイルを検索することを意味します-exec: 固定の記述 rm -rf: ディレクトリを含むファイルを強制的に削除します{};: 検索の結果を it4.crontab スケジュールされた開始スクリプトに格納します crontab -e 0 0 * * * /home/sh/mysql-backups/dump.sh 0 0 1 * * /home/sh/mysql-backups/del.sh 以下もご興味があるかもしれません:
|
<<: Win10 DVWA のダウンロード、インストール、構成のグラフィック チュートリアルの詳細な説明 (初心者向け学習侵入)
>>: 現在のブラウザが JavaScript でヘッドレス ブラウザであるかどうかを検出する方法
span タグは HTML ウェブページを作成するときによく使用されますが、このタグの使い方がよくわ...
目次前の1. セットアップ構文シュガーとは何か2. セットアップコンポーネントを使用して自動的に登録...
目次結合アルゴリズム駆動テーブルと非駆動テーブルの違い1. 単純なネストループ結合、単純なネスト、イ...
目次1. 概要1. 説明文テスト2. 結果の各列の説明2. ID列の説明1. 環境整備2. expl...
目次1. 一意の値をフィルタリングする2. 短絡評価2.1 シナリオ例3. ブール変換4. 文字列を...
目次1. 範囲1. グローバルな範囲2. ローカルスコープ2. 変数のスコープ1. グローバル変数2...
遭遇した落とし穴私は午後中ずっと、uni-app で scss を使用する際の落とし穴を解決すること...
Vue - シャトルボックス機能を実装します。効果図は次のようになります。 CS 。移行{ ディスプ...
序文:データベースのバックアップの重要性は、特にデータの損失が深刻な結果を招く可能性がある実稼働環境...
事故の背景: 数日前、プロジェクトの必要性により、サーバーに python-mysql モジュールを...
この記事はGitHub https://github.com/qq449245884/xiaozhi...
CSS ファイルでは、背景を使用する、つまり背景画像を追加する必要がある場合があります。これは通常、...
共同インデックスこの記事におけるジョイントインデックスの定義は次のとおりです (MySQL): AL...
目次1. グローバルガード1. グローバル前線警備2. グローバル解像度ガード3. グローバルポスト...
MySQLにデータを保存するとき、乱雑であまり使用されないデータがJSONフィールドに投げ込まれるこ...