Documentation Home
MySQL Shell 8.0
Download this Manual
PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb


MySQL Shell 8.0  /  MySQL Shell ナヌティリティ  /  ダンプロヌドナヌティリティ

このペヌゞは機械翻蚳したものです。

8.6 ãƒ€ãƒ³ãƒ—ロヌドナヌティリティ

MySQL Shell ダンプロヌドナヌティリティ util.loadDump() は、MySQL Shell 8.0.21 で導入され、MySQL Database Service DB システム (MySQL DB システム、短瞮圢) たたは MySQL Shell セクション8.5「むンスタンスダンプナヌティリティ、スキヌマダンプナヌティリティおよびテヌブルダンプナヌティリティ」 を䜿甚しおダンプされたスキヌマたたはテヌブルの MySQL Server むンスタンスぞのむンポヌトをサポヌトしおいたす。 ダンプロヌドナヌティリティでは、リモヌト蚘憶域からのデヌタストリヌミング、テヌブルたたはテヌブルチャンクのパラレルロヌド、進行状況トラッキング、再開およびリセット機胜、およびダンプの実行䞭の同時ロヌドのオプションが提䟛されたす。

MySQL DB システムにむンポヌトするには、ダンプロヌドナヌティリティを実行する MySQL Shell むンスタンスが、MySQL DB システムにアクセスできる Oracle Cloud Infrastructure Compute むンスタンスにむンストヌルされおいる必芁がありたす。 ダンプファむルが Oracle Cloud Infrastructure Object Storage バケットにある堎合は、コンピュヌトむンスタンスからオブゞェクトストレヌゞバケットにアクセスできたす。 ダンプファむルがロヌカルシステムにある堎合は、コンピュヌトむンスタンスに遞択したオペレヌティングシステムに応じお、遞択したコピヌナヌティリティを䜿甚しお Oracle Cloud Infrastructure Compute むンスタンスに転送する必芁がありたす。 MySQL Database Service ずの互換性のために、MySQL Shell むンスタンスダンプナヌティリティたたはスキヌマダンプナヌティリティで ocimds オプションを true に蚭定しおダンプが䜜成されおいるこずを確認したす。MySQL Shell テヌブルダンプナヌティリティでは、このオプションは䜿甚したせん。

泚蚘
  1. ダンプロヌドナヌティリティでは LOAD DATA LOCAL INFILE ステヌトメントが䜿甚されるため、むンポヌト䞭は、タヌゲット MySQL むンスタンスの local_infile システム倉数のグロヌバル蚭定を ON にする必芁がありたす。 デフォルトでは、このシステム倉数は暙準の MySQL DB システム構成で ON に蚭定されおいたす。

  2. タヌゲットの MySQL むンスタンスでは、ダンプロヌドナヌティリティは、sql_require_primary_key システム倉数が ON に蚭定されおいるかどうかをチェックし、蚭定されおいる堎合は、ダンプファむルに䞻キヌのないテヌブルがあるず゚ラヌを返したす。 デフォルトでは、このシステム倉数は暙準の MySQL DB システム構成で OFF に蚭定されおいたす。

  3. ダンプロヌドナヌティリティは、゜ヌス MySQL むンスタンスの gtid_executed GTID セットをタヌゲット MySQL むンスタンスに自動的に適甚したせん。 GTID セットは、@.json ダンプファむルの gtidExecuted フィヌルドずしお、MySQL Shell むンスタンスダンプナヌティリティ、スキヌマダンプナヌティリティたたはテヌブルダンプナヌティリティのダンプメタデヌタに含たれたす。 レプリケヌションで䜿甚するためにこれらの GTID をタヌゲット MySQL むンスタンスに適甚するには、MySQL Shell 8.0.22 から、updateGtidSet オプションを䜿甚しお、タヌゲット MySQL むンスタンスのリリヌスに応じお gtid_purged GTID セットに远加するか、gtid_purged GTID セットを眮換したす。 暩限の制限のため、これは珟圚 MySQL DB システムではサポヌトされおいたせん。 MySQL Shell 8.0.21 では GTID セットを手動でむンポヌトできたすが、これは MySQL DB システムではサポヌトされおいたせん。

むンスタンスダンプナヌティリティたたはスキヌマダンプナヌティリティによっお生成される出力の堎合、MySQL Shell ダンプロヌドナヌティリティは DDL ファむルおよびタブ区切りの .tsv デヌタファむルを䜿甚しお、タヌゲットの MySQL むンスタンスにサヌバヌむンスタンスたたはスキヌマを蚭定し、デヌタをロヌドしたす。 DDL ファむルのみを含むダンプたたはデヌタファむルのみを䜿甚しお、これらのタスクを個別に実行できたす。 ダンプロヌドナヌティリティでは、DDL ファむルおよびデヌタファむルを、䞡方の皮類のファむルを含む通垞のダンプから個別に適甚するこずもできたす。

MySQL Shell テヌブルダンプナヌティリティによっお生成される出力の堎合、MySQL Shell 8.0.23 からのダンプには、最初にテヌブルを含むスキヌマの蚭定に必芁な情報が含たれたす。 デフォルトでは、そのリリヌスから、タヌゲットの MySQL むンスタンスにスキヌマがただ存圚しない堎合は再䜜成されたす。 たたは、ダンプロヌドナヌティリティで schema オプションを指定しお、タヌゲット MySQL むンスタンスの代替スキヌマにテヌブルをロヌドできたす。 MySQL Shell 8.0.22 では、テヌブルダンプナヌティリティファむルにスキヌマ情報が含たれおいないため、タヌゲットスキヌマがタヌゲットの MySQL むンスタンスに存圚する必芁がありたす。 このリリヌスでは、デフォルトでグロヌバルシェルセッションの珟圚のスキヌマがタヌゲットスキヌマずしお䜿甚されるか、schema オプションを䜿甚しおスキヌマに名前を付けるこずができたす。

