MySQLのスペースをクリーンアップするいくつかの具体的な方法

MySQLのスペースをクリーンアップするいくつかの具体的な方法

序文

MySQL 環境では、MySQL の障害はデータ ディスクがいっぱいになることによって発生することがよくあります。以下は、MySQL 環境で MySQL スペースをクリーンアップする方法の概要です。

1. ファイルのディスク使用量を確認する

1.1 ディスク容量の使用状況を確認する

[root@mysqlhost01 /]# df -lh

ここに画像の説明を挿入

1.2 ディレクトリスペースの使用状況を確認する

[root@mysqlhost01 /]# du -sh /usr
5.5G /usr

ここに画像の説明を挿入

2.Binlogログのクリーニング

2.1. Binlogログを定期的に自動クリーンアップする

mysql> '%expire_logs_days%' のような変数を表示します --mysql 5.7
mysql> '%binlog_expire_logs_seconds%' のような変数を表示します --mysql8.0

マイSQL8.0
MySQL 8 は、expire_logs_days で始まります。binlog_expire_logs_seconds を無効にします。binlog を設定して、ログを自動的にクリアします。秒単位で時間を節約します。デフォルト: 30 日間の場合は 2592000、4 時間の場合は 14400、1 日の場合は 86400、3 日の場合は 259200。
mysql> グローバルbinlog_expire_logs_seconds=86400を設定します。

マイSQL5.7
デフォルト値は 0 で、ログの有効期限が切れないことを意味します。グローバル パラメータを設定すると、一時的に有効にすることができます。
mysql>グローバルexpire_logs_daysを10に設定します。

ここに画像の説明を挿入

2.2 Binlogログを手動で削除する

ステップ 1: MySQL にログインし、show binary logs; を使用してログ ファイルを表示します。
mysql>バイナリログを表示します。
ステップ 2: 使用中のログ ファイルを表示します: show master status;
mysql>マスターステータスを表示します。
現在使用されているログ ファイルは mysqlhost01-bin.000010 なので、ログ ファイルを削除するときはこのファイルを除外する必要があります。
ログ ファイルを削除するコマンド: purge binary logs to 'mysqlhost01-bin.000010';
mysql>バイナリログを 'mysqlhost01-bin.000010' に消去します。
mysqlhost01-bin.000010 以外のログ ファイルを削除します。mysql-bin.000003 などの別のファイル名を指定することもできます。
削除するとほとんどのスペースが解放されます。

ここに画像の説明を挿入

2.3.スローログクリーニング

ステップ 1: スロー ログ モードを確認します。mysql>show variables like 'log_output%';
ステップ 2 スロー ログ ファイルの場所を確認し、「%slow%」などの変数を表示します。
ステップ3 スローログをクリアする [root@mysqlhost01 /]# cd /usr/local/mysql57/mysql5730/data
[root@mysqlhost01 データ]# echo "">mysqlhost01-slow.log

ここに画像の説明を挿入

ここに画像の説明を挿入

2.4.エラーログの消去

ステップ 1 エラー ログの場所を確認します。mysql>show variables like 'log_error';
ステップ2 エラーログのサイズを確認する [root@mysqlhost01 data]# ll -h log.err
ステップ 3 エラー ログをクリアします echo "">/usr/local/mysql57/mysql5730/data/log.err

ここに画像の説明を挿入

3. テーブルの清掃

大きなテーブルとは、100 GB を超えるディスク領域を占める単一のデータ ファイル、または 1 億を超えるデータ レコードを含む単一のテーブルを指します。

3.1. テーブルスペースとレコード数を確認する

テーブルスキーマ、テーブル名を選択、
concat(round((data_length+index_length)/1024/1024/1024,2),'G') を tablesize_gb として連結し、
information_schema.tables からの table_rows
tablesize_gb desc limit 5 で順序付けします。

table_schema: データベース名 table_name: テーブル名 tablesize_gb: テーブルサイズ (G 単位) table_rows: 行数

