Slide 1

Slide 1 text

MySQL GBU January 17, 2020 生駒 眞知子/Machiko Ikoma MySQL Technology Café #7 MySQL Shell を使ってみよう!

Slide 2

Slide 2 text

2 Copyright © 2020 Oracle and/or its a!liates. Safe harbor statement ⟃♴ך✲갪כծ䒦爡ך♧菙涸ז醡ㅷך倯ぢ䚍חꟼׅ׷嚊銲׾铡僇ׅ׷׮ךדׅկת׋ծ䞔㜠䲿⣘׾㈓ ♧ך湡涸הׅ׷׮ךד֮׶ծְַז׷㤍秈ח׮穈׫鴥׬ֿהכדֹתׇ׿կ⟃♴ך✲갪כծوذٔ، ٕװ؝٦سծ堣腉׾䲿⣘ׅ׷ֿה׾؝ىحزًٝز然秈ׅ׷׮ךדכזְ׋׭ծ飑顠寸㹀׾遤ֲ ꥷךⴻ倖勞俱חזׁ׵זְד♴ְׁկ ؙٕؔٓ醡ㅷחꟼ׃ג鎸鯹ׁ׸גְ׷堣腉ךꟚ涪ծٔٔ٦أֶ״ן儗劍חאְגכծ䒦爡ך鄩ꆀח״ ׶寸㹀ׁ׸תׅկ 0SBDMFה+BWBכծ0SBDMF$PSQPSBUJPO⿹ן׉ך㶨⠓爡ծꟼ鸬⠓爡ך碛㕂⿹ן׉ך➭ך㕂חֶֽ׷涫 ꐮ㉀垥דׅկ 俑⚥ך爡せծ㉀ㅷせ瘝כぐ爡ך㉀垥ת׋כ涫ꐮ㉀垥ד֮׷㜥さָ֮׶תׅկ

Slide 3

Slide 3 text

3 Copyright © 2020 Oracle and/or its a!liates. Innovation Dayご参加ありがとうございました!

Slide 4

Slide 4 text

4 Copyright © 2020 Oracle and/or its a!liates. أؾ٦ؕ٦׮傈劤׾弫㋪׃ת׃׋˘

Slide 5

Slide 5 text

5 Copyright © 2020 Oracle and/or its a!liates. Innovation Dayアンケートより • .Z42-4IFMMך堣腉׾濼׷ֿהָדֹծהג׮葺ַ׏׋ • .Z42-4IFMMכ莆㄂帾ְ • .Z42-4IFMMכ״ֻ׻ַ׏גְתׇ׿ד׃׋ָծׁ׻׏ג⢪ ִ׷״ֲחׅץֹה䙼ְתׅ • .Z42-׾湊鋔ׅ׷ךח.Z42-4IFMM׾⢪ְ׋ְה嗚鎢׃גְ ׋ךד鑫׃ְ铡僇הرָٌ鋅׸ג״ַ׏׋ • .Z42-4IFMMךفؚٓ؎ٝזו濼׵זַ׏׋ֿהָ㢳ֻהג ׮׋׭חז׶ת׃׋ ˘זוזו .Z42-4IFMMפך⿾갟׾׋ֻׁ׿ְ׋׌ֹת׃׋

Slide 6

Slide 6 text

6 Copyright © 2020 Oracle and/or its a!liates. 本日のテーマは MySQL Shellです

Slide 7

Slide 7 text

7 Copyright © 2020 Oracle and/or its a!liates. MySQL 8.0.19、MySQL Cluster8.0.19リリース!

Slide 8

Slide 8 text

8 Copyright © 2020 Oracle and/or its a!liates. 本日のお品書き 18:30 -18:35 オープニング 18:35 -19:00 MySQL Shellの機能(Innovation Dayおさらい) 19:00 -19:15 休憩 19:15 -20:30 デモ&もくもく&シェア 20:30 -21:30 ネットワーキング 21:30 撤収

Slide 9

Slide 9 text

9 Copyright © 2020 Oracle and/or its a!liates. 本日使うもの • .Z42-4FSWFS • .Z42-4IFMM • .Z42-3PVUFS • (JU)VCHJU • 1ZUIPO

Slide 10

Slide 10 text

ざっくり解説 MySQL Shell –Innovation Dayのおさらい

Slide 11

Slide 11 text