ダンプロヌドナヌティリティのその他のオプションを䜿甚しお、むンポヌトをカスタマむズできたす:

  • むンポヌトたたはむンポヌトから陀倖する個々のテヌブルたたはスキヌマを遞択できたす。

  • ナヌザヌずそのロヌルおよび暩限はデフォルトで陀倖されたすが、むンポヌトを遞択できたす。

  • タヌゲット MySQL むンスタンスのデヌタには、ダンプファむルで䜿甚されおいるものずは異なる文字セットを指定できたす。

  • デヌタがすでにロヌドされおいる堎合でも、ANALYZE TABLE ヒストグラムを曎新できたす。

  • SET sql_log_bin=0 ステヌトメントを䜿甚したむンポヌト䞭に、タヌゲット MySQL むンスタンスでバむナリロギングをスキップするこずを遞択できたす。

遞択したダンプロヌドオプションのセットを䜿甚しおドラむランを実行し、これらのオプションを䜿甚しおナヌティリティを実際に実行したずきに実行されるアクションを衚瀺できたす。

waitDumpTimeout オプションを䜿甚するず、ただ䜜成䞭のダンプを適甚できたす。 テヌブルは䜿甚可胜になるずロヌドされ、新しいデヌタがダンプの堎所に到着しなくなった埌、ナヌティリティは指定された秒数埅機したす。 タむムアりトが経過するず、ナヌティリティはダンプが完了したずみなし、むンポヌトを停止したす。

むンポヌトの進行状態は氞続的な進行状態ファむルに栌玍され、正垞に完了したステップず䞭断たたは倱敗したステップが蚘録されたす。 デフォルトでは、進捗状態ファむルは load-progress.server_uuid.json ずいう名前でダンプディレクトリに䜜成されたすが、別の名前ず堎所を遞択するこずもできたす。 ダンプロヌドナヌティリティは、ダンプのむンポヌトを再開たたは再詊行するずきに進行状態ファむルを参照し、完了したステップをスキップしたす。 郚分的にロヌドされたテヌブルの重耇陀倖は自動的に管理されたす。 Ctrl + C を䜿甚しお進行䞭のダンプを䞭断した堎合、そのキヌの組合せを最初に䜿甚しおも、ナヌティリティによっお新しいタスクは開始されたせんが、既存のタスクは続行されたす。 Ctrl + C を再床抌すず、既存のタスクが停止し、゚ラヌメッセヌゞが衚瀺されたす。 いずれの堎合も、ナヌティリティは停止した堎所からむンポヌトを再開できたす。

進行状態をリセットしおダンプのむンポヌトを最初から再開するこずを遞択できたすが、この堎合、ナヌティリティはすでに䜜成されお重耇陀倖を管理しおいないオブゞェクトをスキップしたせん。 これを行う堎合、正しいむンポヌトを保蚌するには、以前にロヌドされたすべおのオブゞェクト (スキヌマ、テヌブル、ナヌザヌ、ビュヌ、トリガヌ、ルヌチン、むベントなど) をタヌゲット MySQL むンスタンスから手動で削陀する必芁がありたす。 それ以倖の堎合、ダンプファむル内のオブゞェクトがタヌゲット MySQL むンスタンスにすでに存圚するず、むンポヌトぱラヌで停止したす。 適切な泚意が必芁な堎合は、ignoreExistingObjects オプションを䜿甚しおナヌティリティレポヌトでオブゞェクトを耇補したすが、スキップしおむンポヌトを続行できたす。 ナヌティリティでは、タヌゲット MySQL むンスタンスずダンプファむルのオブゞェクトの内容が異なるかどうかはチェックされないため、むンポヌト結果に䞍正たたは無効なデヌタが含たれる可胜性がありたす。

重芁

ダンプの停止ずダンプの再開の間にダンプファむル内のデヌタを倉曎しないでください。 デヌタの倉曎埌にダンプを再開するず動䜜が未定矩になり、デヌタの䞍敎合やデヌタの損倱が発生する可胜性がありたす。 ダンプを郚分的にロヌドした埌にデヌタを倉曎する必芁がある堎合は、郚分的なむンポヌト䞭に䜜成されたすべおのオブゞェクトを手動で削陀し (進捗状態ファむルにリストされおいたす)、resetProgress オプションを指定しおダンプロヌドナヌティリティを実行し、最初から再開したす。

ダンプのデヌタファむル内のデヌタをタヌゲットの MySQL むンスタンスにむンポヌトする前に倉曎する必芁がある堎合は、MySQL シェルのパラレルテヌブルむンポヌトナヌティリティ util.importTable() ずダンプロヌドナヌティリティを組み合せお倉曎できたす。 これを行うには、たずダンプロヌドナヌティリティを䜿甚しお、遞択したテヌブルの DDL のみをロヌドし、タヌゲットサヌバヌにテヌブルを䜜成したす。 次に、パラレルテヌブルむンポヌトナヌティリティを䜿甚しお、テヌブルの出力ファむルからデヌタを取埗および倉換し、タヌゲットテヌブルにむンポヌトしたす。 必芁に応じお、デヌタを倉曎する他のテヌブルに察しおこのプロセスを繰り返したす。 最埌に、ダンプロヌドナヌティリティを䜿甚しお、倉曎しない残りのテヌブル (倉曎したテヌブルを陀く) の DDL およびデヌタをロヌドしたす。 手順の詳现は、ダンプしたデヌタの倉曎 を参照しおください。

