32 件中 1 - 10 件を表示
次の 10 件 »
Displaying posts with tag: 3rd_party (reset)
pt-online-schema-changeがColumn 'xx' cannot be nullで止まる

TL;DR

  • NULLが入っているカラムを後から NOT NULL にしようとすると出る
  • 何故出るかというと、 INSERT IGNORE INTOがNOT NULL DEFAULTを裏切る から敢えて SHOW WARNINGS を拾ってエラーにしている
    • 裏切られるのを承知の上で強行するなら pt-online-schema-change --null-to-not-null でいける
  • UPDATE t1 SET val = ? WHERE val IS NULL でNULLを排除してからpt-online-schema-changeすればいいんじゃないかな

日々の覚書: INSERT IGNORE INTOがNOT NULL DEFAULTを裏切る の続き。

pt-oscは INSERT …

[さらに読む]
Percona Toolkitのテスト環境を整える

TL;DR

  • Setting up the development environment の通りに ~やるつもりがない人または~ やっても上手くいかなかった人向け
    • ほら、テストしたいバージョンがいろいろある人とかさ

Setting up the development environment は一通り目を通しておいた方が良い気がします。

Percona Toolkitのテストは MySQL::Sandbox っぽいスクリプトを内包していて、バイナリをポンと置いて環境変数をセットするだけで、3つくらいの …

[さらに読む]
pt-table-checksumでよく使うオプション

メリークリスマイエスキューエル! (と、1日)

この記事は GMOペパボエンジニア Advent Calendar 2020 の26日目の記事のつもりです。
ちなみに私の中の人は GMOペパボではない会社 に勤めています。

最近 pt-table-checksum にお世話になる機会が多くなって、使い方をまとめておこうと思ったメモです。

公式ドキュメントはこちら。

pt-table-checksum 自体は簡単に説明した昔の記事が出てきた。

[さらに読む]
pt-query-digestでtcpdumpから集約せずに全てのクエリーを取り出す

TL;DR

書き出しが全てなのでそれは置いておいてハマったこと。

[さらに読む]
第一印象 of MySQL Ripple

TL;DR

  • MySQL Ripple を試してそっと閉じたメモ。
  • 多分 こういう状態で使うんだと思う
    • マスターの部分はよしなに冗長化されていると思いねえ
    • (おそらく準同期レプリケーションで)マスターに直接スレーブをぶら下げると死んじゃうようなケース
    • あと、このMySQL Ripple自体もたぶん多段構成するんだろうな、とデフォルトのパラメーター(主に -ripple-master-port )を見て思う

ビルド

  • CentOS …
[さらに読む]
gh-ostの最後のステップの `RENAME TABLE ..` を任意のタイミングまで遅延させる

TL;DR

  • --postpone-cut-over-flag-file でテキトーなファイルを指定する
  • RENAME TABLE .. (gh-ostの cut-over フェーズ)をしても良いタイミングになったら、「指定したファイルを消す」または 「 Interactive commandsunpostpone コマンドを放り込む」

gh-ost

[さらに読む]
gh-ostのinteractive-commandを使う

gh-ost には interactive-command なるものが用意されている。 これは gh-ost起動しちゃった後 、後からオプションを変更したりする機能を提供しているっぽい。 デフォルトではソケットファイルのみオープンする。デフォルトのパスは /tmp/gh-ost.<スキーマ名>.<テーブル名>.sock
パスを変えたかったりTCP経由も受け付けてほしい時は gh-ost --serve-socket-file=/tmp/hogegh-ost --serve-tcp-port=9999 とかで設定できる。

$ gh-ost --database=mysqlslap --table=t1 --alter="ADD KEY (intcol1)" --host=127.0.0.1 --port=21801 --user=msandbox …
[さらに読む]
gh-ostでスレーブの遅延を見ながら処理速度を調整する

TL;DR

  • マスターに接続する( --allow-on-master )場合、 --throttle-control-replicas myhost1.com:3306,myhost2.com:3306 で遅延監視対象を指定する
    • スレーブからbinlogを吸い上げてマスターに当て込む場合は、接続先のスレーブで遅延監視をする
  • 閾値は gh-ost --max-lag-millis 1000 で指定する (デフォルト1500ミリ秒)
  • SHOW SLAVE STATUS は叩かず、 *_ghc テーブルに書き込んだハートビートの行と現在時刻の差分で計算する
    • --test-on-replica--migrate-on-replica の時だけ SHOW SLAVE STATUS するっぽい
  • SHOW SLAVE STATUS
[さらに読む]
innotopにmy.cnfや.mylogin.cnfを食わせる方法

TL;DR

  • 何も設定しなくても食うけど、 [client] セクションしか読んでくれないので「読んでない」と思われることが多いっぽい
  • それ以外のセクションを食わせるためには ~/.innotop/innotop.conf に記述が必要だけど割と簡単だよ

innotop はPerl5製で DBD::mysql を使っているので、デフォルトファイルの読み込みは mysql_read_default_filemysql_read_default_group あたりに影響を受ける。 …と思って探してみれば割とさっくり見つかって、

[さらに読む]
ストレージエンジンをインストールしている環境でのリストアではまりがちなこと

TL;DR

  • plugin_dir に必要な .so ファイルを置いておくのは大前提
  • mysqldump から戻す時は、戻す前に自分で INSTALL PLUGIN
  • 物理バックアップから戻すときは基本的にそのまま戻して起動すればおk

周囲1mくらいで2回聞かれたのでメモしておく。
対象は ストレージエンジンプラグイン (デーモンプラグインである innodb_memcached とか mysqlx は対象外)かつサーバーデフォルトで有効になって いない もの( InnoDB, MyISAM などは対象外)、つまりだいたい Mroonga, TokuDB, RocksDB あたりをターゲットとして見ている。 …

[さらに読む]
32 件中 1 - 10 件を表示
次の 10 件 »