1927 件中 351 - 360 件を表示
« 前の 10 件 | 次の 10 件 »
Displaying posts with tag: MySQL (reset)
MySQL の接続まわりのエラー

MySQL で Host '〜' is blocked because of many connection errors が出るのってどういうときだっけ…とふと思ったので接続周りを調べてみた。

クライアントごとの連続接続失敗によるブロック

マニュアル https://dev.mysql.com/doc/refman/8.0/en/blocked-host.html にはこう書かれてる (DeepL翻訳)

システム変数 max_connect_errors の値は、何回連続して中断される接続要求を許可するかを決定します。max_connect_errors が接続に成功せずにリクエストに失敗した後、mysqld は何か問題がある (誰かが侵入しようとしているなど) と判断し、FLUSH HOSTS 文、Performance Schema host_cache テーブルを切り捨てる TRUNCATE TABLE 文、または …

[さらに読む]
MySQL Group Replication vs Percona XtraDB Cluster 〜フルデータコピー中のDDLブロック 編〜

フルデータコピーが行われるタイミング

PXCMySQL Group Replication では、新規にノードを追加したタイミングや、障害発生後、既存ノードからデータをコピーし、復旧する機能があります。

データコピー中のDDLの挙動の比較

フルデータコピーには非常に時間がかかることが予想されます。 DDLはあまり日常的に流れるものではないと思いますが、万が一、コピー中にDDLが走ってしまったときにどうなるか確認してみます。

検証内容:

  1. CREATE / …
[さらに読む]
mysqlrouterのdisconnect_on_metadata_unavailableはURIに書く

TL;DR

The metadata-cache URI options are:

disconnect_on_metadata_unavailable なるものの存在を知って mysqlrouter.conf に書いてみたけど反映されなくてよく読んだらURIオプションだった。

$ sudo vim /etc/mysqlrouter/mysqlrouter.conf
..
[routing:myRs_ro]
bind_address=0.0.0.0
bind_port=6447
destinations=metadata-cache://myRs/?role=SECONDARY
round-robin-with-fallback
protocol=classic
disconnect_on_promoted_to_primary=yes ### 間違い!!!
..

↑のようにルーティングセクションにそのまま書くのではなくて、ルーティングセクションの …

[さらに読む]
mysqlrouterに ERROR 2003 (HY000): Can't connect to remote MySQL server for client connected to '0.0.0.0:6446' と言われたら

TL;DR

  • ポートに対応する宛先(デフォルトでは6446はマスター、6447なら全てのスレーブとマスターも(デフォルトだとフォールバックするから))のmysqldが全滅していると、CR_CONN_HOST_ERROR(2003)の後ろのアドレスがmysqlrouterのLISTENポートになる

    • どこが落ちてるのかメッセージからわかりにくいと嘆かないで、「全滅した時だけ」だから
    • 切り分けの一助になれば幸い
  • ただしこの「全滅」は _hidden: true を含む。

[さらに読む]
MySQL InnoDB Cluster/ReplicaSet 8.0.21で「mysqlrouterから参照されないように」設定する

TL;DR

まずはフツーにMySQL Shellでサンドボックスを3つばかり作る。

$ mysqlsh -- dba deploySandboxInstance 3306 { --password="" }
$ mysqlsh …
[さらに読む]
Percona Playback で 本番 MySQLに流れているクエリを試験環境でリプレイする

データベースのバージョンアップの際、アプリケーションの網羅的なテストが可能であれば良いのですが、どうしても難しいケースがあります。 そのような場合、リプレイツールで本番環境に流れているクエリを、試験環境でリプレイ(再現)し、動作確認を取る方法もあります。

リプレイツールを探す

MySQL の クエリ リプレイができるツールを探してみました。

Percona Tookit に pt-log-player というツールが含まれていたのですが、いつのまにか、なくなってました。。。 2013年にリリースされた、percona tookit 2.2 で削除されてしまったようです。

We removed pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player. …

[さらに読む]
MySQL Shell で検証環境を作る

日々、検証のためDBサーバを作っては捨て、作っては捨てる・・を繰り返しています。 そうすると、検証環境を作る手間を省きたくなってきます。

dbdeployerdocker-composechef など、いろいろなツールを試してきましたが、結局、白紙の仮装マシン(VM)を立てて、一から構築することが多いです。 それが一番慣れてますからね。。。

今回は、MySQL Shell の サンドボックス機能を試してみました。

MySQL Shell をインストールする

$ yum install -y …
[さらに読む]
MySQL スロークエリログからやたら遅いクエリだけ取り出す

日常的に、long_query_time をちょっと超えているクエリが流れていて、スロークエリログが多く出力されているDBってあったりしますよね?

そんなログからノイズとなってしまっている、ちょっと遅いクエリは除いて、非常に重症のクエリのログだけに絞って見たいときどうするか。

今まで、grepawk でゴニョゴニョしてがんばってたんですが、pt-query-digest を使えば簡単にできました・・・

pt-query-digest でフィルタだけする

pt-query-digest はスロークエリログを集計し、「遅いクエリランキング」等のレポートを生成できるツールです。SQLチューニングする時によく使っています。

[さらに読む]
MySQL ALTER TABLEとその影響まとめ

MySQLの初期のALTER TABLEの実装は非常にシンプルな実装でした。 新しいテーブル定義で(内部的に)一時テーブルを作成し、そこに既存のデータをコピーして、コピーが終わったら入れ替えます。コピー中は更新をブロックします。

MySQL v5.6 で オンラインDDL がサポートされ、更新がブロックされなくなりました。 また、v8.0 では、INSTANT ADD COLUMN が登場し、カラム追加が一瞬できるようになりました。

このように MySQL の …

[さらに読む]
MySQL 8.0 vs 外部キー制約 vs ALTER TABLEでメタデータロック待ちになったら疑うこと

TL;DR

[さらに読む]
1927 件中 351 - 360 件を表示
« 前の 10 件 | 次の 10 件 »