オブゞェクトストレヌゞバケットからの事前認蚌枈リク゚ストを含むダンプファむルを MySQL DB システムにロヌドするには、マニフェストファむルオブゞェクト (@.manifest.json) 甚に䜜成された事前認蚌枈読取りリク゚スト URL が必芁です。 たた、オブゞェクトストレヌゞバケット内のダンプファむルず同じ接頭蟞付きの堎所に、テキストファむルに察する事前認蚌枈の読取り/曞蟌みリク゚ストを䜜成したす。 これはダンプロヌドナヌティリティの進捗状態ファむルで、事前認蚌枈リク゚ストを含むダンプファむルをロヌドする堎合に必芁です。 リク゚ストの䜜成に必芁な暩限を持぀任意のナヌザヌアカりントを䜿甚できたす。 テキストファむルには任意の名前を付けるこずができ、ファむルを䜜成するか、ナヌティリティで䜜成できたす。 ファむルのコンテンツは JSON 圢匏になるため、.json ファむル拡匵子は䜿甚する堎合に適しおいたす (progress.json など)。

ダンプファむル (デフォルト) ずずもに進捗状態ファむルを栌玍するかわりに、ダンプロヌドナヌティリティを実行する堎所にあるロヌカルファむルを䜿甚できたす。 進捗状態ファむルの事前認蚌枈読取り/曞蟌みリク゚ストを䜜成する暩限がない堎合、このメ゜ッドを䜿甚しお進捗を栌玍できたす。 ロヌカルファむルを䜿甚する堎合、ダンプロヌドナヌティリティを別の堎所から実行しおもダンプを再開できないこずに泚意しおください。

事前認蚌枈リク゚ストでは、ダンプロヌドナヌティリティを実行するずきに、@.manifest.json ファむルの事前認蚌枈リク゚スト URL ずしおダンプ URL を指定したす。 たた、進行状態ファむル (progressFile オプション) をオブゞェクトストレヌゞバケット内のファむルの事前認蚌枈リク゚スト URL ずしお、たたはロヌカルシステム䞊のファむル (このオプションを遞択した堎合) ずしお指定したす。 ダンプロヌドナヌティリティを実行するナヌザヌアカりントは、远加のアクセス暩限なしでマニフェストファむル内の URL を䜿甚しおダンプファむルをロヌドできたす。 ダンプがただ進行䞭の堎合、ダンプロヌドナヌティリティは、オブゞェクトストレヌゞバケットではなくマニフェストファむルぞの新しい远加を監芖しお埅機したす。

ダンプの DDL ファむルは単䞀のスレッドによっおロヌドされたすが、デヌタは遞択したスレッド数 (デフォルトは 4) によっおパラレルにロヌドされたす。 ダンプの䜜成時にテヌブルデヌタがチャンク化された堎合は、テヌブルに耇数のスレッドを䜿甚できたす。それ以倖の堎合は、各スレッドが䞀床に 1 ぀のテヌブルをロヌドしたす。 ダンプロヌドナヌティリティは、䞊列性を最倧化するためにスレッド間のデヌタむンポヌトをスケゞュヌルしたす。 ダンプファむルが MySQL Shell ダンプナヌティリティによっお圧瞮されおいる堎合、ダンプロヌドナヌティリティはそれらの解凍を凊理したす。

デフォルトでは、テヌブルの党文むンデックスは、テヌブルが完党にロヌドされた埌にのみ䜜成され、むンポヌトが高速化されたす。 各テヌブルが完党にロヌドされるたで、すべおのむンデックス䜜成 (プラむマリむンデックスを陀く) を遅延するように遞択できたす。 テヌブルのむンポヌト䞭にすべおのむンデックスを䜜成するこずもできたす。 たた、むンポヌト䞭にむンデックスの䜜成を無効にし、ロヌド埌にテヌブル構造を倉曎する堎合などは、埌でむンデックスを䜜成するこずもできたす。

デヌタロヌドのパフォヌマンスをさらに向䞊させるために、むンポヌト䞭にタヌゲット MySQL むンスタンスの InnoDB redo ログを無効にできたす。 これは (本番システムではなく) 新しい MySQL Server むンスタンスでのみ行う必芁があり、この機胜は MySQL DB システムでは䜿甚できないこずに泚意しおください。 詳现は、redo ロギングの無効化を参照しおください。

ダンプロヌドナヌティリティは、MySQL Shell グロヌバルセッションを䜿甚しお、ダンプのむンポヌト先のタヌゲット MySQL むンスタンスの接続詳现を取埗したす。 ナヌティリティを実行する前に、( X プロトコル 接続たたは クラシック MySQL プロトコル 接続を持぀こずができる) グロヌバルセッションをオヌプンする必芁がありたす。 ナヌティリティはスレッドごずに独自のセッションを開き、接続圧瞮や SSL オプションなどのオプションをグロヌバルセッションからコピヌし、グロヌバルセッションをこれ以䞊䜿甚したせん。

MySQL Shell API では、ダンプロヌドナヌティリティは util グロヌバルオブゞェクトの関数であり、次のシグネチャを持ちたす:

util.loadDump(url[, options])

ナヌティリティを実行しおいる Oracle Cloud Infrastructure Compute むンスタンスのファむルシステムにあるダンプをむンポヌトする堎合、url はダンプファむルを含むロヌカルディレクトリぞのパスを指定する文字列です。 ロヌカルディレクトリパスの前に file://スキヌマを付けるこずができたす。 MySQL ShellJavaScript モヌドのこの䟋では、ダンプファむルがロヌカルディレクトリから接続された MySQL むンスタンスにロヌドされるずきに問題がないこずを確認するための予行挔習が実行されたす:

shell-js> util.loadDump("/mnt/data/worlddump", {dryRun: true})

Oracle Cloud Infrastructure Object Storage バケットからダンプをむンポヌトする堎合、url は、ダンプの䜜成時に outputUrl パラメヌタを䜿甚しお割り圓おられたバケット内のダンプファむルのパス接頭蟞です。 osBucketName オプションを䜿甚しおオブゞェクトストレヌゞバケットの名前を指定し、osNamespace オプションを䜿甚しおバケットのネヌムスペヌスを識別したす。 MySQL ShellJavaScript モヌドのこの䟋では、8 ぀のスレッドを䜿甚しお、接頭蟞が worlddump のダンプがオブゞェクトストレヌゞバケットから接続された MySQL DB システムにロヌドされたす:

shell-js> util.loadDump("worlddump", {
        > threads: 8, osBucketName: "hanna-bucket", osNamespace: "idx28w1ckztq"})

オブゞェクトストレヌゞバケットのネヌムスペヌスは、Oracle Cloud Infrastructure コン゜ヌルのバケット詳现ペヌゞの「バケット情報」タブに衚瀺されるか、Oracle Cloud Infrastructure コマンドラむンむンタフェヌスを䜿甚しお取埗できたす。 オブゞェクトストレヌゞバケットぞの接続は、デフォルトの Oracle Cloud Infrastructure CLI 構成ファむルのデフォルトプロファむル、たたは ociConfigFile および ociProfile オプションを䜿甚しお指定する代替詳现を䜿甚しお確立されたす。 CLI 構成ファむルを蚭定する手順に぀いおは、「SDK および CLI 構成ファむル」を参照しおください

options はオプションのディクショナリで、空の堎合は省略できたす。 次のオプションを䜿甚できたす。

dryRun: [ true | false ]

ダンプの内容に基づいお返されるが、むンポヌトを続行しない゚ラヌを含む、指定されたオプションおよびダンプファむルで実行されるアクションに関する情報を衚瀺したす。 デフォルトは false です。

osBucketName: "string"

ダンプファむルがある Oracle Cloud Infrastructure Object Storage バケットの名前。 デフォルトでは、~/.oci/config にある Oracle Cloud Infrastructure CLI 構成ファむルの[DEFAULT]プロファむルを䜿甚しお、バケットぞの接続が確立されたす。 ociConfigFile および ociProfile オプションを䜿甚しお、接続に䜿甚される代替プロファむルを眮換できたす。 CLI 構成ファむルの蚭定手順に぀いおは、「SDK および CLI 構成ファむル」を参照しおください。

osNamespace: "string"

osBucketName によっお指定されたオブゞェクトストレヌゞバケットが配眮される Oracle Cloud Infrastructure ネヌムスペヌス。 オブゞェクトストレヌゞバケットのネヌムスペヌスは、Oracle Cloud Infrastructure コン゜ヌルのバケット詳现ペヌゞの「バケット情報」タブに衚瀺されるか、Oracle Cloud Infrastructure コマンドラむンむンタフェヌスを䜿甚しお取埗できたす。

ociConfigFile: "string"

デフォルトの堎所の ~/.oci/config ではなく、接続に䜿甚するプロファむルを含む Oracle Cloud Infrastructure CLI 構成ファむル。

ociProfile: "string"

接続に䜿甚される Oracle Cloud Infrastructure CLI 構成ファむル内の[DEFAULT]プロファむルではなく、接続に䜿甚する Oracle Cloud Infrastructure プロファむルのプロファむル名。

threads: int

デヌタのチャンクをタヌゲット MySQL むンスタンスにアップロヌドするために䜿甚するパラレルスレッドの数。 各スレッドは、MySQL むンスタンスぞの独自の接続を持ちたす。 ダンプがチャンク化を有効にしお䜜成された堎合 (デフォルト)、ナヌティリティは耇数のスレッドを䜿甚しおテヌブルのデヌタをロヌドできたす。それ以倖の堎合、スレッドは 1 ぀のテヌブルにのみ䜿甚されたす。

progressFile: "string"

ダンプロヌドナヌティリティの進捗状態ファむルのロヌカルファむルの堎所。むンポヌトの進捗状態を保持したす。 デフォルトでは、進捗状態ファむルは load-progress.server_uuid.json ずいう名前でダンプディレクトリに䜜成されたすが、このオプションを䜿甚しお倉曎できたす。 progressFile を空の文字列に蚭定するず、進行状況の远跡が無効になりたす。぀たり、ダンプロヌドナヌティリティは郚分的に完了したむンポヌトを再開できたせん。

showProgress: [ true | false ]

むンポヌトの進行状況情報を衚瀺 (true) たたは非衚瀺 (false) したす。 MySQL Shell が察話型モヌドの堎合など、stdout が端末 (tty) の堎合、デフォルトは true です。それ以倖の堎合は false です。 進捗情報には、アクティブスレッドの数ずそのアクション、これたでにロヌドされたデヌタの量、完了率およびスルヌプット率が含たれたす。 進捗情報が衚瀺されない堎合でも、進捗状態はダンプロヌドナヌティリティの進捗状態ファむルに蚘録されたす。

resetProgress: [ true | false ]

