MYSQL ログとバックアップおよび復元の問題の詳細な説明

MYSQL ログとバックアップおよび復元の問題の詳細な説明

この記事では、参考までにMYSQLログとバックアップとリストアについて紹介します。具体的な内容は以下のとおりです。

1. エラーログ

データベースに障害が発生して使用できない場合は、まずログを確認してください。

1. サーバーの起動とシャットダウン時の情報

2. サーバー操作中のエラー情報

ログ保存パスは次のコマンドで確認できます。

ログファイルの命名形式: host_name.err

2. バイナリログ

BINLOG とも呼ばれ、クエリ ステートメントを除くすべての DDL ステートメントと DML ステートメントを記録します。このログは非常に重要であるだけでなく、開発者として私はこのログがとても気に入っています。定義からわかるように、このログにはテーブル構造とテーブルデータを変更するすべてのイベントが記録されるため、誤ってデータが削除されたり、その他の理由で失われたりした場合は、このログを通じてデータを復元できます。かっこいいと思いませんか?

ログ保存パス: エラーログと同じディレクトリ

命名方法: デフォルトの方法はホスト名-bin + 番号です

MySQL が起動またはログをフラッシュするたびに、新しい binlog が生成され、番号は 1 から始まり増加します。 1 つのログが一定のサイズに達すると、新しいファイルが生成されます。

1. バイナリログを記録するためのスイッチをオンにする

myslqのインストールディレクトリには、設定ファイルmy.iniがあります。

innodb_buffer_pool_size=107M

# ロググループ内の各ログファイルのサイズ。合計サイズを設定する必要があります
ログファイルの数をバッファプールサイズの約25%~100%に抑えることで、
# ログファイルの上書き時に不要なバッファプールのフラッシュアクティビティが発生します。ただし、
# ログファイルのサイズが大きいほど、
# 回復プロセス。
innodb_log_file_size=54M

# InnoDBカーネル内で許可されるスレッド数。最適値は
# アプリケーション、ハードウェア、OSに大きく依存します
# スケジューラのプロパティ。値が高すぎると、スレッドのスラッシングが発生する可能性があります。
innodb_thread_concurrency=10

ログ bin = mysql bin

log-bin はスイッチがオンになっていることを示し、mysql-bin はログ名のプレフィックスです。

2. BINLOGの表示方法

バイナリファイルなので、エラーログのように直接見ることはできません。MySQLが提供するツール、mysqlbinlogを使用する必要があります。

3. 時間別にBINLOGを表示する

時間でクエリを実行するときに注意すべきことの 1 つは、start-datetime は閉じた間隔であり、stop-datetime は開いた間隔であるということです。したがって、1 日のログ全体をクエリする必要がある場合は、次のように定義する必要があります。
--start-datetime="2017/07/12 00:00:00" --stop-datetime="2017/07/13 00:00:00": クエリの時間範囲は 7/12 00:00:00 - 7/12 24:59:59 です

3. データのバックアップ

データのバックアップでは、実際には msyql が提供するツール mysqldump を使用して、指定されたディレクトリ内の指定されたファイルにデータをバックアップします。

1. 指定されたデータベースまたはデータベース内の一部のテーブルをバックアップします

mysqldump 【オプション】 db_name 【テーブル名】

2. 指定された1つ以上のデータベースをバックアップする

mysqldump 【オプション】 --database db_name1 db_name2

3. すべてのデータベースをバックアップする

mysqldump [オプション] -all -databases

ポート3306のデータベースインスタンスのデータベースwd_msgのテーブル構造とテーブルデータをcd.sqlファイルにエクスポートします。

cd.sql ファイルの内容は次のとおりです。

このファイルには、クエリ関連の操作を除く DML ステートメントと DDL ステートメントが記録されます。データを回復する場合、これらのステートメントを 1 つずつ実行して、データの復元を完了できます。

4. データ復旧

テーブルを削除し、エクスポートしたデータを再インポートします。

次のシナリオは、同じサーバー上のポート 3307 を持つ別の MySQL インスタンスで wd_msg データベースを復元することです。

