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について説明しています。

7fb060398b26ed622d34921bd64e4f5d?s=128

YoshiakiYamasaki

November 28, 2020
Tweet

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

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

    Serviceとは? アジェンダ Copyright © 2020, Oracle and/or its affiliates 3
  4. Copyright © 2020, Oracle and/or its affiliates 4 MySQLのバックアップ方法

  5. ◼ mysqldump • 論理バックアップを取得できるツール • MySQL Community Editionでも使用でき手軽に利用できるが、データ量が多くなると バックアップ/リストアに時間がかかる ◼

    MySQL Enterprise Backup • 物理バックアップを取得できるツール • 物理バックアップであるため、mysqldumpよりも高速にバックアップ/リストア可能 • MySQL Enterprise Editionのみの限定機能 MySQLのバックアップ方法 Copyright © 2020, Oracle and/or its affiliates 5
  6. ◼ mysqldumpと比べて高速にバックアップ/リストア可能 • バックアップ処理時間:49倍 • リストア処理時間:80倍 ◼ 充実した各種オプション • フル/増分/差分バックアップ対応

    • クラウドストレージとの連携 • バックアップの暗号化/圧縮、など MySQL Enterprise Backup Copyright © 2020, Oracle and/or its affiliates 6
  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
  8. Copyright © 2020, Oracle and/or its affiliates 8 MySQL Shellとは?

  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
  10. ◼ アップブレードチェッカーユーティリティ • MySQL 8.0へのバージョンアップ前に互換性に関する問題を確認できる ◼ JSONインポートユーティリティ • JSONデータをインポートできる ◼

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

    テーブルエクスポートユーティリティ • テーブルデータをエクスポートできる ◼ パラレルテーブルインポートユーティリティ • テーブルにデータをインポートできる ◼ インスタンス/スキーマ/テーブルダンプユーティリティ • 新しいデータダンプユーティリティ ◼ ダンプローディングユーティリティ • 新しいデータローディングユーティリティ MySQL Shell Utilities の種類 Copyright © 2020, Oracle and/or its affiliates 11
  12. Copyright © 2020, Oracle and/or its affiliates 12 dumpInstance&loadDumpユーティリティ

  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
  14. ◼ 特徴 • 複数スレッドによる並列処理 • ダンプ中に進捗状況を表示 • ダンプ中のデータを並行してロード可能 • ダンプファイルの圧縮

    • Oracle Cloud Infrastructure Object Storageへのストリーミング • MySQL Database Serviceとの互換性チェック&修正 dumpInstance&loadDumpユーティリティ Copyright © 2020, Oracle and/or its affiliates 14
  15. パフォーマンス比較:データダンプ Copyright © 2020, Oracle and/or its affiliates 15 出典:https://mysqlserverteam.com/mysql-shell-dump-load-part-2-benchmarks/

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

  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
  18. ◼ util.loadDump() • ダンプしたデータをロード • インポート途中で中断した場合、中断したところから再開も可能 • waitDumpTimeoutオプションを使用すると、ダンプ中のファイルも並行してロード可能 使用できるユーティリティ:データロード用 Copyright

    © 2020, Oracle and/or its affiliates 18
  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 並列スレッドの数 主要なパラメータ
  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
  21. Copyright © 2020, Oracle and/or its affiliates 21 MySQL Database

    Serviceとは?
  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
  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機能はまだ提供されていませんが、今後提供される予定です
  24. Oracle MySQL Database Service Copyright © 2020, Oracle and/or its

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

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

    のチュートリアル Copyright © 2020, Oracle and/or its affiliates 32
  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
  34. Copyright © 2020, Oracle and/or its affiliates 34 お知らせ

  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
  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/
  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運用の現状とバージョン アップを支える仕組み
  38. Copyright © 2020, Oracle and/or its affiliates 38 Q&A

  39. None