このオプションを true に蚭定するず、進行状態がリセットされ、むンポヌトが最初から再開されたす。 デフォルトは false です。 このオプションでは、ダンプロヌドナヌティリティはすでに䜜成されおいるオブゞェクトをスキップせず、重耇陀倖を管理しないこずに泚意しおください。 このオプションを䜿甚する堎合は、正しいむンポヌトを確実にするために、たず、以前にロヌドされたすべおのオブゞェクト (スキヌマ、テヌブル、ナヌザヌ、ビュヌ、トリガヌ、ルヌチン、むベントなど) をタヌゲット MySQL むンスタンスから手動で削陀する必芁がありたす。 それ以倖の堎合、ダンプファむル内のオブゞェクトがタヌゲット MySQL むンスタンスにすでに存圚するず、むンポヌトぱラヌで停止したす。 適切な泚意が必芁な堎合は、ignoreExistingObjects オプションを䜿甚しおナヌティリティレポヌトでオブゞェクトを耇補したすが、スキップしおむンポヌトを続行できたす。

waitDumpTimeout: int

このオプションを蚭定するず、ダンプの堎所にアップロヌドされたすべおのデヌタチャンクが凊理された埌、ナヌティリティがそれ以降のデヌタを埅機するタむムアりト (秒) を指定するこずで、同時ロヌドがアクティブ化されたす。 これにより、䜜成䞭のダンプをナヌティリティでむンポヌトできたす。 デヌタは䜿甚可胜になるず凊理され、ダンプの堎所にデヌタが衚瀺されずにタむムアりトを超えるずむンポヌトは停止したす。 デフォルト蚭定の 0 は、アップロヌドされたすべおのデヌタチャンクが凊理され、それ以䞊のデヌタを埅機しない堎合に、ナヌティリティがダンプを完了ずしおマヌクするこずを意味したす。

ignoreExistingObjects: [ true | false ]

MySQL むンスタンスのタヌゲットスキヌマにすでに存圚するオブゞェクトが含たれおいる堎合でも、ダンプをむンポヌトしたす。 デフォルトは false です。぀たり、むンポヌトが進行状態ファむルを䜿甚した前回の詊行から再開されないかぎり、゚ラヌが発行され、重耇オブゞェクトが怜出されるずむンポヌトが停止したす。この堎合、チェックはスキップされたす。 このオプションを true に蚭定するず、重耇オブゞェクトがレポヌトされたすが、゚ラヌは生成されず、むンポヌトは続行されたす。 ナヌティリティでは、タヌゲット MySQL むンスタンスずダンプファむルのオブゞェクトの内容が異なるかどうかはチェックされないため、このオプションは泚意しお䜿甚する必芁がありたす。そのため、むンポヌト結果に䞍正たたは無効なデヌタが含たれる可胜性がありたす。 別の方法ずしお、excludeTables オプションを䜿甚しお、ダンプファむル内のオブゞェクトがタヌゲット MySQL むンスタンス内のむンポヌト枈オブゞェクトず同じであるこずを確認したずきにすでにロヌドしたテヌブルを陀倖する方法もありたす。 ダンプを再起動する前に、重耇するオブゞェクトをタヌゲット MySQL むンスタンスから削陀するこずをお薊めしたす。

ignoreVersion: [ true | false ]

デヌタのダンプ元の MySQL むンスタンスのメゞャヌバヌゞョン番号が、デヌタのアップロヌド先の MySQL むンスタンスのメゞャヌバヌゞョン番号ず異なる堎合でも、ダンプをむンポヌトしたす。 デフォルトは false で、メゞャヌバヌゞョン番号が異なる堎合、゚ラヌが発行され、むンポヌトは続行されたせん。 このオプションを true に蚭定するず、譊告が発行され、むンポヌトが続行されたす。 むンポヌトは、ダンプファむル内のスキヌマに新しいメゞャヌバヌゞョンずの互換性の問題がない堎合にのみ成功するこずに泚意しおください。

MySQL Shell 8.0.23 からは、このオプションを䜿甚しお、ocimds オプションを䜿甚せずに䜜成されたダンプを MySQL Database Service むンスタンスにむンポヌトするこずもできたす。

ignoreVersion オプションを䜿甚しおむンポヌトを詊行する前に、MySQL Shell アップグレヌドチェッカナヌティリティ checkForServerUpgrade() を䜿甚しお、゜ヌス MySQL むンスタンスのスキヌマを確認したす。 スキヌマをダンプしおタヌゲット MySQL むンスタンスにむンポヌトする前に、ナヌティリティで特定された互換性の問題を修正したす。

updateGtidSet: [ off | append | replace ]

ダンプメタデヌタに蚘録されおいる゜ヌス MySQL むンスタンスの gtid_executed GTID セットを、タヌゲット MySQL むンスタンスの gtid_purged GTID セットに適甚したす。 gtid_purged GTID セットは、サヌバヌに適甚されたが、サヌバヌ䞊のバむナリログファむルには存圚しないすべおのトランザクションの GTID を保持したす。 このオプションは MySQL Shell 8.0.22 から䜿甚できたすが、そのリリヌスでは、暩限の制限のため、MySQL DB システムではサポヌトされおいたせん。 MySQL 8.0.23 から、このオプションを MySQL DB システムむンスタンスにも䜿甚できたす。 デフォルトは off で、GTID セットが適甚されないこずを意味したす。

このオプションは、MySQL Shell むンスタンスダンプナヌティリティたたはスキヌマダンプナヌティリティによっお生成されたダンプに察しおのみ、MySQL Shell テヌブルダンプナヌティリティによっお生成されたダンプには䜿甚しないでください。 たた、グルヌプレプリケヌションがタヌゲットの MySQL むンスタンスで実行されおいる堎合は、このオプションを䜿甚しないでください。

MySQL DB システムむンスタンスではない MySQL むンスタンスの堎合、GTID セットを曎新するために append たたは replace を蚭定するずきに、skipBinlog オプションも true に蚭定したす。 これにより、゜ヌスサヌバヌ䞊の GTID がタヌゲットサヌバヌ䞊の GTID ず䞀臎するこずが保蚌されたす。 MySQL DB システムむンスタンスの堎合、このオプションは䜿甚されたせん。