11 Copyright © 2020 Oracle and/or its a!liates. MySQL Shell Ꟛ涪٥盖椚ך׋׭ך؎ٝةؿؑ٦أ ΍ 㢳鎉铂׾؟ه٦ز ٥+BWB4DSJQU ٥1ZUIPO ٥42- Ύ 㹋遤䕎䒭׾鼅䫛〳腉 ٥غحث ٥؎ٝةؙٓذ؍ـ Ώ .Z42-ِ٦ذ؍ٔذ؍ ٥،حفؚٖ٦سثؑحؕ٦ ٥+40/؎ٝه٦ز ٥넝鸞ر٦ةٗ٦س ΐ 窟さׁ׸׋"1* ٥سًُؗٝزأز،乼⡲ ٥*OOP%#ؙٓأة盖椚

Slide 12

Slide 12 text

12 Copyright © 2020 Oracle and/or its a!liates. 㔳חׅ׷ה˘

Slide 13

Slide 13 text

13 Copyright © 2020 Oracle and/or its a!liates. 実は前から存在していた 5.7.12 2015/4/8 5.7GA (5.7.9) 2016/4/11 2017/4/11 5.7.18 2017/4/12 1.0.9 MySQL Server MySQL Shell 1.0.3 初版 2016/4/11 2019/10/14 8.0.18 2017/4/18 8.0GA (8.0.11) 2019/10/14 8.0.18 2017/4/18 8.0.11

Slide 14

Slide 14 text

14 Copyright © 2020 Oracle and/or its a!liates. インストール・セットアップでおすすめしたいこと h"ps://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-con#guring-options.html • 最新のMySQL Shellを使用する • サーバーが5.7であってもMySQL Shell は8.0を使用する • 実行履歴を保存する • shell.options.setPersist • デフォルトのモードをお好みで設定する(JavaScript/Python/SQL) • JavaScript/Pythonのモジュールも実行可能(xxxx.js,xxxx.py) h"ps://insidemysql.com/mysql-shell-8-0-18/

Slide 15

Slide 15 text

15 Copyright © 2020 Oracle and/or its a!liates. MySQL Shellのオブジェクト dba InnoDB cluster管理 ext MySQL Shellプラグイン mysql 旧プロトコル経由でのMySQL Server操作 mysqlx Xプロトコル経由でのMySQL Server操作 shell MySQL Shell自体のプロパティ sys システム設定 util ユーティリティ(アップグレードチェッカーなど)

Slide 16

Slide 16 text

16 Copyright © 2020 Oracle and/or its a!liates. MySQL Shellのオブジェクト dba InnoDB cluster管理 ext MySQL Shellプラグイン mysql 旧プロトコル経由でのMySQL Server操作 mysqlx Xプロトコル経由でのMySQL Server操作 shell MySQL Shell自体のプロパティ sys システム設定 util ユーティリティ(アップグレードチェッカーなど)

Slide 17

Slide 17 text

17 Copyright © 2020 Oracle and/or its a!liates. プラグインを使うと… h"ps://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-con#guring-options.html • MySQL Serverのステータス情報などのレポート形式をカスタマイズ • 独自オブジェクト、拡張プラグインを追加する • 決まって実施するルーティンの簡略化 • 足りない機能を補完

Slide 18

Slide 18 text

18 Copyright © 2020 Oracle and/or its a!liates. プラグインを拡張するには… https://dev.mysql.com/doc/dev/mysqlsh-api-python/8.0/ • MySQL Shellのメソッドを使う

Slide 19

Slide 19 text

19 Copyright © 2020 Oracle and/or its a!liates. 拡張機能を触ってみる!3ステップ 1. MySQL Shellをインストール! 2. LeFredの公開サンプルをダウンロード! 3. オリジナル拡張機能(プラグイン)を作る!

Slide 20

Slide 20 text

20 Copyright © 2020 Oracle and/or its a!liates. 1. MySQL Shellのインストール例 macOS 以下からdmgパッケージをダウンロードして実行 h"ps://dev.mysql.com/downloads/shell/ Windows 以下からmsiインストーラをダウンロードして実行 h"ps://dev.mysql.com/downloads/shell/ https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install.html Linux系 APTレポジトリ、Yumレポジトリをダウンロードして実行 または以下からrpmパッケージをダウンロードして実行 h"ps://dev.mysql.com/downloads/shell/

Slide 21

Slide 21 text

