ほとんどのアプリケーション シナリオでは、緊急時に備えて重要なデータをバックアップし、安全な場所に保管する必要があります。 一般的な MySQL データのバックアップ方法には、対応するデータベースまたはテーブル ファイルを直接パッケージ化してコピーする (物理バックアップ)、mysqldump 完全論理バックアップ、xtrabackup 増分論理バックアップなどがあります。 一般的なデータ保存方法には、ローカル ストレージ、リモート サーバーへの FTP アップロード、クラウド ストレージ (Alibaba Cloud OSS、Qiniu Cloud Storage など)、さらにはローカル ストレージなどがあります。 オフサイト バックアップが必要なので、毎回手動でバックアップしたり、毎回ダウンロードに多くの時間を費やしたり、サーバー上でデータを失ったりしたくない場合があります。次に、データベースを定期的にバックアップし、指定されたサーバーまたはクラウド ストレージに自動的にアップロードするスクリプトを作成します。 ここでは、Linux サーバー上の MySQL をバックアップし、Qiniu Cloud Storage にアップロードする方法について説明します。 準備 • リナックス •crontab サービス crond サービスが開始済みかつ自動開始状態であることを確認する必要があります。 •gzipコマンド ファイルを圧縮するには、システムで gzip コマンドを正常に実行できる必要があります。 •mysqldumpコマンド 論理データ バックアップの場合、システムは mysqldump コマンドを正常に実行できる必要があります。 mysqldump によってバックアップされたデータは実行可能な SQL で構成されており、バージョンの非互換性の問題はありません。 •qshellツール qshell は、開発者が Qiniu API サービスをテストおよび使用しやすくするために、Qiniu Cloud が Qiniu ドキュメントのパブリック API を使用して公式に実装したコマンドライン ツールです。 具体的なドキュメントとダウンロードアドレス: https://developer.qiniu.com/kodo/tools/1302/qshell • Qiniuクラウドアカウント もちろん、データを保存するための前提条件は、Qiniu アカウントを持っていることです。Qiniu は個人使用のために 10G の無料ストレージ スペースを個人に提供します。登録住所: • 七牛収納スペース Qiniu Cloud アカウントを取得したら、データを保存するためのスペース (バケット) をコンソールに手動で作成する必要があります。 qshell の設定 公式アドレスからダウンロードした qshell は、複数のシステム プラットフォームをサポートする圧縮パッケージです。対応するシステムのバイナリ ファイルを選択し、実行権限を付与します。また、qshell コマンドを直接呼び出すために、/usr/local/bin/ などのディレクトリに配置することもできます。 Qiniu アカウントを設定します。ak と sk は、Qiniu Cloud Console > Personal Center > Key Management にあります。 このコマンドは、ak/sk アカウントを ~/.qshell/account.json に書き込みます。それ以上の設定は必要ありません。 ここで使用する qshell コマンドは rput で、マルチパート アップロード モードでファイルをアップロードします。次のドキュメントを使用します。 https://github.com/qiniu/qshell/blob/master/docs/rput.md qshell rput <バケット> <キー> <ローカルファイル> true qshell のその他の詳細な機能については、ドキュメントを参照してください。 スクリプトの内容 #!/bin/sh #mysql データ バックアップ スクリプト # # mysqldump --help を使用して詳細を取得します。 dbname=あなたのデータベース名 ユーザー=あなたのDBユーザー名 パスワード=あなたのDBパスワード バックアップディレクトリ=/opt/backup/sql ログファイル=/opt/backup/mysqlbak.log datetime=`日付 +%Y%m%d%H%M%S` 保持日=7 echo "------------------------------------------" >> $logFile echo $(date +"%y-%m-%d %H:%M:%S") >> $logFile echo "--------------------------" >> $logFile cd $bakDir バックアップファイル=$dbname.$datetime.sql.gz mysqldump -u $user -p $password $dbname | gzip > $bakFile echo "データベース [$dbname] のバックアップが完了しました" >> $logFile echo "$bakDir/$bakFile" >> $logFile echo "Qiniu Cloud Storage へのバックアップファイルのアップロードを開始します" >> $logFile /usr/local/bin/qshell rput <バケット> database/$bakFile $bakFile true | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" >> $logFile 2>&1 echo "${keepDay} 日前のバックアップ ファイルを削除します" >> $logFile $bakDir -ctime +$keepDay >> $logFile を検索します $bakDir -ctime +$keepDay -exec rm -rf {} \; を検索します。 エコー " " >> $logFile エコー " " >> $logFile スクリプト内のデータベース構成、ログファイル、ストレージパス、<Bucket>などは自分で変更して存在させる必要があります。 database/$bakFile は <Key> を表します。これは Qiniu ストレージ内のパスとファイル名であり、カスタマイズ可能です。 スクリプト ファイルには実行権限が必要であり、その後スクリプトを実行してテストすることができます。 スケジュールされたタスク # 毎日午前2時にバックアップスクリプトを実行する * 2 * * * /opt/backup/baksql.sh スケジュールされたタスクが実行されない場合は、ログ /var/log/cron を確認して問題をトラブルシューティングするか、crond が実行されているかどうかを確認します。 要約する 上記は、Mysql を定期的にバックアップして Qiniu にアップロードする方法を紹介しました。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: 一般的な Linux ツール vi/vim の完全版
開発を行う際に、次のような状況に遭遇することがよくあります。 a.swf が Web ページに追加さ...
目次成果を達成する完全なコード + 詳細なコメントまとめ成果を達成する完全なコード + 詳細なコメン...
この記事では、Linux 環境の Apache サーバーでセカンダリ ドメイン名を構成する方法につい...
目次1. プロジェクト環境: 2: DNSサーバーの設定i: 前方解析を構成する: ii: 逆解像度...
最初のもの: 1. 主要なヘッダーファイルを追加します。 #include <linux/of...
美しいコードは美しい Web サイトの基礎です。優れた CSS は、同様に優れた HTML の上にの...
目次導入Homebrewをインストールするnvmをインストールするノードをインストールするインストー...
効果: コード: <テンプレート> <div class="back-t...
目次1. JavaScript がシングルスレッドなのはなぜですか? 2. タスクキュー3. イベン...
序文プロジェクト開発中、各人のコーディング習慣が異なるため、記述された CSS コードは十分に構造化...
すべてのデータベースの合計サイズを照会する方法は次のとおりです。 mysql> informa...
概要Binlog2sql は、Python で開発されたオープンソースの MySQL Binlog ...
この記事では、主に 2 種類の下線の動的効果について説明します。1 つ目は、ホバーすると X 軸が内...
目次Vue2.x の使用法グローバル登録部分登録使用フック機能フック関数のパラメータVue3.x の...
目次序文紹介-公式設定例序文vueCli を使用してプロジェクトを開発したことのある方は、少しがっか...