このページは機械翻訳したものです。
MySQL Shell インスタンスダンプユーティリティ util.dumpInstance()
およびスキーマダンプユーティリティ util.dumpSchemas()
は、MySQL Shell 8.0.21 で導入され、オンプレミス MySQL インスタンスから Oracle Cloud Infrastructure Object Storage バケットまたはローカルファイルのセットへのすべてのスキーマまたは選択したスキーマのエクスポートをサポートしています。 MySQL Shell 8.0.22 で導入されたテーブルダンプユーティリティ util.dumpTables()
では、スキーマから選択したテーブルまたはビューに対して同じ操作がサポートされます。 エクスポートした項目は、MySQL Shellセクション8.6「ダンプロードユーティリティ」util.loadDump()
を使用して、MySQL Database Service DB システム (短縮形は MySQL DB システム) または MySQL Server インスタンスにインポートできます。
MySQL Shell インスタンスダンプユーティリティ、スキーマダンプユーティリティおよびテーブルダンプユーティリティは、Oracle Cloud Infrastructure Object Storage ストリーミング、MySQL Database Service の互換性チェックと変更、複数スレッドによるパラレルダンプ、および mysqldump で提供されていないファイル圧縮を提供します。 ダンプ中に進捗情報が表示されます。 選択したダンプオプションのセットでドライランを実行して、実行されるアクション、ダンプされる項目、および (インスタンスダンプユーティリティおよびスキーマダンプユーティリティの) これらのオプションを使用して実際にユーティリティを実行するときに修正する必要がある MySQL Database Service の互換性の問題に関する情報を表示できます。
ダンプファイルの宛先を選択する場合、MySQL DB システムにインポートするには、ダンプロードユーティリティを実行する MySQL Shell インスタンスが、MySQL DB システムにアクセスできる Oracle Cloud Infrastructure Compute インスタンスにインストールされている必要があります。 インスタンス、スキーマまたはテーブルをオブジェクトストレージバケットにダンプする場合、コンピュートインスタンスからオブジェクトストレージバケットにアクセスできます。 ローカルシステムにダンプファイルを作成する場合、コンピュートインスタンスに選択したオペレーティングシステムに応じて、選択したコピーユーティリティを使用して Oracle Cloud Infrastructure Compute インスタンスにダンプファイルを転送する必要があります。
MySQL Shell インスタンスダンプユーティリティ、スキーマダンプユーティリティおよびテーブルダンプユーティリティによって作成されるダンプは、スキーマ構造を指定する DDL ファイルと、データを含むタブ区切りの .tsv
ファイルで構成されます。 エクスポートされたスキーマにエクスポートされたデータを移入することとは別に、エクスポートされたスキーマを設定する場合は、DDL ファイルのみまたはデータファイルのみを生成することもできます。 データ整合性のためにダンプ中にバックアップのためにインスタンスをロックするかどうかを選択できます。 デフォルトでは、ダンプユーティリティはテーブルデータを複数のデータファイルにチャンク化し、ファイルを圧縮します。
MySQL インスタンスのスキーマの大部分を代替方法としてダンプする必要がある場合は、スキーマダンプユーティリティではなくインスタンスダンプユーティリティを使用して、ダンプしないスキーマをリストする excludeSchemas
オプションを指定できます。 同様に、スキーマ内のほとんどのテーブルをダンプする必要がある場合は、テーブルダンプユーティリティではなく、excludeTables
オプションを指定してスキーマダンプユーティリティを使用できます。 information_schema
, mysql
, ndbinfo
, performance_schema
および sys
スキーマは、常にインスタンスダンプから除外されます。 mysql.apply_status
, mysql.general_log
, mysql.schema
テーブルおよび mysql.slow_log
テーブルのデータは、DDL ステートメントは含まれますが、常にスキーマダンプから除外されます。 ユーザーとそのロール、権限付与、イベント、ルーチンおよびトリガーを含めるか除外するかを選択することもできます。
デフォルトでは、ダンプ出力のすべてのタイムスタンプデータでタイムゾーンが UTC に標準化されるため、異なるタイムゾーンを持つサーバー間でのデータの移動および複数のタイムゾーンを持つデータの処理が容易になります。 必要に応じて、tzUtc: false
オプションを使用して元のタイムスタンプを保持できます。
MySQL Shell 8.0.22 から、インスタンスまたはスキーマを Oracle Cloud Infrastructure Object Storage バケットにエクスポートするときに、ダンプ中に各アイテムに対して事前認証済リクエスト URL を生成できます。 MySQL Shell ダンプロードユーティリティ util.loadDump()
を実行するユーザーアカウントは、これらを使用して、追加のアクセス権限なしでダンプファイルをロードします。 デフォルトでは、ocimds
オプションが true
に設定されており、osBucketName
オプションを使用してオブジェクトストレージバケット名が指定されている場合、MySQL Shell インスタンスダンプユーティリティおよびスキーマダンプユーティリティはダンプファイルの事前認証済リクエスト URL を生成し、単一のマニフェストファイルにリストします。 ダンプロードユーティリティはマニフェストファイルを参照して URL を取得し、ダンプファイルをロードします。 事前認証済リクエスト URL を生成または非アクティブ化する手順は、ociParManifest
オプションの説明を参照してください。
インスタンスダンプユーティリティ、スキーマダンプユーティリティおよびテーブルダンプユーティリティを使用するダンプには、次の要件が適用されます:
MySQL 5.7 以上は、ソース MySQL インスタンスとアップグレード先 MySQL インスタンスの両方に必要です。
インスタンスまたはスキーマ内のオブジェクト名は、
latin1
またはutf8
の文字セットである必要があります。データの整合性は、
InnoDB
ストレージエンジンを使用するテーブルに対してのみ保証されます。ユーティリティの実行に使用されるユーザーアカウントが、関連するすべてのスキーマに対して持っている必要がある最小限の権限セットは、次のとおりです:
BACKUP_ADMIN
,EVENT
,RELOAD
,SELECT
,SHOW VIEW
およびTRIGGER
。consistent
オプションがfalse
に設定されている場合、BACKUP_ADMIN
およびRELOAD
権限は必要ありません。consistent
オプションがtrue
(デフォルト) に設定されている場合、ダンプされたすべてのテーブルに対するLOCK TABLES
権限は、RELOAD
権限のかわりに使用できます (後者が使用できない場合)。Oracle Cloud Infrastructure Object Storage バケットへのファイルの転送に使用されるアップロード方法のファイルサイズ制限は、1.2 TiB です。 MySQL Shell 8.0.21 では、マルチパートサイズ設定は、複数のファイルパートの数値制限が最初に適用され、約 640 GB の制限が作成されることを意味します。 MySQL Shell 8.0.22 から、マルチパートサイズの設定が変更され、フルファイルサイズ制限が可能になりました。
ユーティリティは、安全でないデータ型のカラムをテキスト形式 (
BLOB
など) で Base64 に変換します。 したがって、これらのカラムのサイズは、ターゲットの MySQL インスタンスで構成されているmax_allowed_packet
システム変数の値の約 0.74 倍 (バイト単位) を超えないようにする必要があります。テーブルダンプユーティリティの場合、エクスポートされたビューおよびトリガーは、他のビューまたはテーブルの参照に修飾名を使用しないでください。
MySQL DB システムにインポートする場合は、MySQL Database Service との互換性を確保するために、
ocimds
オプションをtrue
に設定します。MySQL Database Service との互換性のために、すべてのテーブルで
InnoDB
ストレージエンジンを使用する必要があります。ocimds
オプションはダンプで見つかった例外をチェックし、compatibility
オプションはダンプファイルを変更してほかのストレージエンジンをInnoDB
に置き換えます。インスタンスダンプユーティリティおよびスキーマダンプユーティリティでは、MySQL Database Service との互換性のために、インスタンスまたはスキーマ内のすべてのテーブルが MySQL データディレクトリにあり、デフォルトのスキーマ暗号化を使用する必要があります。
ocimds
オプションは、これらの要件を適用するようにダンプファイルを変更します。MySQL Database Service との互換性のために、テーブルスペースや権限などの項目には、他の多くのセキュリティ関連の制限および要件が適用されます。
ocimds
オプションはダンプ中に見つかった例外をチェックし、compatibility
オプションはダンプファイルを自動的に変更して互換性の問題の一部を解決します。 一部の変更は手動で行う必要がある (または望ましい) 場合があります。 詳細は、compatibility
オプションの説明を参照してください。
インスタンスダンプユーティリティ、スキーマダンプユーティリティおよびテーブルダンプユーティリティは、MySQL Shell グローバルセッションを使用して、エクスポートを実行するターゲット MySQL サーバーの接続詳細を取得します。 いずれかのユーティリティを実行する前に、( X プロトコル 接続または クラシック MySQL プロトコル 接続を持つことができる) グローバルセッションをオープンする必要があります。 ユーティリティはスレッドごとに独自のセッションを開き、接続圧縮や SSL オプションなどのオプションをグローバルセッションからコピーし、グローバルセッションをこれ以上使用しません。
MySQL Shell API では、インスタンスダンプユーティリティ、スキーマダンプユーティリティおよびテーブルダンプユーティリティはutil
グローバルオブジェクトの関数であり、次のシグネチャを持ちます:
util.dumpInstance(outputUrl[, options])
util.dumpSchemas(schemas, outputUrl[, options])
util.dumpTables(schema, tables, outputUrl[, options])
スキーマダンプユーティリティの場合、schemas
は、MySQL インスタンスからダンプするスキーマのリストを指定します。
テーブルダンプユーティリティの場合、schema
はダンプする項目を含むスキーマを指定し、tables
はダンプするテーブルまたはビューを指定する文字列の配列です。 MySQL Shell 8.0.23 からは、ダンプロードユーティリティの schema
オプションを使用して別のターゲットスキーマにロードできますが、テーブルダンプにはターゲットの MySQL インスタンスで指定されたスキーマを設定するために必要な情報が含まれます。 MySQL Shell 8.0.22 にはスキーマ情報が含まれていないため、このユーティリティで生成されたダンプファイルを既存のターゲットスキーマにロードする必要があります。
ローカルファイルシステムにダンプする場合、outputUrl
はダンプファイルを配置するローカルディレクトリへのパスを指定する文字列です。 絶対パスまたは現在の作業ディレクトリからの相対パスを指定できます。 ローカルディレクトリパスの前に file://
スキーマを付けることができます。 この例では、接続された MySQL インスタンスがローカルディレクトリにダンプされますが、MySQL Database Service との互換性のためにダンプファイルにいくつかの変更が加えられています。 ユーザーは最初に予行演習を実行してスキーマを検査し、互換性の問題を表示してから、適切な互換性オプションを適用してダンプを実行し、問題を削除します:
shell-js> util.dumpInstance("C:/Users/hanna/worlddump", {dryRun: true, ocimds: true})
Checking for compatibility with MySQL Database Service 8.0.21
...
Compatibility issues with MySQL Database Service 8.0.21 were found. Please use the
'compatibility' option to apply compatibility adaptations to the dumped DDL.
Util.dumpInstance: Compatibility issues were found (RuntimeError)
shell-js> util.dumpInstance("C:/Users/hanna/worlddump", {
> ocimds: true, compatibility: ["strip_definers", "strip_restricted_grants"]})
エクスポートを実行する前に、ターゲットディレクトリを空にする必要があります。 ディレクトリがまだ親ディレクトリに存在しない場合は、ユーティリティによって作成されます。 ローカルディレクトリへのエクスポートの場合、ダンプ中に作成されたディレクトリはアクセス権限 rwxr-x---
で作成され、ファイルはアクセス権限 rw-r-----
(これらがサポートされているオペレーティングシステム上) で作成されます。 ファイルおよびディレクトリの所有者は、MySQL Shell を実行しているユーザーアカウントです。
テーブルダンプユーティリティを使用すると、スキーマ間でテーブルを転送する場合など、スキーマから個々のテーブルを選択できます。 MySQL ShellJavaScript モードのこの例では、hr
スキーマのテーブル employees
および salaries
がローカルディレクトリ emp
にエクスポートされ、ユーティリティによって現在の作業ディレクトリに作成されます:
shell-js> util.dumpTables("hr", [ "employees", "salaries" ], "emp")
Oracle Cloud Infrastructure Object Storage バケットにダンプする場合、outputUrl
は、ディレクトリ構造をシミュレートするためにバケット内のダンプファイルの接頭辞として使用されるパスです。 osBucketName
オプションを使用してオブジェクトストレージバケットの名前を指定し、osNamespace
オプションを使用してバケットのネームスペースを識別します。 MySQL ShellPython モードのこの例では、ユーザーは world
スキーマを接続された MySQL インスタンスから Object Storage バケットにダンプしますが、前の例と同じ互換性の変更があります:
shell-py> util.dump_schemas(["world"], "worlddump", {
> "osBucketName": "hanna-bucket", "osNamespace": "idx28w1ckztq",
> "ocimds": "true", "compatibility": ["strip_definers", "strip_restricted_grants"]})
オブジェクトストレージバケットでは、ダンプファイルはすべて接頭辞 worlddump
とともに表示されます。次に例を示します:
worlddump/@.done.json
worlddump/@.json
worlddump/@.post.sql
worlddump/@.sql
worlddump/world.json
worlddump/world.sql
worlddump/world@city.json
worlddump/world@city.sql
worlddump/world@city@@0.tsv.zst
worlddump/world@city@@0.tsv.zst.idx
...
オブジェクトストレージバケットのネームスペースは、Oracle Cloud Infrastructure コンソールのバケット詳細ページの「バケット情報」タブに表示されるか、Oracle Cloud Infrastructure コマンドラインインタフェースを使用して取得できます。 オブジェクトストレージバケットへの接続は、デフォルトの Oracle Cloud Infrastructure CLI 構成ファイルのデフォルトプロファイル、または ociConfigFile
および ociProfile
オプションを使用して指定する代替詳細を使用して確立されます。 CLI 構成ファイルを設定する手順については、「SDK および CLI 構成ファイル」を参照してください
options
はオプションのディクショナリで、空の場合は省略できます。 特に指定がないかぎり、インスタンスダンプユーティリティ、スキーマダンプユーティリティおよびテーブルダンプユーティリティには次のオプションを使用できます:
-
dryRun: [ true | false ]
指定されたオプションセットでダンプされる内容、および MySQL Database Service の互換性チェックの結果 (
ocimds
オプションが指定されている場合) に関する情報を表示しますが、ダンプは続行しません。 このオプションを設定すると、ダンプを開始する前に互換性の問題をすべてリストできます。 デフォルトは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 インスタンスへの独自の接続を持ちます。 デフォルトは 4 です。
-
maxRate: "
string
" ダンプ中のデータ読取りスループットのスレッド当たりの最大バイト数/秒。 単位接尾辞
k
(キロバイト)、M
(メガバイト)、およびG
(ギガバイト) を使用できます (たとえば、100M
を設定すると、スループットがスレッド当たり 100 メガバイト/秒に制限されます)。0
(デフォルト値) を設定するか、オプションを空の文字列に設定すると、制限は設定されません。-
showProgress: [ true | false ]
ダンプの進行状況情報を表示 (
true
) または非表示 (false
) にします。 MySQL Shell が対話型モードの場合など、stdout
が端末 (tty
) の場合、デフォルトはtrue
です。それ以外の場合はfalse
です。 進捗情報には、ダンプされる行の推定合計数、これまでにダンプされた行数、完了率およびスループット (行およびバイト/秒) が含まれます。-
compression: "
string
" ダンプのデータファイルを書き込むときに使用する圧縮タイプ。 デフォルトでは、zstd 圧縮 (
zstd
) が使用されます。 または、gzip 圧縮 (gzip
) を使用するか、圧縮なし (none
) を使用します。-
excludeSchemas:
array of strings
(インスタンスダンプユーティリティのみ)ダンプから名前付きスキーマを除外します。
information_schema
,mysql
,ndbinfo
,performance_schema
およびsys
スキーマは、常にインスタンスダンプから除外されることに注意してください。 名前付きスキーマが存在しないか除外されている場合、ユーティリティはその項目を無視します。-
excludeTables:
array of strings
(インスタンスダンプユーティリティおよびスキーマダンプユーティリティのみ)指定されたテーブルをダンプから除外します。 テーブル名は、有効なスキーマ名で修飾し、必要に応じてバックティック文字で引用符で囲む必要があります。 DDL ステートメントは含まれますが、
mysql.apply_status
,mysql.general_log
,mysql.schema
およびmysql.slow_log tables
のデータは常にスキーマダンプから除外されることに注意してください。excludeTables
オプションで指定されたテーブルには、ダンプ内に DDL ファイルまたはデータファイルがありません。 指定したテーブルがスキーマに存在しない場合、またはスキーマがダンプに含まれていない場合、ユーティリティはその項目を無視します。-
all: [ true | false ]
(テーブルダンプユーティリティのみ) このオプションを
true
に設定すると、指定したスキーマのすべてのビューおよびテーブルがダンプに含まれます。 このオプションを使用する場合は、tables
パラメータを空の配列に設定します。 デフォルトはfalse
です。-
users: [ true | false ]
-
(インスタンスダンプユーティリティのみ) Include (
true
) または exclude (false
) ユーザーとそのロールおよび権限をダンプに含めます。 デフォルトはtrue
であるため、ユーザーはデフォルトで含まれます。 スキーマダンプユーティリティおよびテーブルダンプユーティリティでは、ダンプにユーザー、ロールおよび権限は含まれません。 MySQL Shell 8.0.22 から、excludeUsers
またはincludeUsers
オプションを使用して、ダンプファイルに除外または含める個々のユーザーアカウントを指定できます。 これらのオプションを MySQL Shell ダンプロードユーティリティutil.loadDump()
とともに使用して、ターゲットの MySQL インスタンスの要件に応じて、インポート時に個々のユーザーアカウントを除外または含めることもできます。注記MySQL Shell 8.0.21 では、
root
ユーザーアカウントまたは別の制限付きユーザーアカウント名がダンプファイルに存在する場合、ユーザーを MySQL DB システムにインポートしようとするとインポートが失敗するため、そのリリースではユーザーの MySQL DB システムへのインポートはサポートされていません。 -
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 から使用でき、ダンプに必要なユーザーアカウントが少ない場合は、excludeUsers
のかわりに使用できます。 両方のオプションを指定することもできます。この場合、includeUsers
文字列とexcludeUsers
文字列の両方で一致するユーザーアカウントは除外されます。-
events: [ true | false ]
ダンプ内の各スキーマに対する(インスタンスダンプユーティリティおよびスキーマダンプユーティリティのみ) include (
true
) または exclude (false
) イベント。 デフォルトはtrue
です。-
routines: [ true | false ]
ダンプ内の各スキーマに対する(インスタンスダンプユーティリティおよびスキーマダンプユーティリティのみ) include (
true
) または exclude (false
) 関数およびストアドプロシージャ。 デフォルトはtrue
です。routines
がtrue
に設定されている場合でも、ユーザー定義関数は含まれないことに注意してください。-
triggers: [ true | false ]
ダンプ内の各テーブルに (
true
) トリガーを含めるか、(false
) トリガーを除外します。 デフォルトはtrue
です。-
defaultCharacterSet: "
string
" ダンプのために MySQL Shell によってサーバーに開かれるセッション接続中に使用される文字セット。 デフォルトは
utf8mb4
です。 システム変数character_set_client
、character_set_connection
およびcharacter_set_results
のセッション値は、接続ごとにこの値に設定されます。 文字セットは、character_set_client
システム変数で許可され、MySQL インスタンスでサポートされている必要があります。-
tzUtc: [ true | false ]
ダンプの先頭にステートメントを含めて、タイムゾーンを UTC に設定します。 ダンプ出力のすべてのタイムスタンプデータは、このタイムゾーンに変換されます。 デフォルトは
true
であるため、タイムスタンプデータはデフォルトで変換されます。 タイムゾーンを UTC に設定すると、異なるタイムゾーンを持つサーバー間でのデータの移動や、複数のタイムゾーンを持つ一連のデータの処理が容易になります。 必要に応じて元のタイムスタンプを保持するには、このオプションをfalse
に設定します。-
consistent: [ true | false ]
ダンプ中にインスタンスをバックアップ用にロックして、一貫性のあるデータダンプを有効 (
true
) または無効 (false
) にします。 デフォルトはtrue
です。true
が設定されている場合、ユーティリティはFLUSH TABLES WITH READ LOCK
ステートメントを使用してグローバル読取りロックを設定します。 各スレッドのトランザクションは、SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
およびSTART TRANSACTION WITH CONSISTENT SNAPSHOT
ステートメントを使用して開始されます。 すべてのスレッドがトランザクションを開始すると、インスタンスはバックアップ用にロックされ、グローバル読取りロックが解放されます。-
ddlOnly: [ true | false ]
このオプションを
true
に設定すると、ダンプされた項目の DDL ファイルのみがダンプに含まれ、データはダンプされません。 デフォルトはfalse
です。-
dataOnly: [ true | false ]
このオプションを
true
に設定すると、ダンプされた項目のデータファイルのみがダンプに含まれ、DDL ファイルは含まれません。 デフォルトはfalse
です。-
chunking: [ true | false ]
各テーブルのデータを複数のファイルに分割するテーブルデータのチャンク化を有効 (
true
) または無効 (false
) にします。 デフォルトはtrue
であるため、チャンク化はデフォルトで有効になっています。bytesPerChunk
を使用してチャンクサイズを指定します。 テーブルデータを別々のファイルにチャンク化するには、テーブルに対して主キーまたは一意インデックスを定義する必要があります。このテーブルは、データを順序付けおよびチャンク化するインデックスカラムを選択するためにユーティリティで使用されます。 テーブルにこれらのいずれも含まれていない場合は、警告が表示され、テーブルデータが単一のファイルに書き込まれます。 チャンクオプションをfalse
に設定した場合、チャンクは実行されず、ユーティリティによってテーブルごとに 1 つのデータファイルが作成されます。-
bytesPerChunk: "
string
" チャンクが有効な場合に各データファイルに書き込まれるおおよそのバイト数を設定します。 単位接尾辞
k
(キロバイト)、M
(メガバイト)、G
(ギガバイト) を使用できます。 デフォルトは MySQL Shell 8.0.22 ( MySQL Shell 8.0.21 では 32 MB) からの 64 MB (64M
) で、最小は 128 KB (128k
) です。 このオプションを指定すると、chunking
は暗黙的にtrue
に設定されます。 このユーティリティは、圧縮が適用される前に、各テーブルのデータをこの量のデータを含むファイルにチャンク化することを目的としています。 チャンクサイズは平均で、テーブル統計および実行計画の見積りに基づいて計算されます。-
ocimds: [ true | false ]
-
このオプションを
true
に設定すると、MySQL Database Service との互換性のチェックおよび変更が可能になります。 デフォルトはfalse
です。 MySQL Shell 8.0.23 からは、このオプションはすべてのユーティリティで使用でき、そのリリースより前は、インスタンスダンプユーティリティおよびスキーマダンプユーティリティでのみ使用できます。このオプションが
true
,DATA DICTIONARY
,INDEX DICTIONARY
に設定され、CREATE TABLE
ステートメントのENCRYPTION
オプションが DDL ファイルでコメントアウトされている場合、すべてのテーブルが MySQL データディレクトリに配置され、デフォルトのスキーマ暗号化が使用されるようにします。 チェックは、InnoDB
以外のCREATE TABLE
ステートメント内のストレージエンジン、ユーザーまたはロールへの不適切な権限の付与、およびその他の互換性の問題に対して実行されます。 非準拠の SQL ステートメントが見つかった場合は、例外が発生し、ダンプが停止されます。 ダンププロセスが開始される前に、dryRun
オプションを使用してダンプ内の項目に関するすべての問題をリストします。compatibility
オプションを使用して、ダンプ出力の問題を自動的に修正します。MySQL Shell 8.0.22 から、このオプションが
true
に設定され、osBucketName
オプションを使用してオブジェクトストレージバケット名が指定されている場合、ociParManifest
オプションもデフォルトでtrue
に設定されます。つまり、ダンプ内のすべての項目に対して事前認証済リクエストが生成され、これらのリクエスト URL を使用してのみダンプファイルにアクセスできます。 -
compatibility:
array of strings
-
ダンプ出力のすべてのテーブルに MySQL Database Service との互換性のために指定された要件を適用し、ダンプファイルを necessary.From MySQL Shell 8.0.23 として変更します。このオプションはすべてのユーティリティで使用でき、そのリリースより前は、インスタンスダンプユーティリティおよびスキーマダンプユーティリティでのみ使用できます。
次の変更は、カンマ区切りリストとして指定できます:
-
force_innodb
CREATE TABLE
ステートメントを使用していないすべてのテーブルにInnoDB
ストレージエンジンを使用するように変更します。-
skip_invalid_accounts
MySQL Database Service でサポートされていない外部認証プラグインで作成されたユーザーアカウントを削除します。
-
strip_definers
ビュー、ルーチン、イベントおよびトリガーから
DEFINER
句を削除して、これらのオブジェクトがデフォルト定義者 (スキーマを起動するユーザー) で作成されるようにし、ビューおよびルーチンのSQL SECURITY
句を変更して、DEFINER
のかわりにINVOKER
を指定します。 MySQL Database Service では、スキーマをロードするユーザー以外の定義者を使用してこれらのオブジェクトを作成するには、特別な権限が必要です。 セキュリティモデルで、ビューおよびルーチンにアカウントクエリーまたはコールする権限よりも多くの権限が必要な場合は、ロードする前にスキーマを手動で変更する必要があります。-
strip_restricted_grants
MySQL Database Service によって制限されている特定の権限を
GRANT
ステートメントから削除して、ユーザーおよびそのロールにこれらの権限を付与できないようにします (これにより、ユーザーの作成が失敗します)。 MySQL Shell 8.0.22 からは、Oracle Cloud Infrastructure Compute インスタンスの管理ユーザーアカウント自体に関連する権限がない場合、このオプションによってシステムスキーマ (mysql
およびsys
) のREVOKE
ステートメントも削除されるため、削除できません。-
strip_role_admin
GRANT
ステートメントからROLE_ADMIN
権限を削除します。 この権限は、MySQL Database Service によって制限できます。-
strip_tablespaces
すべてのテーブルがデフォルトのテーブルスペースに作成されるように、
GRANT
ステートメントからTABLESPACE
句を削除します。 MySQL Database Service には、テーブルスペースに対するいくつかの制限があります。
-
-
ociParManifest: [ true | false ]
-
このオプションを
true
に設定すると、ダンプ内のすべてのアイテムに対する読取りアクセスの事前認証済リクエスト (オブジェクト読取り PAR) と、すべての事前認証済リクエスト URL をリストするマニフェストファイルが生成されます。 事前認証済リクエストは、デフォルトで 1 週間後に期限切れになります。これは、ociParExpireTime
オプションを使用して変更できます。このオプションは MySQL Shell 8.0.22 から使用でき、(
osBucketName
オプションを設定して) オブジェクトストレージバケットにエクスポートする場合にのみ使用できます。 MySQL Shell 8.0.23 からは、このオプションはすべてのユーティリティで使用でき、MySQL Shell 8.0.22 では、インスタンスダンプユーティリティおよびスキーマダンプユーティリティでのみ使用できます。ocimds
オプションがtrue
に設定され、osBucketName
オプションを使用してオブジェクトストレージバケット名が指定されている場合、ociParManifest
はデフォルトでtrue
に設定され、それ以外の場合はデフォルトでfalse
に設定されます。オブジェクトストレージバケットへの接続に使用される Oracle Cloud Infrastructure プロファイルで指定されたユーザー (
DEFAULT
ユーザーまたはociProfile
オプションで指定された別のユーザー) は、事前認証済リクエストの作成者です。 このユーザーには、「事前認証済リクエストの使用」で説明されているように、バケット内のオブジェクトと対話するためのPAR_MANAGE
権限および適切な権限が必要です。 オブジェクトの事前認証済リクエスト URL の作成に問題がある場合は、関連付けられたファイルが削除され、ダンプが停止されます。生成されたダンプファイルをロードできるようにするには、「事前認証済リクエストの使用」の手順に従って、マニフェストファイルオブジェクト (
@.manifest.json
) の事前認証済読取りリクエストを作成します。 ダンプが完了する前にダンプのロードを開始する場合は、ダンプの進行中にこれを実行できます。 必要な権限を持つユーザーアカウントを使用して、この事前認証済読取りリクエストを作成できます。 その後、事前認証済リクエスト URL をダンプロードユーティリティで使用して、マニフェストファイルを介してダンプファイルにアクセスする必要があります。 URL は作成時にのみ表示されるため、永続記憶域にコピーします。重要このアクセス方法を使用する前に、バケットまたはオブジェクトに対する事前認証済アクセスのビジネス要件およびセキュリティの影響を評価します。
事前認証済リクエスト URL は、リクエストで識別されたターゲットへの URL アクセス権を持つすべてのユーザーに付与します。 マニフェストファイル用に作成する事前認証済 URL、およびマニフェストファイル内のエクスポートされたアイテム用の事前認証済 URL の配布を慎重に管理します。
-
ociParExpireTime: "
string
" -
ociParManifest
オプションが true に設定されている場合に生成される事前認証済リクエスト URL の有効期限。 デフォルトは、UTC 形式の現在の時間に 1 週間を加えたものです。このオプションは、MySQL Shell 8.0.22 から使用できます。 MySQL Shell 8.0.23 からは、このオプションはすべてのユーティリティで使用でき、MySQL Shell 8.0.22 では、インスタンスダンプユーティリティおよびスキーマダンプユーティリティでのみ使用できます。
有効期限は、事前認証済リクエストの作成時に Oracle Cloud Infrastructure で必要とされる RFC 3339 タイムスタンプとして書式設定する必要があります。 書式は、
YYYY-MM-DDTHH-MM-SS
の直後に文字 Z (UTC 時間の場合) または[+|-]hh:mm
で表されるローカル時間の UTC オフセット (2020-10-01T00:09:51.000+02:00
など) が続きます。MySQL Shell では有効期限は検証されませんが、フォーマットエラーにより、ダンプ内の最初のファイルに対する事前認証済リクエストの作成が失敗し、ダンプが停止されます。