21 Copyright © 2020 Oracle and/or its a!liates. 2. LeFredの公開サンプルをダウンロード ・URL https://github.com/lefred/mysqlshell-plugins ・ダウンロード方法 もしくはZIP形式ファイルをダウンロードして格納先ファイルパス配下(次ページ参照)にコピーする macOS/Linux $ mkdir -p ~/.mysqlsh/plugins $ git clone h"ps://github.com/lefred/mysqlshell-plugins.git ~/.mysqlsh/plugins/ext Windows $ mkdir %AppData%¥MySQL¥mysqlsh¥plugins $ git clone h"ps://github.com/lefred/mysqlshell-plugins.git %AppData%¥MySQL¥mysqlsh¥plugins¥ext

Slide 22

Slide 22 text

22 Copyright © 2020 Oracle and/or its a!liates. 3. オリジナルの拡張機能(プラグイン)を作る • デフォルトの格納先ファイルパス • 初期化スクリプト • init.jsファイル or init.pyファイル • デフォルトのオブジェクト • shell, dba, util : グローバルオブジェクト • mysql : ShellAPI • mysqlx : Xプラグイン macOS/Linux ~/.mysqlsh/plugins Windows $ %AppData%¥MySQL¥mysqlsh¥plugins MYSQLSH_USER_CONFIG_HOMEで 変更可能

Slide 23

Slide 23 text

23 Copyright © 2020 Oracle and/or its a!liates. Pythonで拡張機能を作成する場合の注意点 • Pythonのコーディング規約PEP8に準拠する h"ps://www.python.org/dev/peps/pep-0008/ • サブフォルダごとに__init.py__ファイルを格納しておく • モジュールをインポートする場合、fromはフルパスで指定する 例) from ext.demo.src import sample h"ps://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-plugins-package.html

Slide 24

Slide 24 text

24 Copyright © 2020 Oracle and/or its a!liates. プラグイングループ • プラグインフォルダ配下にプラグインを分類して格納することが可能 例えば、以下のようなプラグインをまとめて格納する、 特定のテーマに関するレポートを提供する 同じ共通コードを再利用する 同じ拡張オブジェクトに機能を追加する h"ps://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-plugins-groups.html

Slide 25

Slide 25 text

25 Copyright © 2020 Oracle and/or its a!liates. 練習:Oracle8ball サンプル h"ps://github.com/ikomachi226/tecnologycafe7/tree/master/demo

Slide 26

Slide 26 text

26 Copyright © 2020 Oracle and/or its a!liates. Fredのサンプルプラグイン check collations connect innodb innodb_cluster maintenance proxysql router schema security support

Slide 27

Slide 27 text

27 Copyright © 2020 Oracle and/or its a!liates. LeFredのサンプルプラグイン ext.innodb. getFragmentedTablesDisk() • 断片化されている可能性のあるディスクスペースを取得する

Slide 28

Slide 28 text

28 Copyright © 2020 Oracle and/or its a!liates. LeFredのサンプルプラグイン ext.innodb.getAlterProgress() • ALTER TABLEの進捗を取得する

Slide 29

Slide 29 text

29 Copyright © 2020 Oracle and/or its a!liates. 改めまして… 2020/1/13 MySQL Server 8.0.19 リリース! MySQL NDB Cluster 8.0.19 リリース!

Slide 30

Slide 30 text

30 Copyright © 2020 Oracle and/or its a!liates. InnoDB Replicaset New • 非同期レプリケーション • CLONEプラグイン • MySQL Routerを使った手動フェイルオーバー • MySQL Shellによる作成・管理 h"ps://dev.mysql.com/doc/refman/8.0/en/mysql-innodb-replicasets.html h"ps://mysqlserverteam.com/introducing-mysql-innodb-replicaset/

Slide 31

Slide 31 text

31 Copyright © 2020 Oracle and/or its a!liates. InnoDB Cluster VS InnoDB Replicaset InnoDB Cluster InnoDB Replicaset

Slide 32

Slide 32 text

32 Copyright © 2020 Oracle and/or its a!liates. Let’s Replicaset ! サンプル h"ps://github.com/ikomachi226/tecnologycafe7/ ReplicaSet-8019-pb-trying.txt

Slide 33

Slide 33 text

33 Copyright © 2020 Oracle and/or its a!liates. もくもく!

Slide 34

Slide 34 text

34 Copyright © 2020 Oracle and/or its a!liates. Share your ideas! • Shell使ってみた! • こんなプラグイン作ってみた! • あんなプラグインが欲しい! その思いつきが誰かの救世主!になるかも

Slide 35

Slide 35 text

No content