このページは機械翻訳したものです。
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 では有効期限は検証されませんが、フォーマットエラーにより、ダンプ内の最初のファイルに対する事前認証済リクエストの作成が失敗し、ダンプが停止されます。