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

新しいMySQLのバックアップツールとMySQL Database Serviceのご紹介

新しいMySQLのバックアップツールとMySQL Database Serviceのご紹介

2020年11月28日に開催された「Open Source Conference 2020 Online/Fukuoka」での発表資料です。https://event.ospn.jp/osc2020-online-fukuoka

mysqldumpよりも非常に高速にデータをバックアップ/リストアできる新しいMySQLのバックアップ/リストアツールと、MySQL Database Serviceについて説明しています。

YoshiakiYamasaki

November 28, 2020
Tweet

More Decks by YoshiakiYamasaki

Other Decks in Technology

Transcript

  1. 新しいMySQLのバックアップツールと
    MySQL Database Serviceのご紹介
    2020/11/28 Open Source Conference 2020 Online/Fukuoka
    Yoshiaki Yamasaki
    MySQL Principal Solution Engineer
    MySQL Global Business Unit

    View Slide

  2. Safe harbor statement
    以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。
    また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。
    以下の事項は、マテリアルやコード、機能を提供することをコミットメントするものではない為、
    購買決定を行う際の判断材料になさらないで下さい。
    オラクル製品に関して記載されている機能の開発、リリースおよび時期については、
    弊社の裁量により決定されます。
    Copyright © 2020, Oracle and/or its affiliates
    2

    View Slide

  3. 1. MySQLのバックアップ方法
    2. MySQL Shellとは?
    3. dumpInstance&loadDumpユーティリティ
    4. MySQL Database Serviceとは?
    アジェンダ
    Copyright © 2020, Oracle and/or its affiliates
    3

    View Slide

  4. Copyright © 2020, Oracle and/or its affiliates
    4
    MySQLのバックアップ方法

    View Slide

  5. ◼ mysqldump
    • 論理バックアップを取得できるツール
    • MySQL Community Editionでも使用でき手軽に利用できるが、データ量が多くなると
    バックアップ/リストアに時間がかかる
    ◼ MySQL Enterprise Backup
    • 物理バックアップを取得できるツール
    • 物理バックアップであるため、mysqldumpよりも高速にバックアップ/リストア可能
    • MySQL Enterprise Editionのみの限定機能
    MySQLのバックアップ方法
    Copyright © 2020, Oracle and/or its affiliates
    5

    View Slide

  6. ◼ mysqldumpと比べて高速にバックアップ/リストア可能
    • バックアップ処理時間:49倍
    • リストア処理時間:80倍
    ◼ 充実した各種オプション
    • フル/増分/差分バックアップ対応
    • クラウドストレージとの連携
    • バックアップの暗号化/圧縮、など
    MySQL Enterprise Backup
    Copyright © 2020, Oracle and/or its affiliates
    6

    View Slide

  7. ◼ mysqldump
    • 論理バックアップを取得できるツール
    • MySQL Community Editionでも使用でき手軽に利用できるが、データ量が多くなると
    バックアップ/リストアに時間がかかる
    ◼ MySQL Enterprise Backup
    • 物理バックアップを取得できるツール
    • 物理バックアップであるため、mysqldumpよりも高速にバックアップ/リストア可能
    • MySQL Enterprise Editionのみの限定機能
    ◼ dumpInstance&loadDumpユーティリティ
    • 論理バックアップを取得できるツール
    • 並列処理可能であるため、mysqldumpよりも高速にバックアップ/リストア可能
    • MySQL Shell 8.0.21以降で使用できる新しい機能
    MySQLのバックアップ方法 (最新版)
    Copyright © 2020, Oracle and/or its affiliates
    7

    View Slide

  8. Copyright © 2020, Oracle and/or its affiliates
    8
    MySQL Shellとは?

    View Slide

  9. ◼ 新しいMySQLコマンドラインクライアント
    ◼ MySQL Serverとモジュールが分かれているため、別途インストールが必要
    ◼ 特徴
    • Xプロトコル、X DevAPIのサポート
    • SQLだけでなく、JavaScript や Python も実行可能
    • バッチコード実行機能
    • 多様な出力フォーマット (タブ区切り、JSONフォーマット)
    • mysqlコマンドラインクライアントよりも使いやすい補完機能
    • AdminAPIのサポート (MySQL InnoDB Cluster用の機能)
    • レポート機能、プラグイン機能により機能拡張可能
    • MySQL Shell Utilities を使用可能
    MySQL Shellとは?
    Copyright © 2020, Oracle and/or its affiliates
    9

    View Slide

  10. ◼ アップブレードチェッカーユーティリティ
    • MySQL 8.0へのバージョンアップ前に互換性に関する問題を確認できる
    ◼ JSONインポートユーティリティ
    • JSONデータをインポートできる
    ◼ テーブルエクスポートユーティリティ
    • テーブルデータをエクスポートできる
    ◼ パラレルテーブルインポートユーティリティ
    • テーブルにデータをインポートできる
    ◼ インスタンス/スキーマ/テーブルダンプユーティリティ
    • 新しいデータダンプユーティリティ
    ◼ ダンプローディングユーティリティ
    • 新しいデータローディングユーティリティ
    MySQL Shell Utilities の種類
    Copyright © 2020, Oracle and/or its affiliates
    10

    View Slide

  11. ◼ アップブレードチェッカーユーティリティ
    • MySQL 8.0へのバージョンアップ前に互換性に関する問題を確認できる
    ◼ JSONインポートユーティリティ
    • JSONデータをインポートできる
    ◼ テーブルエクスポートユーティリティ
    • テーブルデータをエクスポートできる
    ◼ パラレルテーブルインポートユーティリティ
    • テーブルにデータをインポートできる
    ◼ インスタンス/スキーマ/テーブルダンプユーティリティ
    • 新しいデータダンプユーティリティ
    ◼ ダンプローディングユーティリティ
    • 新しいデータローディングユーティリティ
    MySQL Shell Utilities の種類
    Copyright © 2020, Oracle and/or its affiliates
    11

    View Slide

  12. Copyright © 2020, Oracle and/or its affiliates
    12
    dumpInstance&loadDumpユーティリティ

    View Slide

  13. ◼ MySQL Shell 8.0.21以降で使用できるデータダンプ&データロードユーティリティ
    ◼ MySQL 5.7以降に対して使用可能
    ◼ MySQL Shell 8.0.22からdumpTablesユーティリティも追加された
    • 他にも細かな機能改善が複数あるため、最新バージョンのMySQL Shellを使用することを推奨
    dumpInstance&loadDumpユーティリティ
    Copyright © 2020, Oracle and/or its affiliates
    13
    出典:https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-dump-instance-schema.html

    View Slide

  14. ◼ 特徴
    • 複数スレッドによる並列処理
    • ダンプ中に進捗状況を表示
    • ダンプ中のデータを並行してロード可能
    • ダンプファイルの圧縮
    • Oracle Cloud Infrastructure Object Storageへのストリーミング
    • MySQL Database Serviceとの互換性チェック&修正
    dumpInstance&loadDumpユーティリティ
    Copyright © 2020, Oracle and/or its affiliates
    14

    View Slide

  15. パフォーマンス比較:データダンプ
    Copyright © 2020, Oracle and/or its affiliates
    15
    出典:https://mysqlserverteam.com/mysql-shell-dump-load-part-2-benchmarks/

    View Slide

  16. パフォーマンス比較:データロード
    Copyright © 2020, Oracle and/or its affiliates
    16
    出典:https://mysqlserverteam.com/mysql-shell-dump-load-part-2-benchmarks/

    View Slide

  17. ◼ util.dumpInstance()
    • インスタンス全体のダンプを取得 (ユーザー情報も含む)
    • 特定のスキーマ、テーブルをダンプ対象外にすることも可能
    • MySQL Shell 8.0.22時点では一貫性が失われるバグがあるため、{routines:false} を指定してバグを
    回避することを推奨(※)
    ◼ util.dumpSchemas()
    • スキーマ単位のダンプを取得
    • 複数スキーマを一度の処理でダンプ可能
    • 特定のテーブルをダンプ対象外にすることも可能
    ◼ util.dumpTables()
    • テーブル単位のダンプを取得
    • 複数テーブルを一度の処理でダンプ可能
    使用できるユーティリティ:データダンプ用
    Copyright © 2020, Oracle and/or its affiliates
    17
    ※参考情報:MySQL Shell dumpInstance が一貫性の壊れたバックアップを生成するバグの件
    https://mita2db.hateblo.jp/entry/2020/11/04/233627

    View Slide

  18. ◼ util.loadDump()
    • ダンプしたデータをロード
    • インポート途中で中断した場合、中断したところから再開も可能
    • waitDumpTimeoutオプションを使用すると、ダンプ中のファイルも並行してロード可能
    使用できるユーティリティ:データロード用
    Copyright © 2020, Oracle and/or its affiliates
    18

    View Slide

  19. dumpInstance(), dumpSchemas(), dumpTables(), loadDump()
    Copyright © 2020, Oracle and/or its affiliates
    19
    パラメタ 説明
    dryRun 指定されているパラメータで取得できるダンプの情報を実行前に表示
    dataOnly DDLはダンプに含めず、データファイルのみをダンプ
    ocimds MySQL Database Service との互換性をチェック(dryRunとの併用を推奨)
    showProgress 進行状況を表示
    compression ダンプファイルの圧縮タイプを"none" "gzip" "zstd”から指定
    excludeSchemas 指定されたスキーマを除外
    excludeTables 指定されたテーブルを除外
    スキーマ名.テーブル名 または `スキーマ名`.`テーブル名`の形式で指定
    loadUsers ダンプに含まれているユーザー、ロール、権限のインポート可否
    ※ロード実行ユーザーについては除外される
    resetProgress 進行中のロードをリセットし、最初からロードを再実行
    中断したロードで生成されたオブジェクトは重複する可能性あり
    threads 並列スレッドの数
    主要なパラメータ

    View Slide

  20. ◼ デモ動画
    • MySQL Shell Dump & Load part 1: Demo!
    https://mysqlserverteam.com/mysql-shell-dump-load-part-1-demo/
    ◼ マニュアル
    • MySQL Shell 8.0 / Instance Dump Utility, Schema Dump Utility, and Table Dump Utility
    https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-dump-instance-schema.html
    • MySQL Shell 8.0 / Dump Loading Utility
    https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-load-dump.html
    ◼ MySQL Database Serviceとの互換性に関する情報
    • Oracle Cloud Infrastructure Documentation:MySQL Database:Importing and Exporting Databases
    https://docs.cloud.oracle.com/en-us/iaas/mysql-database/doc/importing-and-exporting-
    databases.html#GUID-4A26CE5C-05ED-483C-A579-9D93524DA465
    dumpInstance&loadDumpユーティリティのデモ、マニュアル
    Copyright © 2020, Oracle and/or its affiliates
    20

    View Slide

  21. Copyright © 2020, Oracle and/or its affiliates
    21
    MySQL Database Serviceとは?

    View Slide

  22. ◼ Oracle Cloud Infrastructure(OCI)上で提供しているMySQLのマネージドサービス
    • OCIとネイティブに統合されているため、セキュリティやパフォーマンスなど、
    OCIの強みも活かせるマネージドサービス
    ◼ MySQL開発ベンダーであるオラクルにより提供されており、オンプレミスのMySQLと100%互換性がある
    • MySQL部分のサポートも含まれているため、安心して利用可能
    ◼ MySQL Enterprise Edition 8.0をベースに構築されているため、MySQL Enterprise Edition限定機能も
    使用できるようになる予定 (現時点では使用できないが、ロードマップに有り)
    • 監査ログ取得
    • データマスキング
    • 怪しいSQLのブロック/検知、など
    MySQL Database Service とは?
    Copyright © 2020, Oracle and/or its affiliates
    22

    View Slide

  23. フルマネージド データベースサービス
    Oracle MySQL Database Service
    Copyright © 2020, Oracle and/or its affiliates
    23
    MySQL On Premise MySQL Database Service
    Database
    Scaling (※)
    Backup
    Security Patch & Upgrade
    Provision & Configure
    OS
    OS Security Patch & Upgrade
    OS Installation
    Server Hardware Purchase & Maintenance
    Storage Storage Purchase & Maintenance
    Data Center
    Rack & Space
    Power, HVAC, Networking
    Automated
    Manual
    ※Auto Scaling機能はまだ提供されていませんが、今後提供される予定です

    View Slide

  24. Oracle MySQL Database Service
    Copyright © 2020, Oracle and/or its affiliates
    24

    View Slide

  25. MySQL Database Service のアーキテクチャー
    Copyright © 2020, Oracle and/or its affiliates
    25
    Virtual
    Machine
    Subnet B
    10.0.1.0/24
    ORACLE CLOUD INFRASTRUCTURE (REGION)
    Availability Domain 1 AD3
    Subnet A
    10.0.0.0/24
    MySQL
    DB System
    VPN Dynamic
    Routing
    Gateway
    VCN
    USER TENANCY
    AD2
    INTERNAL TENANCY
    Virtual
    Machine
    Block Storage
    VCN
    VCN
    Monitoring
    Events
    Tagging
    Auditing
    Workflow
    Healthcheck
    Back Up/
    Restore
    API
    Service
    Internet
    Gateway
    Subnet
    Subnet

    View Slide

  26. MySQL Database Serviceは、OCIの第2世代クラウド・インフラストラクチャ上に構築されており、
    エンタープライズ・セキュリティを第一に考え、第1世代クラウド・プラットフォームと同等以上の
    IaaSおよびPaaSサービスを提供します。
    • MySQL Database Service APIをOracle Cloud Infrastructure Identity Serviceとネイティブに統合
    • MDS操作に対するAPIアクセス制御のための細かなポリシーを定義
    • 異なるコンパートメント間で、どのグループのユーザーがMDSのリソースにアクセスできるかを定義します
    • パブリックIPアドレス無し
    • OCIはパブリックとプライベートの両方のネットワーキングを提供できますが、MDSはパブリックIP上で
    エンドポイントを公開しません
    • 他のクラウド・プラットフォームがこれを提供している一方で、この点が原因でデータベースが侵害された
    多くの事例があります
    • デフォルトで暗号化
    • 全てのデータベースボリュームが常に暗号化されています
    • MySQLパスワード検証プラグインにより、強力なパスワードを強制
    • パスワードの複雑さの要件は、すべてのコンプライアンス基準の要件をカバーしています
    • コンプライアンスのあらゆるニーズに対応
    Oracle MySQL Database Service:セキュリティ&コンプライアンス
    Copyright © 2020, Oracle and/or its affiliates
    26

    View Slide

  27. ◼ 他社製のMySQLマネージドサービスと比べ、非常に低価格
    • 3.1倍~3.7倍低価格
    • 構成
    • 100 OCPUs, 1 TB Storage
    • 備考
    • MySQL Database Service:
    • Standard E2 AMD 8GB/Core
    • 全リージョンで同一料金
    • Amazon RDS:
    • Intel M5 8GB/Core
    • AWS US East.
    • Azure:
    • General Purpose Intel 10GB/Core
    • MS Azure US-East.
    • Google:
    • N1 Standard Intel 7.5GB/Core
    • GCP Northern Virginia.
    MySQL Database Service によるコスト削減
    Copyright © 2020, Oracle and/or its affiliates
    27
    ※出典:https://blogs.oracle.com/mysql/introducing-the-mysql-database-service

    View Slide

  28. ◼ コストパフォーマンスの高いパブリッククラウド環境
    ◼ Zoomがユーザー数の急増に対応するために採用したことでも注目を集めている
    https://www.oracle.com/jp/corporate/pressrelease/jp20200428.html
    Oracle Cloud Infrastructure(OCI)とは?
    Copyright © 2020, Oracle and/or its affiliates
    28

    View Slide

  29. ◼ Oracle Cloud Infrastructureを常時無償で使用できるサービス
    ◼ Always Free用のアカウントを作成すると、30日間有効な300USドルのクレジットも付与され
    Always Free対象外のサービスも利用できる
    ⇒ MySQL Database Service はAlways Freeの対象外であるが、このクレジットで試すことが可能
    Always Freeとは?
    Copyright © 2020, Oracle and/or its affiliates
    29

    View Slide

  30. ◼ 以下のイベントに参加すると、特別オファーあり
    • MySQL関連のWebセミナー
    https://www.mysql.com/jp/news-and-events/web-seminars/
    • Oracle Code Nightのオンラインイベント
    https://oracle-code-tokyo-dev.connpass.com/
    ◼ 特別オファー
    • アカウント作成時にクレジットカード情報の登録不要!!
    (通常であれば、クレジットカード情報の登録が必要です)
    • 一か月間有効な500USドルのクレジット付き!!
    (Always Free以外の有償のサービスも1か月間試せます)
    OCIのトライアルアカウントをお得に作成する方法
    Copyright © 2020, Oracle and/or its affiliates
    30

    View Slide

  31. ◼ 以下のURLからアカウント作成可能
    https://myservices.us.oraclecloud.com/mycloud/signup
    ◼ 参考情報
    • Oracle Cloud 無料トライアル サインアップガイド
    https://faq.oracle.co.jp/app/answers/detail/a_id/6492
    • Oracle Cloud 無料トライアルに関するよくある質問(FAQ)
    https://www.oracle.com/jp/cloud/free/faq.html
    Always Freeのアカウントを作成する方法
    Copyright © 2020, Oracle and/or its affiliates
    31

    View Slide

  32. ◼ 手順を画面キャプチャー付きで詳細に解説したチュートリアルを用意していますので、ご活用ください!
    https://oracle-japan.github.io/ocitutorials/
    ◼ MySQL Database Serviceのチュートリアルも今後掲載される予定!!
    Oracle Cloud Infrastructure のチュートリアル
    Copyright © 2020, Oracle and/or its affiliates
    32

    View Slide

  33. ◼ Always Freeを使って無料でMySQLのレプリケーション検証環境を構築しよう!
    https://speakerdeck.com/yoshiakiyamasaki/always-freewoshi-tutewu-liao-
    demysqlfalserepurikesiyonjian-zheng-huan-jing-wogou-zhu-siyou
    ◼ Always Freeを利用して、無料でMySQLのレプリケーション検証環境を構築する方法について
    説明しています (レプリケーションを組まずに利用することも可能です)
    無料でMySQL環境を手に入れたい方向けの参考情報
    Copyright © 2020, Oracle and/or its affiliates
    33

    View Slide

  34. Copyright © 2020, Oracle and/or its affiliates
    34
    お知らせ

    View Slide

  35. ◼ MySQL Database Service Analytics Engine
    • 大量データの分析処理を高速に実行できるMySQLベースのサービス
    ◼ 12/2(水)にこんなイベントが!!
    新しいサービスのリリース予定もあり
    Copyright © 2020, Oracle and/or its affiliates
    35
    申込ページ:https://go.oracle.com/LP=102761?elqCampaignId=273462

    View Slide

  36. • 10/27 (火) 16:20 – 17:00 Oracle (MySQL)
    お待たせしました。OracleからMySQLデータベースサービスが登場
    • 11/24 (火) 16:20 – 17:00 Oracle (MySQL)
    mysqldumpをまだお使いですか? 新しいdumpInstance&loadDumpユーティリティ
    • 12/3 (水) 13:00 – 13:40 yoku0825氏
    MySQL on IaaSの運用あれやこれや
    • 12/10 (水) 14:40 – 15:20 株式会社ヤマレコ・有限会社アップルップル
    青い森ウェブ工房
    MySQL のGIS機能でこんなサービスを提供しています
    • 12/10 (水) 15:30 - 16:10 株式会社マイネット 堀越氏
    新興クラウドのMySQL互換DBaaS徹底比較!
    db tech showcase MySQL 関連セミナー
    Copyright © 2020, Oracle and/or its affiliates
    36
    https://www.db-tech-showcase.com/dbts/2020/online/

    View Slide

  37. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
    Developer Days 未来を創造する最新テクノロジーを今、あなたの手に。
    IT に携わる全てのエンジニアの皆様を対象に、最新技術情報をお届け!
    • 開催日: 2020年12月17日(木) ・ 2020年12月18日(金)
    • 時間 : 13:00 – 16:30 *12:45より接続開始
    • 参加費: 無料 (事前登録制)
    • https://www.oracle.com/jp/cloudday
    #OraDevDays
    廣瀬 一海 氏
    日本マイクロソフト株式会社
    萩野 たいじ 氏
    日本アイ・ビー・エム株式会社
    野中 恭太郎
    日本オラクル株式会社
    12月17日(木) 13:10~
    大塚 知亮 氏
    LINE株式会社
    12月18日(金) 13:10~ 12月18日(金) 13:10~ 12月18日(金) 13:10~
    Copyright © 2020, Oracle and/or its affiliates
    【基調講演】LINEにおける
    MySQL運用の現状とバージョン
    アップを支える仕組み

    View Slide

  38. Copyright © 2020, Oracle and/or its affiliates
    38
    Q&A

    View Slide

  39. View Slide