アイデア それは実はとても簡単です シェル スクリプトを記述して、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 でヘッドレス ブラウザであるかどうかを検出する方法
MySQL のインストールは、インストール バージョンと解凍バージョンに分かれています。インストール...
1. グローバルオブジェクトすべてのモジュールは呼び出すことができます1) global: ブラウザ...
前回の記事では、https を使用したローカルノードサービスアクセスを実装しました。前回の記事の効果...
MySQL 5.7.21 winx64無料インストールバージョンの設定方法、参考までに、具体的な内容...
目次1. 魔法の拡張演算子1. 配列をコピーする2. 配列を結合する3. オブジェクトを展開する2....
--データベースに接続するとき、ホストとユーザーのマッチングルール公式ドキュメント: https:/...
この記事では、例を使用して、MySQL データベースの基本的な知識と操作について説明します。ご参考ま...
1. 背景Docker サービスが開始されると、デフォルトで docker0 ブリッジが作成され (...
問題の背景: docker を使用してプロジェクトをデプロイする場合、プロジェクト内で印刷コントロー...
1. cuda10.1をダウンロードします。 NVIDIA 公式ウェブサイト リンク: https:...
1. 仮想マシン(物理マシン)をインストールする仮想マシンまたは物理マシンにインストールできます。 ...
2つのケース: 1. 索引あり 2. 索引なし前提条件:方法: コマンドラインを使用してシミュレート...
この記事では、Linux のユーザーおよびグループのコマンドについて例を挙げて説明します。ご参考まで...
背景レプリケーションはデータの完全なコピーです。レプリケーションが必要な理由として、まず思い浮かぶの...
目次1. 通常の機能2. 矢印関数3. データパケットJSON 4. オブジェクト5. 約束6. 非...