mysql バックアップ スクリプト mysqldump の使い方の詳細な説明

mysql バックアップ スクリプト mysqldump の使い方の詳細な説明

この記事では、参考までにMySQLバックアップスクリプトを紹介します。具体的な内容は次のとおりです。

#!/bin/bash
#フルバックアップモード。通常はスレーブマシンで実行され、小規模および中規模のMySQLデータベースに適しています。#15日以上前のバックアップを削除します。#作成者: fafu_li
#日付: 2015.08.10

source /etc/profile #システム環境変数をロードsource ~/.bash_profile #ユーザー環境変数をロードset -o nounset #初期化されていない変数を参照したときに終了する#set -o errexit #シェルコマンドの実行時にエラーが発生したときに終了するuser="root"
パスワード="123456"
ホスト="localhost"
ポート="3306"
#バックアップするデータベース、配列 db=("test")
#バックアップ中のロックモード、
#MyISAM はテーブル --lock-all-tables によってロックされています。
#InnoDB は行をロックします --single-transaction
ロック="--シングルトランザクション"
mysql_path="/usr/local/mysql"
バックアップパス="${mysql_path}/バックアップ"
日付=$(日付 +%Y-%m-%d_%H-%M-%S)
日=15
バックアップログ="${mysql_path}/backup.log"

#バックアップディレクトリを作成する if [ ! -e $backup_path ]; then
  mkdir -p $バックアップパス
フィ

# 前回のバックアップを削除する find $backup_path -type f -mtime +$day -exec rm -rf {} \; > /dev/null 2>&1

echo "データベースのバックアップを開始します: ${db[*]}"

#バックアップと圧縮backup_sql(){
  データベース名=$1
  バックアップ名="${dbname}_${date}.sql"
  #-R ストアドプロシージャ、関数、トリガーをバックアップします。mysqldump -h $host -P $port -u $user -p$password $lock --default-character-set=utf8 --flush-logs -R $dbname > $backup_path/$backup_name  
  [[ $? == 0 ]]の場合
    cd $バックアップパス
    tar zcpvf $バックアップ名.tar.gz $バックアップ名
    サイズ=$(du $backup_name.tar.gz -sh | awk '{print $1}')
    rm -rf $バックアップ名
    echo "$date のバックアップ $dbname($size) が成功しました"
  それ以外
    cd $バックアップパス
    rm -rf $バックアップ名
    echo "$date のバックアップ $dbname が失敗しました"
  フィ
}

#ループバックアップの長さ=${#db[@]}
(( i = 0; i < $length; i++ )); の場合
    backup_sql ${db[$i]} >> $backup_log 2>&1
終わり

echo "バックアップが完了しました。結果は $backup_log で確認してください"
du $backup_path/*$date* -sh | awk '{print "ファイル:" $2 "、サイズ:" $1}'

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Windows での MySQL 自動バックアップのバッチ処理の実装 (ディレクトリのコピーまたは mysqldump バックアップ)
  • MySQLdump コマンドを使用した MySQL データの移行
  • Linux mysqldump によるデータベース、データ、テーブル構造のエクスポートの詳細な説明
  • mysqldumpデータエクスポートの問題に関する詳細な議論
  • mysqldump (MySQL データベースのバックアップとリカバリ) の使用方法についての簡単な説明
  • MySQL データベースを手動および自動でバックアップする 8 つの方法
  • LinuxはMySQLデータベースの自動バックアップとスケジュールバックアップを毎日実装しています
  • MySQL 自動バックアップとリカバリのいくつかの方法の詳細な説明 (グラフィック チュートリアル)
  • CentOS システムで MySQL の自動毎日バックアップを設定する方法
  • Centos7 で mysqldump を使用して MySQL データベースの毎日の自動バックアップを作成する

<<:  vue-routerフック関数はルーティングガードを実装します

>>:  docker+devpi を使用してローカル pypi ソースをビルドする方法

推薦する

私の CSS フレームワーク - base.css (ブラウザのデフォルト スタイルをリセット)

コードをコピーコードは次のとおりです。 @文字セット "utf-8"; /* @...

K8Sの5つのコントローラーの紹介と使用

目次k8sのコントローラータイプポッドとコントローラの関係デプロイメント(ステートレスアプリケーショ...

ホワイトボードを踏まないようにするゲームを実装するための HTML+CSS+JS

目次背景1. 思考分析2. ページ構成2.1 HTML レイヤー2.2 CSS レイヤー2.3 JS...

Nginx の負荷分散方法の概要

負荷分散を理解するには、まずフォワード プロキシとリバース プロキシを理解する必要があります。注記:...

MySQL の instr を使用したファジー クエリ メソッドの紹介

MySQL の内部関数instrを使用すると、従来の like クエリ メソッドを置き換えることがで...

Reactの原理の説明

目次1. setState() の説明1.1 データの更新1.2 推奨構文1.3 2番目のパラメータ...

VUE と Canvas を使用して Thunder Fighter タイピング ゲームを実装する方法

今日は、サンダーファイタータイピングゲームを実装します。ゲームプレイは非常に簡単です。それぞれの「敵...

Vue2.x の応答性の簡単な説明と例

1. Vue レスポンシブの使用法を確認する​ Vue の応答性は、私たち全員がよく知っています。 ...

Linux で pip 操作中にタイムアウトが発生する問題を解決する方法

Linuxインスタンスでpipを使用する際のタイムアウト問題を解決する方法pip は最も人気のある ...

ページキャッシュを無効にするいくつかの方法を共有する

本日、開発中に、顧客からページをキャッシュしないように要求される方法に遭遇しました。調べたところ、ペ...

SpringBoot でマイクロサービスを構築するために Docker を使用した実際の記録を分析する

それは何ですか? Spring Boot は、Spring オープンソース組織のサブプロジェクトであ...

ウェブ開発で遭遇した問題と経験

<br />以下は開発中に遭遇した問題と、そこから得た経験です。デバッグに時間がかかりま...

Dockerコンテナのk8sデプロイメントの実装

環境: (docker、k8s クラスター)、前回 docker で起動した Java プログラムの...

MySQL slow_log テーブルを InnoDB エンジンに変更することはできません。詳細な説明

背景mysql.slow_log からスロー クエリ ログを取得するのは遅く、テーブルは csv テ...

Unicode の数学記号の概要

数学、物理学、および一部の科学技術分野で使用される特殊記号は多数あります。Unicode コードには...