Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MySQL Shell dumpInstance のバグを調べた件

MySQL Shell dumpInstance のバグを調べた件

Avatar for Satoshi MITANI

Satoshi MITANI

December 11, 2020
Tweet

More Decks by Satoshi MITANI

Other Decks in Technology

Transcript

  1. MySQL Shell の util.dumpInstance おさらい • 論理バックアップ • 並列で⾼速にバックアップ •

    1つのテーブルをチャンクに分けてSELECT 3 $ ls -rw-r----- 1 samitani users 296 Oct 28 23:13 t.json -rw-r----- 1 samitani users 531 Oct 28 23:13 t.sql -rw-r----- 1 samitani users 289084 Oct 28 23:13 t@t@@0.tsv -rw-r----- 1 samitani users 8 Oct 28 23:13 t@t@@0.tsv.idx
  2. ⼀貫性がどのように担保されているか 5 FLUSH TABLES WITH READ LOCK START TRANSACTION START

    TRANSACTION START TRANSACTION UNLOCK TABLES SELECT 〜 FROM t WHERE pk BETWEEN 1 AND 100 SELECT 〜 FROM t WHERE pk BETWEEN 101 AND 200 SELECT 〜 FROM t WHERE pk BETWEEN 201 AND 300 この間は 書き込め ない
  3. ⼀貫性がどのように担保されているか 6 FLUSH TABLES WITH READ LOCK START TRANSACTION START

    TRANSACTION START TRANSACTION UNLOCK TABLES SELECT 〜 FROM t WHERE pk BETWEEN 1 AND 100 SELECT 〜 FROM t WHERE pk BETWEEN 101 AND 200 SELECT 〜 FROM t WHERE pk BETWEEN 201 AND 300 この間は 書き込め ない なるほど かしこい
  4. 原因 10 FLUSH TABLES WITH READ LOCK START TRANSACTION START

    TRANSACTION START TRANSACTION UNLOCK TABLES SELECT 〜 FROM t WHERE pk BETWEEN 1 AND 100 SELECT 〜 FROM t WHERE pk BETWEEN 101 AND 200 SELECT 〜 FROM t WHERE pk BETWEEN 201 AND 300 LOCK TABLES mysql.proc
  5. 原因 11 FLUSH TABLES WITH READ LOCK START TRANSACTION START

    TRANSACTION START TRANSACTION UNLOCK TABLES SELECT 〜 FROM t WHERE pk BETWEEN 1 AND 100 SELECT 〜 FROM t WHERE pk BETWEEN 101 AND 200 SELECT 〜 FROM t WHERE pk BETWEEN 201 AND 300 LOCK TABLES mysql.proc 暗黙の コミット
  6. MySQL Shell のビルドが茨の道だった • 本体もビルドが必要 • 本体は cmake3 系 •

    Shell は cmake2 系 • 他にも⾊々・・・ • https://mita2db.hateblo.jp/entry/2020/11/05/223232 • (CentOS 7 以外なら簡単かも) 14
  7. まとめ • dumpInstance はFTWLで⼀貫性を確保 • バグは 8.0.23 で修正されるよ • MySQL

    Shell @CentOS7 でのビルド⽅法 • https://mita2db.hateblo.jp/entry/2020/11/05/223232 • MySQL Shell デバッグにも便利︕ 17