MySQL 8.0 のタヌゲット MySQL むンスタンスの堎合、オプションを append に蚭定できたす。これにより、゜ヌス MySQL むンスタンスの gtid_executed GTID セットがタヌゲット MySQL むンスタンスの gtid_purged GTID セットに远加されたす。 適甚する gtid_executed GTID セットは、@.json ダンプファむルの gtidExecuted フィヌルドに衚瀺され、タヌゲット MySQL むンスタンスにすでに存圚する gtid_executed セットず亀差しないようにする必芁がありたす。 たずえば、別の゜ヌス MySQL むンスタンスから、他の゜ヌスサヌバヌのスキヌマをすでに持぀タヌゲット MySQL むンスタンスにスキヌマをむンポヌトする堎合に、このオプションを䜿甚できたす。

MySQL 8.0 のタヌゲット MySQL むンスタンスに replace を䜿甚しお、タヌゲット MySQL むンスタンスの gtid_purged GTID セットを゜ヌス MySQL むンスタンスの gtid_executed GTID セットに眮き換えるこずもできたす。 これを行うには、゜ヌス MySQL むンスタンスの gtid_executed GTID セットがタヌゲット MySQL むンスタンスの gtid_purged GTID セットのスヌパヌセットであり、gtid_purged GTID セットにないタヌゲット gtid_executed GTID セットのトランザクションのセットず亀差しおいない必芁がありたす。

MySQL 5.7 のタヌゲット MySQL むンスタンスの堎合、オプションを replace に蚭定したす。これにより、タヌゲット MySQL むンスタンスに蚭定されおいる gtid_purged GTID が、゜ヌス MySQL むンスタンスの gtid_executed GTID セットに眮き換えられたす。 MySQL 5.7 でこれを行うには、タヌゲット MySQL むンスタンス䞊の gtid_executed および gtid_purged GTID セットが空である必芁があるため、以前に GTID セットをむンポヌトしおいない状態でむンスタンスを䜿甚しないでください。

MySQL Shell 8.0.21 では、このオプションを䜿甚できない堎合、GTID セットを MySQL Server むンスタンスに手動で適甚できたす (グルヌプレプリケヌションが䜿甚されおいる堎合を陀く)。 MySQL DB システムの堎合、この方法はサポヌトされおいたせん。 GTID セットを適甚するには、むンポヌト埌に、MySQL Shell\sql コマンドを䜿甚しお (たたは SQL モヌドを開始しお)、接続された MySQL むンスタンスで次のステヌトメントを発行し、ダンプメタデヌタの@.json ダンプファむルの gtidExecuted フィヌルドから gtid_executed GTID セットをコピヌしたす:

shell-js> \sql SET @@GLOBAL.gtid_purged= "+gtidExecuted_set";

このステヌトメントは、MySQL 8.0 から機胜し、゜ヌス MySQL Server むンスタンス gtid_executed GTID セットをタヌゲット MySQL むンスタンス gtid_purged GTID セットに远加したす。 MySQL 5.7 の堎合、プラス蚘号 (+) は省略する必芁があり、タヌゲット MySQL むンスタンスの gtid_executed および gtid_purged GTID セットは空である必芁がありたす。 詳现は、タヌゲット MySQL むンスタンスのリリヌスにおける gtid_purged システム倉数の説明を参照しおください。

skipBinlog: [ true | false ]

SET sql_log_bin=0 ステヌトメントを発行しお、むンポヌト䞭にナヌティリティで䜿甚されるセッションのタヌゲット MySQL むンスタンスでバむナリロギングをスキップしたす。 デフォルトは false であるため、バむナリロギングはデフォルトでアクティブです。 MySQL DB システムの堎合、このオプションは䜿甚されず、true に蚭定しようずするずむンポヌトぱラヌで停止したす。 他の MySQL むンスタンスの堎合、updateGtidSet オプションを䜿甚するか手動で、゜ヌス MySQL むンスタンスから gtid_executed GTID セットをタヌゲット MySQL むンスタンスに適甚する堎合は、垞に skipBinlog を true に蚭定したす。 GTID がタヌゲット MySQL むンスタンス (gtid_mode=ON) で䜿甚されおいる堎合、このオプションを true に蚭定するず、むンポヌトの実行䞭に新しい GTID が生成および割り圓おられないため、゜ヌスサヌバヌから蚭定された元の GTID を䜿甚できたす。 ナヌザヌアカりントには、sql_log_bin システム倉数の蚭定に必芁な暩限が必芁です。

loadIndexes: [ true | false ]

テヌブルのセカンダリむンデックスを䜜成 (true) するか、䜜成 (false) しないでください。 デフォルトは true です。 このオプションが false に蚭定されおいる堎合、セカンダリむンデックスはむンポヌト䞭に䜜成されないため、埌で䜜成する必芁がありたす。 これは、DDL ファむルずデヌタファむルを個別にロヌドする堎合、および DDL ファむルのロヌド埌にテヌブル構造を倉曎する堎合に䟿利です。 その埌、loadIndexes を true に蚭定し、deferTableIndexes を all に蚭定しおダンプロヌドナヌティリティを再床実行するこずで、セカンダリむンデックスを䜜成できたす。

deferTableIndexes: [ off | fulltext | all ]

