Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20190530 osc hokkaido_public

34 views

Published on

MySQL Update 8.0.14,8.0.15 and 8.0.16 (日本語)

Published in: Software
  • Be the first to comment

  • Be the first to like this

20190530 osc hokkaido_public

  1. 1. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal 令和初のOSCに平成最後のMySQL Version 8.0.16 Daisuke Inagaki / 稲垣 大助 MySQL Principal Solution Engineer MySQL Global Business Unit, Oracle Japan
  2. 2. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメントするも のではない為、購買決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、 弊社の裁量により決定されます。 2
  3. 3. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 3 SQL&NoSQL UnmatchedFlexibility Continuous Delivery Model LaunchpadforFuture NewArchitecture EliminatingLegacy OpenSource&Enterprise Scalable&Robust MySQL
  4. 4. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 4 MySQL : アプリケーション開発者に柔軟性を Copyright © 2018, Oracle and/or its affiliates. All rights reserved. ハイブリッドAPISQL 関数データ型 MySQL X DevAPIJSON 関数JSON データ型 SQL と CRUD な NoSQL のハイ ブリッドAPIによる開発柔軟性 JSON データの参照更新のため の各種 SQL 関数を実装。 MySQL 8.0 では JSON データ を SQL で分析するための変換 関数も追加 リレーショナルなテーブルと非 構造データとシームレスに統合。 さらに MySQL 8.0 では更新性 能の最適化 { } ();
  5. 5. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 5 NoSQL JSON ドキュメント スキーマレス JSON コレクション MySQL リレーショナルテーブル 外部キー X Dev API SQL CRUD MySQL ドキュメント ストア
  6. 6. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 6 MySQL : モバイルアプリとの親和性 Copyright © 2018, Oracle and/or its affiliates. All rights reserved. GIS(空間図形情報)サポートの強化 • 位置情報ベースのサービスとの連携の改良 • MySQL 5.7 にて Boost.Geometry ライブライリーを統合 • MySQL 8.0 にて球面座標と測地座標系(SRS)サポート ユニコードをデフォルトキャラクタセットに • 絵文字をサポートする utf8mb4 がデフォルトのキャラクタセットに • ユニコード文字列の処理性能が16倍以上向上するケースも • Unicode 9.0 をサポート • UCA(Unicode照合アルゴリズム)ベースの新しい各言語用の照合 � � � �
  7. 7. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 7 MySQL : データ分析処理の効率向上 Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Window 関数共通テーブル式 (CTEs) • サブクエリの導出表 (derived table) の代替 • WITH 句と呼ばれることも • 分析処理 SQL 文の可読性や処理性能の向上、階 層構造データ利用にも • ランキング作成などの分析処理用途で ユーザーからの追加要望の多かった機能 • 検索対象のレコードと周辺データとの関連を 集計や分析 WITH tickets_filtered AS ( SELECT tickets.*, seats.doc FROM tickets INNER JOIN seats ON tickets.seat_id = seats.id WHERE tickets.event_id = 3 ) SELECT * FROM tickets_filtered WHERE doc->"$.section" = 201¥G SELECT name, dept_id, salary, RANK() OVER w AS `rank` FROM employee WINDOW w AS (PARTITION BY dept_id ORDER BY salary DESC);
  8. 8. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | InnoDB Cluster App Servers with MySQL Router MySQL Group Replication MySQL Shell Setup, Manage, Orchestrate “高可用性は、MySQLにとって、 最も重要な中核の機能です!” InnoDB Clusterで更に高いレベル の可用性を提供します。 8
  9. 9. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 概要: レプリケーションの用途 ※ 準同期レプリケーションでは、非同期レプリケーションに比べて、データの完全性が向上します。 Oracle Confidential – Restricted
  10. 10. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted
  11. 11. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Bが新しい マスターに昇格 構成変更 冗長性: マスターがクラッシュした場合, スレーブをマスターに昇格 概要: レプリケーションの用途 Oracle Confidential – Restricted 障害発生 障害発生 B B C C
  12. 12. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | MySQL Group Replicationとは? • 自動フェイルオーバー • 構成の拡張/縮小 • 単一障害点無し • 自動的に再構成 Application MySQL Nodes Replication Plugin API MySQL Server Group Comms Oracle Confidential – Restricted
  13. 13. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | MySQL Router • 接続をルーティング – ロードバランシング – 接続フェイルオーバー • InnoDBクラスタをネイティブサポート 透過的にアプリケーション接続をルーティング App Servers with MySQL Router MySQL Group Replication ” MySQL Routerを使用する事で、スタンドアロンのMySQLインスタンスを 既存のアプリケーションに影響を与えずに、高可用性で分散処理可能な、 InnoDBクラスタに容易に移行する事が可能!” Oracle Confidential – Restricted
  14. 14. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | MySQL Shell:管理用API • mysql-js> dba.help() • MySQLの管理用APIにアクセス可能 • DBA管理オペレーション – Manage MySQL InnoDB clusters • クラスター作成 • MySQLインスタンスの検証 • MySQLインスタンスの構築 • クラスターの状況を確認 • MySQLインスタンスの開始・停止 • クラスタの構成変更 データベース管理者向けインターフェース MySQL Shell Setup, Manage, Orchestrate 14Oracle Confidential – Restricted
  15. 15. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 15 MySQL InnoDB Cluster: The Big Picture M App S S MySQL Shell and Orchestration Tooling App 状態と構成情報から 接続先の判定 管理・構築 Monitoring (MySQL Enterprise Monitor) MySQL Router MySQL Group Replication MySQL Router Oracle Confidential – Restricted
  16. 16. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | MySQL 8.0.12: Alter Table - Instant Add Column • Contribution from Tencent Games – Only a metadata change – No copying of data – Smaller final data size – Forward compatibility with old data file • ALTER TABLE … ADD COLUMN c, ALGORITHM = INSTANT • Supports DYNAMIC/COMPACT/REDUNDANT row formats 16 Labs 2018-7-28 Release
  17. 17. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | • Data Masking – String Masking, Dictionary Replacement • Random Data Generators – Range based, Payment Card, Email, SSN • Meet Regulatory Requirements – Including GDPR, HIPAA and PCI DSS • Improve Production, Dev, Test, Analytics Environments – While Protecting Confidential Data MySQL Enterprise Data Masking De-identify, Anonymize Sensitive Data ID Last First SSN 1111 Smith John 555-12-5555 1112 Templeton Richard 444-12-4444 ID Last First SSN 2874 Smith John XXX-XX- 5555 3281 Templeton Richard XXX-XX- 4444 Employee Table Masked View 8.0.13 17
  18. 18. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 19 MySQL 8.0.14 Release Notes (抜粋) 1 MySQLユーザアカウントにプライマリパスワードとセカンダリパスワー ドの2つを持つことが可能 RETAIN CURRENT PASSWORD DISCARD OLD PASSWORD 2 TCP/IPポートを管理接続専用に設定することが可能 admin_address admin_port 3 OVER句がある場合、JSON_ARRAYAGG() / JSON_OBJECTAGG()が window関数として利用可能 4 スローログの出力結果に、実行開始からの時間を使用可能 log_slow_extra 5 バイナリログファイルとリレーログファイルを暗号化 binlog_encryption 6 LDAP認証をLDAP->LDAPS(LDAP over SSL)に変更 (Port No. 636 or 3269) authentication_ldap_sasl_server_port authentication_ldap_simple_server_port 7 ST_Distance()関数で戻り値の単位を指定することが可能 INFORMATION_SCHEMA.ST_UNITS_OF_M EASURE 8 LATERALキーワードにより、同じFROM句内の前のテーブル列を参照 することが可能
  19. 19. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 20 MySQL 8.0.14 Release Notes (抜粋) 9 X Pluginは、エラー処理クラスに5桁のSQLSTATEエラーコードを含める Bug#28735058 10 innodb_buffer_pool_in_core_fileを無効にすることで、コアファイルの サイズを削減(コアファイルに書き込まない) innodb_buffer_pool_in_core_file 11 CREATE UNDO TABLESPACEにてUNDO表領域を指定した場所に追加 作成可能 innodb_undo_tablespaces 12 パラレルクラスタ化インデックス読み取りをサポート(InnoDB) innodb_parallel_read_threads 13 CREATE TABLESPACEにおけるADD DATAFILE句はオプションに変更 14 innodb_dedicated_serverにてログファイルも自動設定 innodb_buffer_pool_size innodb_log_file_size innodb_flush_method 15 Group Replication用のグループ通信システム(GCS)およびグループ 通信エンジン(XCom、Paxosの一種)は、IPv6を完全にサポート 16 MySQL Group Replicationは、TCPソケットを使用する代わりに、専用の 入力チャネルを使用して通信可能
  20. 20. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 21 MySQL 8.0.14 Release Notes (抜粋) 17 レプリケーションによる内部使用のために、2つの新しいセッションシス テム変数が追加 original_server_version immediate_server_version 18 MySQL 5.7からMySQL 8.0のダンプのインポートにおけるエラーの扱い を変更 ER_WRONG_VALUE_FOR_VAR 19 監査ログに独自のメッセージを追加 audit_api_message_emit_udf() 20 派生テーブルやCTEに外部参照可能 21 Group Replicationにおけるプライマリ切替時の制御を追加 group_replication_consistency ・EVENTUAL ・BEFORE_ON_PRIMARY_FAILOVER ・ その他、bugfix….
  21. 21. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 22 MySQL 8.0.15 Release Note 2019-02-01 GA 1 IPv6を無効となっている場合、Group ReplicationがIPv6を使用していな くても動作していない問題を修正 Bug#29249542 Bug#94004
  22. 22. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 23 MySQL 8.0.16 Release Notes (抜粋) 1 チェック制約の実装 2 MySQL C APIは、MySQLサーバーとの非ブロック通信用の非同期関数 をサポート mysql_real_connect_nonblocking() mysql_real_query_nonblocking() mysql_store_result_nonblocking() mysql_next_result_nonblocking() mysql_fetch_row_nonblocking() mysql_free_result_nonblocking() 3 TempTableストレージエンジンは、 InnoDBを使用 internal_tmp_disk_storage_engine 4 MySQLの新しいバージョンのインストール後、サーバーは次回の起動 時に必要なすべてのアップグレードタスクを自動的に実行 mysql_upgrade 5 ユーザ権限のブラックリスト方式 REVOKEによる拒否権限の設定 6 MySQL InnoDB Clusterのupdate(自動再接続・メッセージの細分化) autorejoinRetries group_replication_communication_max_ message_size
  23. 23. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 管理 24
  24. 24. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 25 TCP/IPポートを管理接続専用に設定することが可能 • 管理者向けに別のTCP/IPポートによる接続 • max_connections接続による制約を受けない • 管理接続数の制限なし • admin_port (default : 33062 ) • admin_addressにてIP Addressを設定することで有効 • create_admin_listener_thread でスレッドも専用化可能
  25. 25. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 26 ユーザ権限のブラックリスト方式 • 一部のテーブルのみSELECT を許可させない – 8.0.15迄 – 8.0.16 | GRANT SELECT ON `bootcamp`.* TO `newuser`@`%` | | GRANT SELECT ON `sakila`.* TO `newuser`@`%` | | GRANT SELECT ON `sys`.* TO `newuser`@`%` | | GRANT SELECT ON `world`.* TO `newuser`@`%` | | GRANT SELECT ON `performance_sche`.* TO `newuser`@`%` | | GRANT SELECT ON *.* TO `newuser`@`%` | | REVOKE SELECT ON `mysql`.* TO `newuser`@`%` |
  26. 26. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 5バイナリログファイルとリレーログファイルを暗号化 27 テーブルスペース バイナ リーロ グ バイナ リーロ グ バイナリログ redoログ undoログ • テーブルスペース – ALTER TABLE xxxx ENCRYPTION=‘Y' • Redoログ/ Undoログ – innodb_redo_log_encrypt=ON – innodb_undo_log_encrypt=ON • バイナリログ – binlog_encryption=ON 利用上の注意!! keyring_fileおよびkeyring_encryptedファイルプラグイン は、法令遵守ソリューションとして意図されていません。 KEYの管理が別途必要です。
  27. 27. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | MySQL Enterprise Transparent Data Encryption 暗号化された 表領域ファイル テーブルスペース鍵 悪意のあるOSユーザー/ハッカー ファイルに直接アクセス 暗号化により、データを保護 マスター鍵 定期的な鍵ローテーション バイナリログ redoログ undoログ
  28. 28. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 新機能 29
  29. 29. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | チェック制約 • [ CONSTRAINT [symbol] ] CHECK ( condition ) [ [ NOT ] ENFORCED ] • ALTER TABLE < table_name > ADD [ CONSTRAINT [ symbol ] ] CHECK ( condition ) [ [ NOT ] ENFORCED ] 30 CREATE TABLE `chk1` ( `c1` int(11) DEFAULT NULL, `c2` int(11) DEFAULT NULL, CONSTRAINT `c1_c2_chk` CHECK (((`c1` + `c2`) < 9999)), CONSTRAINT `c1_chk` CHECK ((`c1` > 0)), CONSTRAINT `c2_chk` CHECK ((`c2` > 0)) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb
  30. 30. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | LATERAL • From句に相関サブクエリを実現 例) https://mysqlserverteam.com/support-for-lateral-derived-tables-added-to-mysql-8- 0-14/ • ランダムで From / To を作成 – insert into edges(from_id, to_id)select origin_nodes.id, target_nodes.idfrom nodes as origin_nodes,( select id from nodes order by rand() limit 2) as target_nodes; – では、ランダムの結果が全てに適用されてしまう • order by rand()+0*origin_nodes.id ランダム係数に前テーブルのidを利用 31
  31. 31. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | LATERAL 32 explain select origin_nodes.id, target_nodes.id from nodes as origin_nodes, ( select id from nodes order by rand() limit 2 ) as target_nodes; explain select origin_nodes.id, target_nodes.id from nodes as origin_nodes, LATERAL ( select id from nodes order by rand()+0*origin_nodes.id limit 2 ) as target_nodes;
  32. 32. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | ST_Distance()関数 • ST_Distance(g1, g2 [, unit]) / 8.0.14 • ST_Length(ls [, unit]) / 8.0.16 • INFORMATION_SCHEMA.ST_UNITS_OF_MEASURE 33 +--------------------------------------+-----------+---------------------+-------------+ | UNIT_NAME | UNIT_TYPE | CONVERSION_FACTOR | DESCRIPTION | +--------------------------------------+-----------+---------------------+-------------+ | metre | LINEAR | 1 | | | millimetre | LINEAR | 0.001 | | | centimetre | LINEAR | 0.01 | | | German legal metre | LINEAR | 1.0000135965 | | | foot | LINEAR | 0.3048 | | | ; | : | : | | | Indian yard | LINEAR | 0.9143985307444408 | | | kilometre | LINEAR | 1000 | | | Clarke's chain | LINEAR | 20.1166195164 | | | Clarke's link | LINEAR | 0.201166195164 | | | Gold Coast foot | LINEAR | 0.3047997101815088 | | | British chain (Sears 1922) | LINEAR | 20.116765121552632 | | | yard | LINEAR | 0.9144 | | | ; | : | : | | +--------------------------------------+-----------+---------------------+-------------+
  33. 33. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | InnoDB Cluster 34
  34. 34. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 35 group_replication_consistency • グループが提供するトランザクション一貫性保証を制御 – EVENTUAL (default) – BEFORE_ON_PRIMARY_FAILOVER • バックログを適用されるまで、クライアント処理を保留 (Fail Over):一貫性保証 https://mysqlhighavailability.com/group-replication-preventing-stale-reads-on-primary-fail-over/ – BEFORE • RWトランザクションが先行するトランザクションの完了まで待つ • ROトランザクションが先行するトランザクションの完了まで待つ – AFTER • RWトランザクションがその変更が他のすべてのメンバーに適用されるまで待機 – BEFORE_AND_AFTER • BEFOREとAFTERを適用 https://dev.mysql.com/doc/refman/8.0/en/group-replication-options.html
  35. 35. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 36 group_replication_autorejoin_tries • Group ReplicationではNetwork障害等による意図せずメンバーから追放 等になった際、group_replication_exit_state_actionにより追放方式を決 定 – <= 8.0.15 ABORT_SERVER – > 8.0.16 READ_ONL • group_replication_autorejoin_triesによる自動再接続を可能に – デフォルト:0 (リトライ無し) 手動メンテナンスが必要
  36. 36. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 37 group_replication_communication_max_message_size • Group Replicationの制限事項 – Limits on Transaction Size • group_replication_member_expel_timeout – レプリケーションメンバータイムアウト値 • group_replication_transaction_size_limit – レプリケーショングループが受け付ける最大トランザクションサイズ • group_replication_communication_max_message_size – グループレプリケーション通信のメッセージは自動的にフラグメントに分割し、別々 に送信されて受信者によって再組み立てを実施 *グループメンバーが全て8.0.16以上であること 細かいトランザクションを強く推奨 (特にBatch処理)
  37. 37. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Enterprise Edition 38
  38. 38. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 39 MySQL Enterprise Edition のサービスカテゴリー 管理ツール拡張機能 サポート • 拡張性 • 高可用性 • 統合認証 • 監査 • 暗号化 • ファイヤーウオール • 監視 • バックアップ • 開発 • 管理 • マイグレーション • 技術サポート • コンサルティングサポート • オラクル製品との 動作保証
  39. 39. Copyright © 2018 Oracle and/or its affiliates. All rights reserved. | 技術サポートとコンサルティングサポート 40
  40. 40. Copyright © 2018 Oracle and/or its affiliates. All rights reserved. | Security 41
  41. 41. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 42 Enterprise Security Architecture   Workbench •Model •Data •Audit Data •User Management   Enterprise Monitor •Identifies Vulnerabilities •Security hardening policies •User Monitoring •Password Monitoring •Schema Change Monitoring •Backup Monitoring  Enterprise Encryption •TDE •Encryption •PKI   Firewall  Key Vault  Enterprise Authentication •SSO - LDAP, AD, PAM  Network Encryption  Enterprise Audit •Powerful Rules Engine  Audit Vault  Strong Authentication  Access Controls  Assess  Prevent  Detect  Recover  Enterprise Backup  HA •Innodb Cluster Thread Pool
  42. 42. Copyright © 2018 Oracle and/or its affiliates. All rights reserved. | データベース管理
  43. 43. Copyright © 2018 Oracle and/or its affiliates. All rights reserved. | MySQL Enterprise Monitor • 複数のMySQLサーバを一括監視可能な ダッシュボード • システム中のMySQLサーバやレプリケ ーション構成を自動的に検出し監視対 象に追加 • ルールに基づく監視と警告 • 問題が発生する前に通知 • 問題のあるSQL文の検出、統計情報の 分析が可能なQuery Analyzer 44 参照:MySQL Enterprise Monitor "バーチャルなMySQL DBA"
  44. 44. Copyright © 2018 Oracle and/or its affiliates. All rights reserved. | クエリ解析機能 - MySQL Query Analyzer • 全てのMySQLサーバの 全てのSQL文を一括監視 • vmstatなどのOSコマンドやMySQLの SHOWコマンドの実行、 ログファイルの個別の監視は不要 • クエリの実行回数、エラー回数、 実行時間、転送データ量などを 一覧表示 • チューニングのための 解析作業を省力化 45 負荷の高い 処理を特定 早期対応と改善
  45. 45. Copyright © 2018 Oracle and/or its affiliates. All rights reserved. | MySQL Enterprise Backup • InnoDBのオンラインバックアップツール • フル、増分、部分バックアップ(圧縮可能) • マルチスレッドによる並列バックアップ&リカバリ処理 • クラウドストレージとの直接の連携(S3, Swift API) • バックアップの暗号化 – AES 256 • Oracle Secure Backupとの連携 46 高速、オンラインバックアップ & リカバリ MySQL Enterprise Backup の特徴と利点
  46. 46. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 47

×