Linux で binlog ファイルの作成時間を表示するコマンド

Linux で binlog ファイルの作成時間を表示するコマンド

背景

MySQL は 26 日の 16:23:49 に大量のスロー クエリを生成しました。この期間中、binlog ファイルは非常に速く更新されました (スロー ログを確認すると、MySQL DML の同時実行性が比較的高いことがわかります)。binlog ファイルの書き込みに何分かかるかを知りたいです。

分析する

• 3つのバイナリログファイルの最終変更間隔はそれぞれ2分と1分です。
•同じトランザクションは同じbinlogファイルにのみ書き込むことができます
•mysql-bin.016126 ファイルの最終変更時刻 16:22 は、必ずしも mysql-bin.016127 ファイルの作成時刻ではありません (大規模なトランザクションの場合、大規模なトランザクションはまだ以前の binlog ファイルに書き込み中であり、新しいトランザクションは新しく作成された binlog ファイルにすでに書き込み中です)
• mysqlbinlogを使用してbinlogファイル内のイベントを読み取り、ファイルの作成時刻を確認します。
•Linux では、ファイルがいつ作成されたかを確認するコマンドはありますか?

方法

1. statコマンドを使用する

stat mysql-bin.016126

ファイル: 'mysql-bin.016126'
サイズ: 262146609 ブロック: 512016 IO ブロック: 4096 通常ファイル
デバイス: fd02h/64770d Inode: 135529302 リンク: 1
アクセス: (0640/-rw-r-----) Uid: ( 5701/actiontech-mysql) Gid: ( 5701/actiontech-mysql)
アクセス: 2019-04-28 14:41:42.967043003 +0800
修正: 2019-04-26 16:24:21.823932020 +0800
変更: 2019-04-26 16:24:21.823932020 +0800

1. アクセス時間: この時間は、このファイルの内容を一度読み取った後に更新されます。たとえば、このファイルに対して more、cat などのコマンドを使用します。 lsコマンドもstatコマンドもファイルのアクセス時間を変更しません。
2. 変更時刻: 変更時刻は、ファイルの内容が最後に変更された時刻です。たとえば、vi の後にファイルを保存します。 ls -lで表示される時刻はこの時刻です
3. ステータス変更時間。これは、ファイルの i-node が最後に変更された時刻です。この時刻は、chmod または chown コマンドを使用してファイル属性が 1 回変更されると更新されます。

ファイルが作成以降変更されていない場合、変更時刻 = 作成時刻になります。ファイルのステータスが作成以降変更されていない場合、ステータス変更時刻 = 作成時刻になります。ファイルが作成以降読み取られていない場合、アクセス時刻 = 作成時刻になります。使用済みのファイルの場合、これらは起こりにくい

--------------------------------------------------------------------------------

2. debugfsを使用する

binlogファイルが保存されているルートディレクトリを取得します

grep 'datas' /etc/fstab
/dev/mapper/centos-datas /datas ext4 デフォルト 1 2

binlogファイルのinode番号を取得する

ls -i mysql-bin.016127
135529232 mysql-bin.016127

ファイルの作成時刻を取得する

debugfs -R 'stat <135529232>' /dev/mapper/centos-datas
debugfs 1.42.9 (2013 年 12 月 28 日)
Inode: 135529232 タイプ: 通常 モード: 0640 フラグ: 0x80000
世代: 2396969921 バージョン: 0x00000000:00000001
ユーザー: 5701 グループ: 5701 サイズ: 262147164
ファイル ACL: 0 ディレクトリ ACL: 0
リンク: 1 ブロック数: 512016
フラグメント: アドレス: 0 番号: 0 サイズ: 0
ctime: 0x5cc2c082:47dcd9bc -- 2019 年 4 月 26 日金曜日 16:25:38
atime: 0x5cc55c49:2929fd18 -- 2019 年 4 月 28 日 (日) 15:54:49
mtime: 0x5cc2c082:47dcd9bc -- 2019 年 4 月 26 日金曜日 16:25:38
crtime: 0x5cc2c035:c470d1d0 -- 2019 年 4 月 26 日金曜日 16:24:21
追加の inode フィールドのサイズ: 28
範囲:

•crtimeはファイルの作成時刻です
• crtimeファイルとmtimeファイルの最終変更時刻の差は1分17秒です
•MySQLはbinlogファイルの書き込みに1分以上かかります

知らせ

xfsファイルシステムは、debugfsを使用してファイルの作成時間を表示することをサポートしていません。

grep ルート /etc/fstab
 /dev/mapper/centos-root / xfs デフォルト 1 1
ls -i /テスト1
 357556 /テスト1
debugfs -R 'stat <357556>' /dev/mapper/centos-root
 debugfs 1.42.9 (2013 年 12 月 28 日)
 /dev/mapper/centos-root: ファイルシステムを開いているときにスーパーブロックに不正なマジックナンバーがあります
 stat: ファイルシステムが開いていません

要約する

上記は、編集者が紹介した Linux での binlog ファイルの作成時間を確認するためのコマンドです。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Golang を使用して Linux 上のファイルのアクセス/作成/変更時間を取得する
  • Linux フォルダファイルの作成と削除の解析
  • Linux パーティションまたは論理ボリュームにファイルシステムを作成する方法
  • Linuxでスワップパーティションファイルを作成する方法
  • 日付フォルダまたはファイルを作成する Linux コマンドのサンプルコード
  • Linux でファイルの作成時間を取得する方法と実践的なチュートリアル

<<:  MySQL の同時実行性の問題と解決策の分析

>>:  JS オブジェクトのコピー (ディープ コピーとシャロー コピー)

推薦する

Linux 上の Tomcat で MySQL にデータを挿入するときに中国語の文字化けが発生する問題を解決する

1. 問題Windows 上の Eclipse を使用して開発されたプロジェクトは Windows ...

MySQL 構成マスタースレーブサーバー (マスター 1 台とスレーブ複数台)

目次アイデアホスト構成confを変更する再起動テストスレーブ 1 の構成スレーブ2の構成マスターとス...

React で遅延読み込みを使用して最初の画面の読み込み時間を短縮する方法

目次使用インストールルーティングでどのように使用しますか?読み込み速度の比較最近、中間およびバックエ...

Redission-tomcatは、単一マシンから複数マシンへの展開を迅速に実装します。

序文一部のプロジェクトの初期段階では、シンプルさとスピードのために、開発と展開は単一のマシンで行われ...

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

この記事では、MySQL 5.7.17のインストールと設定方法を参考までに紹介します。具体的な内容は...

WeChatアプレットでvantフレームワークを使用するための具体的な手順

目次1. アプレットのプロジェクト ディレクトリを開き、ファイルの場所を開きます。 2. プロジェク...

CSS が最初のサイクルで画像を読み込むために @keyframes を使用するときに発生するホワイトギャップの問題 (フラッシュ画面) をすばやく解決します。

問題の説明: CSS アニメーション プロパティを使用すると、ループが最初に読み込まれたときに白いギ...

Vue での weixin-js-sdk の一般的な使用方法の詳細な説明

リンク: https://qydev.weixin.qq.com/wiki/index.php?ti...

JS 関数とコンストラクタを簡単に理解する

目次1. 概要1.1 Functionコンストラクタを使用して関数を作成する1.2 機能と目的2. ...

DockerHubイメージリポジトリの使い方の詳しい説明

これまで使用していたイメージはすべて DockerHub パブリック リポジトリから取得していました...

Intelli Idea で Tomcat 設定が見つからない問題の解決方法

2日前に新しい会社に入社しました。その会社ではIntelli Ideaを使っています。Eclipse...

Dayjs を使用して Vue で一般的な日付を計算する方法

vue を使用してプロジェクトを開発する場合、フロントエンドでは次のような日付と時刻を計算する必要が...

MySQL Index Pushdown (ICP) とは何かを理解するための記事

目次1. はじめに2. 原則III. 実践3.1 インデックスプッシュダウンを使用しない3.2 イン...

Vue で debouce の手ぶれ補正機能を使用する方法

目次1. 手ぶれ補正機能2. Vueでdebouceの手ぶれ補正機能を使用する1. 手ぶれ補正機能2...