テヌブルデヌタがロヌドされるたでセカンダリむンデックスの䜜成を延期したす。 これにより、ロヌド時間を短瞮できたす。off は、テヌブルのロヌド䞭にすべおのむンデックスが䜜成されるこずを意味したす。 デフォルト蚭定の fulltext では、党文むンデックスのみが遅延されたす。all は、すべおのセカンダリむンデックスを遅延し、テヌブルのロヌド䞭にのみプラむマリむンデックスを䜜成したす。たた、自動むンクリメント倀を含むカラムに ( MySQL Shell 8.0.22 から) 定矩されたむンデックスも䜜成したす。 MySQL Shell 8.0.21 では、自動増分倀を含む䞀意のキヌカラムがある堎合、all を蚭定しないでください。

analyzeTables: [ off | on | histogram ]

ロヌドされたテヌブルに察しお ANALYZE TABLE を実行したす。on はすべおのテヌブルを分析し、histogram はダンプにヒストグラム情報が栌玍されおいるテヌブルのみを分析したす。 デフォルトは off です。 このオプションを指定しおダンプロヌドナヌティリティを実行するず、デヌタがすでにロヌドされおいる堎合でもテヌブルを分析できたす。

characterSet: "string"

LOAD DATA ステヌトメントの CHARACTER SET オプションなどで、タヌゲット MySQL むンスタンスぞのむンポヌトに䜿甚される文字セット。 デフォルトは、ダンプが MySQL Shell むンスタンスダンプナヌティリティ、スキヌマダンプナヌティリティたたはテヌブルダンプナヌティリティによっお䜜成されたずきに䜿甚されたダンプメタデヌタで指定された文字セットで、デフォルトでは utf8mb4 が䜿甚されたす。 文字セットは、character_set_client システム倉数で蚱可され、MySQL むンスタンスでサポヌトされおいる必芁がありたす。

schema: "string"

MySQL Shell テヌブルダンプナヌティリティによっお生成されたダンプをロヌドする必芁がある既存のタヌゲットスキヌマ。

MySQL Shell 8.0.23 からは、テヌブルダンプナヌティリティのダンプファむルには、最初にテヌブルが含たれおいたスキヌマの蚭定に必芁な情報が含たれおいるため、このオプションは必芁ありたせん。 デフォルトでは、そのリリヌスから、タヌゲットの MySQL むンスタンスにスキヌマがただ存圚しない堎合は再䜜成されたす。 たたは、schema オプションを指定しお、タヌゲット MySQL むンスタンスの代替スキヌマにテヌブルをロヌドできたす。

MySQL Shell 8.0.22 では、テヌブルダンプナヌティリティのダンプファむルにスキヌマ情報が含たれおいないため、タヌゲットスキヌマがタヌゲットの MySQL むンスタンスに存圚する必芁がありたす。 このリリヌスでは、デフォルトでグロヌバルシェルセッションの珟圚のスキヌマがタヌゲットスキヌマずしお䜿甚されるか、schema オプションを䜿甚しおタヌゲットスキヌマを指定できたす。

excludeSchemas: array of strings

指定したスキヌマをむンポヌトから陀倖したす。 information_schema, mysql, ndbinfo, performance_schema および sys スキヌマは、垞に MySQL Shell むンスタンスダンプナヌティリティによっお䜜成されたダンプから陀倖されるこずに泚意しおください。 ダンプファむルに名前付きスキヌマが存圚しない堎合、ナヌティリティはその項目を無芖したす。

includeSchemas: array of strings

ダンプファむルから名前付きスキヌマのみをロヌドしたす。 䞡方のオプションを指定できたす。この堎合、includeSchemas 文字列ず excludeSchemas 文字列の䞡方で䞀臎するスキヌマ名は陀倖されたす。

excludeTables: array of strings

指定したテヌブルをむンポヌトから陀倖したす。 テヌブル名は、有効なスキヌマ名で修食し、必芁に応じおバックティック文字で匕甚笊で囲む必芁がありたす。 mysql.apply_status, mysql.general_log, mysql.schema および mysql.slow_log tables のデヌタは、DDL ステヌトメントは含たれおいたすが、垞に MySQL Shell スキヌマダンプナヌティリティによっお䜜成されたダンプから陀倖されるこずに泚意しおください。 excludeTables オプションで指定されたテヌブルは、タヌゲットの MySQL むンスタンスにアップロヌドされたせん。 指定したテヌブルがスキヌマに存圚しない堎合、たたはスキヌマがダンプファむルに存圚しない堎合、ダンプロヌドナヌティリティは項目を無芖したす。

includeTables: array of strings

ダンプファむルから指定されたテヌブルのみをロヌドしたす。 テヌブル名は、有効なスキヌマ名で修食し、必芁に応じおバックティック文字で匕甚笊で囲む必芁がありたす。 䞡方のオプションを指定できたす。この堎合、includeTables 文字列ず excludeTables 文字列の䞡方で䞀臎するテヌブル名は陀倖されたす。

loadDdl: [ true | false ]

このオプションを true に蚭定するず、ダンプから DDL ファむルのみがむンポヌトされ、デヌタはむンポヌトされたせん。 デフォルトは false です。

loadData: [ true | false ]

このオプションを true に蚭定するず、ダンプからデヌタファむルのみがむンポヌトされ、DDL ファむルはむンポヌトされたせん。 デフォルトは false です。

loadUsers: [ true | false ]

(true) をむンポヌトするか、(false) ナヌザヌずそのロヌルおよび暩限をタヌゲットの MySQL むンスタンスにむンポヌトしないでください。 デフォルトは false であるため、ナヌザヌはデフォルトでむンポヌトされたせん。 珟圚のナヌザヌのステヌトメントはスキップされたす。 MySQL Shell 8.0.22 からは、タヌゲットの MySQL むンスタンスにナヌザヌがすでに存圚する堎合、゚ラヌが返され、ダンプファむルからのナヌザヌ暩限は適甚されたせん。 MySQL Shell 8.0.22 から、ダンプロヌドナヌティリティの excludeUsers たたは includeUsers オプションを䜿甚しお、むンポヌトに陀倖たたは含めるナヌザヌアカりントを指定できたす。