ここに画像の説明を挿入

3.2 一般的なテーブルデータのクリーニング

従来型テーブルとは、大型テーブルの基準を満たさないテーブルを指します。
消去
構文: テーブル名から削除 [ where 条件]
削除では条件を満たすデータのみが削除され、テーブルが占有するスペースは削減されません。
大量のデータを削除すると断片が残り、それを整理して再利用する必要があります。テーブル table.name を最適化します。
または、alter table table.name engine='innodb' を実行します (テーブルがロックされるため、業務のオフピーク時に実行するように注意してください)


切り捨て
構文: テーブル table_name を切り捨てる
切り捨てはすべてのテーブル データを削除し、占有されているテーブル スペースを再利用します。

落とす
構文: テーブル table_name を削除します
ドロップすると、すべてのテーブル データとテーブル構造が削除され、占有されているテーブル スペースが再利用されます。

これで、MySQL スペース クリーニングのいくつかの具体的な方法について説明したこの記事は終了です。MySQL スペース クリーニングに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Alibaba Cloud MySQL スペースをクリーンアップする方法

<<:  HTML入力ドロップダウンメニューを実装する方法

>>:  ウェブフォーム送信方法の詳細な概要

推薦する

Linux で ARM 開発ボード用のファイルシステムを作成する

1. Busyboxのソースコードをオンラインでダウンロードしてください。コンパイル方法については、...

Angularプロジェクトにおける共有モジュールの実装の詳細な説明

目次1. 共有共通モジュール2. 共有マテリアルモジュール3. 共有確認ダイアログ1. 共有共通モジ...

Vueはタブを切り替えてデータの状態を維持する3つの方法を実装します

Vue でタブ切り替えを実装する 3 つの方法1. v-showはコンテンツの切り替えを制御します1...

Linux コマンドライン操作 Baidu クラウドのファイルのアップロードとダウンロード

目次0. 背景1. インストール2. Baidu Cloudアカウントにログインする3. ファイルを...

CSS を使用して複数の方法で下揃えを実装するサンプル コード

会社のビジネス要件により、次の図の赤い領域の効果を達成する必要があります。 効果の説明: 1. 赤い...

HTML で色を表すには、6 桁の 16 進コード、RGB、またはキーワードを使用します。

HTML で色を表す方法は 3 つありますが、最もよく使われるのは 6 桁の 16 進コード表現です...

Markodwnによるタイトル配置による同期スクロールのアイデアの詳細な説明

序文私が作成中の Markodwn エディターに同期スクロール機能を追加する必要があります。Baid...

HTMLのタグと要素の違いの詳細な説明

ウェブページに慣れていない友人の多くは私と同じように、HTML で要素、タグ、属性がどのように定義さ...

JSはreduce()メソッドを使用してツリー構造データを処理します

目次意味文法例1. 初期値initが渡されない2. 初期値を渡す場合3. アレイの重複排除4. Re...

MySQL マスタースレーブレプリケーションでエラーをスキップする方法

1. 従来のbinlogマスタースレーブレプリケーション、エラー報告をスキップする方法 mysql&...

仮想マシンを作成し、VMware に Redhat Linux オペレーティング システムをインストールする (グラフィック チュートリアル)

VMware で仮想マシンを作成し、Redhat Linux オペレーティング システムをインスト...

Vue での keepAlive の使用例の詳細な説明

開発においては、一覧から詳細ページにジャンプし、また詳細ページに戻る際に一覧ページの状態(スクロール...

HTMLテーブルレイアウトの実践的な使い方の詳しい説明

テーブルはいつ使用されますか?最近では、Web ページの全体的なレイアウトにテーブルが使用されること...

ES6拡張演算子の理解と使用シナリオ

目次1. 適用メソッドを置き換え、関数を呼び出すときにパラメータを処理する2. 残りパラメータ(残り...