TL;DR
-
--postpone-cut-over-flag-fileでテキトーなファイルを指定する -
RENAME TABLE ..(gh-ostのcut-overフェーズ)をしても良いタイミングになったら、「指定したファイルを消す」または 「 Interactive commands のunpostponeコマンドを放り込む」
gh-ost …
[さらに読む]TL;DR
--postpone-cut-over-flag-file でテキトーなファイルを指定する
RENAME TABLE .. (gh-ostの cut-over
フェーズ)をしても良いタイミングになったら、「指定したファイルを消す」または 「 Interactive commands の
unpostpone コマンドを放り込む」
gh-ost …
[さらに読む]
とある原稿を書いていて、トランザクションまわりをチト調べている私です。
あまり深みに入らなければ、4つのトランザクション分離レベルと、それぞれのアノーマリを説明して、はい、終わり、ということにしたいのですが、私には以前気づいてしまった以下の記事があり「あれ、四つ多くない?」を細かく調べることなく放置していたのでした。
Web開発者が知っておくべき八つの分離レベル
しかし、ここで調べなければもやもやは晴れないですし、
神林さんがシリアライズでもパフォーマンスに問題のないRDBMSの実装が終わり、
…
gh-ost には interactive-command なるものが用意されている。 これは
gh-ost を 起動しちゃった後
、後からオプションを変更したりする機能を提供しているっぽい。 デフォルトではソケットファイルのみオープンする。デフォルトのパスは
/tmp/gh-ost.<スキーマ名>.<テーブル名>.sock 。
パスを変えたかったりTCP経由も受け付けてほしい時は gh-ost
--serve-socket-file=/tmp/hoge や gh-ost
--serve-tcp-port=9999 とかで設定できる。
$ gh-ost --database=mysqlslap --table=t1 --alter="ADD KEY (intcol1)" --host=127.0.0.1 --port=21801 --user=msandbox …[さらに読む]
TL;DR
--allow-on-master )場合、
--throttle-control-replicas
myhost1.com:3306,myhost2.com:3306 で遅延監視対象を指定する
gh-ost --max-lag-millis 1000 で指定する
(デフォルト1500ミリ秒)
SHOW SLAVE STATUS は叩かず、 *_ghc
テーブルに書き込んだハートビートの行と現在時刻の差分で計算する
--test-on-replica か
--migrate-on-replica の時だけ SHOW SLAVE
STATUS するっぽい
SHOW SLAVE STATUS …
キープアライブはしばらく前から存在していましたが、それでも多くの人にとって謎です。
したがって、これはkeepalivedがMySQLでどのように機能するかを示す非常に単純な例です。
うまくいけば、これは質問がある人を助けることができます。
Simple master to slaveをセットアップします。
意味..あるイベントで2番目にフェイルオーバーしない限り、1つに書き込みます。
1日 - インストールkeepalived
#yum検索キープアライブ keepalived .x86_64:ロードバランサと高可用性サービス
名前と要約の一致のみ 。すべてを "search all"で検索してください。 #yum -y
install keepalived
これで設定ファイルができました
#ls -ltr /etc/keepalived/keepalived.conf
…
MySQLでは異なる字が等しいと見なされることがあるということを書きました。
この動きはMySQLが独自に変なことをしているわけではなく、Unicodeの規則に従っています。
MySQL 8.0 のデフォルトのCollationは Unicode 9.0.0のUnicode Collation Algorithm(UCA) に従っています。
文字にはそれぞれ Weight という値が設定されていてソートに使用されています。この値が同じなら等しい文字とみなされます。
Collation
utf8mb4 のデフォルトの Collation は utf8mb4_0900_ai_ci …
ツイッターでこういうのがあったので、便乗してMySQLで考えてみるエントリ。
AP屋さんは読むべき。-- SQL大量発行処理をいかにして高速化するか #linux #oracle https://t.co/UkAMBc7KIB @SlideShareから
— ABE Masanori (@abe_masanori) 2019年4月4日
高速化手法として#1-#10の十個がリストアップされています。
#1 SQL発行数の削減 その?
…
新元号が「令和」に決まったことなので、MySQLでの扱いについての話を。
普通の文字
「令」も「和」もJIS第一水準に含まれている基本的な文字なので普通に日本語が使用できるcharsetで使用できます。
mysql> create table t (
utf8mb4 varchar(255) charset utf8mb4,
utf8mb3 varchar(255) charset utf8mb3,
utf16 varchar(255) charset utf16,
utf32 varchar(255) charset utf32,
cp932 varchar(255) charset cp932,
eucjpms varchar(255) charset eucjpms,
sjis varchar(255) charset sjis,
ujis varchar(255) charset ujis
);
mysql> insert into t values ('令和', '令和', '令和', '令和', '令和', '令和', '令和', '令和');
mysql> select * from t\G
*************************** 1. row ***************************
utf8mb4: 令和
utf8mb3: 令和
utf16: 令和
utf32: 令和
cp932: 令和
eucjpms: 令和
sjis: 令和
ujis: 令和
mysql> select hex(utf8mb4), …[さらに読む]
TL;DR
[client]
セクションしか読んでくれないので「読んでない」と思われることが多いっぽい
~/.innotop/innotop.conf
に記述が必要だけど割と簡単だよ
innotop はPerl5製で DBD::mysql を使っているので、デフォルトファイルの読み込みは mysql_read_default_file と mysql_read_default_group あたりに影響を受ける。 …と思って探してみれば割とさっくり見つかって、