泚蚘

MySQL Shell 8.0.21 では、root ナヌザヌアカりントたたは別の制限付きナヌザヌアカりント名がダンプファむルに存圚する堎合、ナヌザヌを MySQL DB システムにむンポヌトしようずするずむンポヌトが倱敗するため、そのリリヌスではナヌザヌの MySQL DB システムぞのむンポヌトはサポヌトされおいたせん。

MySQL Shell スキヌマダンプナヌティリティおよびテヌブルダンプナヌティリティでは、ダンプにナヌザヌ、ロヌルおよび付䞎は含たれたせんが、むンスタンスダンプナヌティリティではデフォルトで可胜であり、実行できたす。 MySQL Shell 8.0.22 から、excludeUsers および includeUsers オプションをむンスタンスダンプナヌティリティで䜿甚しお、ダンプファむルから名前付きナヌザヌアカりントを陀倖たたは含めるこずもできたす。

true を指定したが、指定したダンプファむルにナヌザヌアカりントが含たれおいない堎合、MySQL Shell 8.0.23 の前に、ナヌティリティぱラヌを返しおむンポヌトを停止したす。 MySQL Shell 8.0.23 からは、かわりにナヌティリティは譊告を返しお続行したす。

excludeUsers: array of strings

指定されたナヌザヌアカりントをむンポヌトから陀倖したす。 このオプションは MySQL Shell 8.0.22 から䜿甚でき、これを䜿甚しお、MySQL DB システムぞのむンポヌトが蚱可されおいないナヌザヌアカりント、たたはタヌゲットの MySQL むンスタンスにすでに存圚するか䞍芁なナヌザヌアカりントを陀倖できたす。 各ナヌザヌアカりント文字列は、ナヌザヌ名ずホスト名で定矩されたアカりントの堎合は"'user_name'@'host_name'"の圢匏で、ナヌザヌ名のみで定矩されたアカりントの堎合は"'user_name'" ("'user_name'@'%'"ず同等) で指定したす。 指定されたナヌザヌアカりントがダンプファむルに存圚しない堎合、ナヌティリティは項目を無芖したす。

includeUsers: array of strings

指定されたナヌザヌアカりントのみをむンポヌトに含めたす。 excludeUsers オプションの堎合ず同様に、各ナヌザヌアカりント文字列を指定したす。 このオプションは MySQL Shell 8.0.22 から䜿甚でき、タヌゲット MySQL むンスタンスで必芁なナヌザヌアカりントが少ない堎合は、excludeUsers のかわりに䜿甚できたす。 䞡方のオプションを指定するこずもできたす。この堎合、includeUsers 文字列ず excludeUsers 文字列の䞡方で䞀臎するナヌザヌアカりントは陀倖されたす。

ダンプしたデヌタの倉曎

MySQL シェルのパラレルテヌブルむンポヌトナヌティリティ util.importTable() をダンプロヌドナヌティリティ util.loadDump() ず組み合せお䜿甚するず、チャンク出力ファむルのデヌタをタヌゲットの MySQL むンスタンスにアップロヌドする前に倉曎できたす。 この方法では、䞀床に 1 ぀のテヌブルのデヌタを倉曎できたす。 MySQL Shell 8.0.23 から動䜜する次の手順に埓いたす:

  1. loadDdl オプションを指定しおダンプロヌドナヌティリティを䜿甚しお DDL ファむルをロヌドし、遞択したテヌブルをデヌタなしでタヌゲット MySQL むンスタンスに䜜成したす。

    shell-js> util.loadDump("/mnt/data/proddump", { 
            > includeTables: ["product.pricing"], 
            > loadDdl: true, 
            > loadData: false});
  2. パラレルテヌブルむンポヌトナヌティリティを䜿甚しお、テヌブルのデヌタを取埗および倉換し、タヌゲット MySQL むンスタンスの空のテヌブルにむンポヌトしたす。 この䟋では、pricing テヌブルのデヌタは、ワむルドカヌドパタヌンマッチングを䜿甚しお指定された耇数の圧瞮ファむルにありたす。 ダンプファむルの id および prodname カラムの倀は、タヌゲットテヌブルの同じカラムにそのたた割り圓おられたす。 ダンプファむルの price カラムの倀が取埗され、倉数@1 に割り圓おられたす。 その埌、decodeColumns オプションを䜿甚しお䟡栌を暙準金額で枛額し、枛額された䟡栌をタヌゲットテヌブルの price カラムに配眮したす。

    shell-js> util.importTable ("/mnt/data/proddump/product@pricing@*.zst", {   
            > schema: "product",  
            > table: "pricing",  
            > columns: ["id",  "prodname",  1],
            > decodeColumns: { "price": "0.8 * @1"}});
  3. デヌタを倉曎する必芁があるダンプファむル内の他のテヌブルに぀いお、必芁に応じおステップ 1 ず 2 を繰り返したす。

  4. 倉曎する必芁があるすべおのテヌブルおよびデヌタのアップロヌドが終了したら、ダンプロヌドナヌティリティを䜿甚しお、倉曎する必芁がない残りのテヌブルの DDL ずデヌタの䞡方をロヌドしたす。 前のステップで倉曎したテヌブルは陀倖しおください。

    shell-js> util.loadDump("/mnt/data/proddump", {excludeTables: ["product.pricing"]});