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 で実行中のすべてのプロセスを表示する方法

ps コマンドを使用できます。プロセスの PID など、現在実行中のプロセスに関する関連情報を表示で...

HTML の iframe と frame の違いを例を使って説明します

プロジェクトで frameset 属性を使用したことがあるかどうかはわかりません。昨年、オンライン ...

Vue3.0はvue-grid-layoutプラグインを使用してドラッグレイアウトを実装します。

目次1. プラグイン2. 幕間3. 実装4. 検証機能1. プラグインまず、私たちが選んだプラグイン...

Apache ソースコードのインストールと仮想ホストの設定に関する詳細なチュートリアル

ソースからApacheをインストールする1. Apacheソースコードをアップロードして必要なソフト...

MySQL 子テーブルで外部キー制約チェックを無効にする方法

準備する:教師テーブルと生徒テーブルを定義し、生徒テーブルで教師テーブルIDを参照します。テーブルt...

MySql クライアントが数秒で終了する問題を解決する (my.ini が見つからない)

問題の説明 (環境: windows7、MySql8.0)今日、MySql をインストールした後、M...

Dockerでmysqlのルートパスワードを変更する方法

最初のステップはmysqlコンテナを作成することです docker exec -it コンテナID ...

スクロール時に選択領域のフォント色を暗くするために CSS を使用するサンプルコード

日付ピッカーをカプセル化する場合、選択時にフォントの色を暗くする必要があります。実装後の効果を見てみ...

Vueは携帯電話のカメラとアルバムを呼び出す機能を実装します

この記事では、携帯電話のカメラとアルバムにアクセスするためのVueの具体的なコードを参考までに共有し...

MySQLデッドロックの原因と解決策

データベースは、オペレーティング システムと同様に、複数のユーザーが使用する共有リソースです。複数の...

DockerにJava環境をインストールするための実装手順

この記事は Linux centos8 をベースにして、docker をインストールし、イメージをプ...

スクロールバーを非表示にする HTML の簡単な実装

1. 属性付きHTMLタグXML/HTML コードコンテンツをクリップボードにコピー< htm...

Dapr を使用してマイクロサービスをゼロから簡素化する例

目次序文1. Dockerをインストールする2. Dapr CLIをインストールする3. Net6 ...

Dockerの基本的な手順

目次基本的な指示1. 現在のマシンのコンテナステータスを確認する2. イメージをダウンロードまたは取...

Linux で nohup ログ出力が大きすぎる問題の解決方法の詳細な説明

最近、hadoop テスト クラスターで spark ストリーミング プログラムを実行し、その後、n...