MySQL のバックアップと復元には、さまざまなシナリオに応じたさまざまなオプションがあります。これは、ここで紹介した概念の 1 つにすぎません。後ほど、詳細を紹介する記事があります。

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

以下もご興味があるかもしれません:
  • mysqldump のバックアップとリストア、および mysqldump のインポートとエクスポートのステートメントの詳細な説明
  • MySQL データベースをバックアップ/復元するための PHP コード
  • 推奨されるMySQLデータベースのバックアップと復元方法
  • MySQL データベースのバックアップと復元によく使用されるコマンドの概要
  • innobackupex と xtrabackup を使用して MySQL のビッグデータをバックアップおよび復元するチュートリアル
  • MYSQL バックアップとリストアの詳細な説明 (PHP 実装)
  • コマンドラインモードでMySQLデータベースをバックアップおよび復元するためのステートメントの概要
  • MySQLはコマンドを使用してデータベースをバックアップおよび復元します
  • MySQL ログファイルはどこにありますか? MySQL ログファイルの場所を変更する方法
  • MySQLはトレースログを表示して実行されたSQL文を追跡します。

<<:  Reactにおけるフックの一般的な使用法

>>:  Dockerコンテナの自動終了を停止する方法の詳細な説明

推薦する

JavaScript における async と await の使い方とメソッド

JS の async 関数と await キーワード 関数ヘルワールド() { 「こんにちは!美しい...

SQL実装 LeetCode (176. 2番目に高い給与)

[LeetCode] 176. 2番目に高い給与従業員テーブルから 2 番目に高い給与を取得する ...

1 つの記事で Nginx の現在の制限を理解する (簡単な実装)

Nginx は現在、最も人気のあるロード バランサーの 1 つです。インターネット トラフィックの...

WeChatアプレットが9マスグリッド効果を実現

この記事では、WeChatアプレットの9マスグリッド効果を実現するための具体的なコードを参考までに紹...

JavaScript継承のさまざまな方法とメリット・デメリットを詳しく解説

目次1. プロトタイプチェーン継承2. コンストラクタの借用(古典的な継承) 3. 組み合わせ継承4...

Vue の関連ページへのマルチレベルジャンプ (ページドリルダウン) 機能の完全な例

背景プロジェクト開発プロセスでは、前のページから次のページにジャンプする必要に迫られることがよくあり...

ブルートフォース攻撃を防ぐためのシェルスクリプト設定

シェルスクリプトはアクセス制御を設定し、複数回のログイン失敗後にIPをブロックしてSSHのブルートフ...

Linux での tcpdump コマンド例の詳細な説明

序文簡単に言えば、tcpdump は、ネットワーク上のトラフィックをダンプし、ユーザーの定義に従って...

IE6/7 で絶対配置された要素が不可解に消えたりブロックされたりする問題を解決する方法

1. 絶対配置レイヤーの隣接フローティング レイヤーの幅が親レイヤーの幅と等しくなく、フロートがクリ...

N キロメートル以内のデータを検索する MySQL の簡単な例

地球の円周率と半径、検索ポイントの経度と緯度から、検索ポイントと検索データテーブル間の距離はNキロメ...

Centos 7 mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar の簡単な分析

Baiduクラウドディスク:リンク: https://pan.baidu.com/s/1hv5rUW...

Centos8 で yum を使用して rabbitmq をインストールするチュートリアル

/etc/yum.repos.d/フォルダに入るrabbitmq-erlang.repo ファイルを...

一般的な Dockerfile コマンドの使用方法の紹介

目次01 CM 02 エントリーポイント03 ワークディレクトリ04 環境05 ユーザー06巻07 ...

MySQL 5.7.17 のインストールと使用方法のグラフィックチュートリアル

MySQL は、スウェーデンの会社 MySQL AB によって開発され、現在は Oracle が所有...

CentOS7 上で KVM 仮想化プラットフォームを構築する (3 つの方法)

KVM はカーネルベースの仮想マシンの略で、Linux をハイパーバイザーに変換する Linux ...