MySQL Shell 8.0/MySQL Shell实用程序/实例转储实用程序、模式转储实用程序和表转储实用程序

8.5实例转储实用程序、模式转储实用程序和表转储实用程序

MySQL Shell的实例转储实用程序util.dumpInstance ()和模式转储实用程序util.dumpSchemas (),在MySQL Shell 8.0.21中引入,支持从MySQL实例中导出所有模式或选定的模式到Oracle云基础设施对象存储桶或一组本地文件。表转储实用程序util.dumpTables (),在MySQL Shell 8.0.22中引入,支持对模式中的表或视图的选择进行相同的操作。导出的项目可以导入到MySQL数据库服务DB系统(一个MySQL DB系统,简称)或MySQL服务器实例使用MySQL Shell的util.loadDump ().为了获得最好的功能,总是使用MySQL Shell的转储和转储加载实用程序的最新版本。

MySQL Shell的实例转储实用程序、模式转储实用程序和表转储实用程序提供Oracle云基础设施对象存储流、MySQL数据库服务兼容性检查和修改、多线程并行转储和文件压缩,这些都是MySQL Shell所不提供的, mysqldump.转储过程中会显示进度信息。您可以使用所选的转储选项集进行一次试运行,以显示将要执行什么操作、将要转储什么项目以及(对于实例转储实用程序和模式转储实用程序)在使用这些选项实际运行实用程序时需要修复哪些MySQL数据库服务兼容性问题的信息。

在选择转储文件的目的地时,注意要导入到MySQL DB系统,运行转储加载实用程序的MySQL Shell实例必须安装在能够访问MySQL DB系统的Oracle Cloud Infrastructure Compute实例上。如果将实例、模式或表转储到对象存储桶中,则可以从Compute实例访问对象存储桶。如果在本地系统上创建转储文件,则需要使用所选的复制实用程序将其传输到Oracle Cloud Infrastructure Compute实例,具体取决于为Compute实例选择的操作系统。

由MySQL Shell的实例转储实用程序、模式转储实用程序和表转储实用程序创建的转储包含指定模式结构的DDL文件和表分隔文件. tsv包含数据的文件。如果您希望将导出的模式设置为独立的练习,而不是使用导出的数据填充它,那么您还可以选择只生成DDL文件或只生成数据文件。您可以选择在转储过程中是否锁定备份实例以保持数据一致性。默认情况下,dump实用程序将数据块表数据放入多个数据文件并压缩这些文件。

如果您需要转储MySQL实例中的大多数模式,作为一种替代策略,您可以使用实例转储实用程序而不是模式转储实用程序,并指定excludeSchemas选项列出不转储的模式。类似地,如果需要转储模式中的大部分表,则可以使用模式转储实用程序和excludeTables选项,而不是表转储实用程序。的information_schemamysqlndbinfoperformance_schema,sys模式总是被排除在实例转储之外。的数据mysql.apply_statusmysql.general_logmysql.schema,mysql.slow_log表总是被排除在模式转储之外,尽管包含了它们的DDL语句。您还可以选择包括或排除用户及其角色和授权、事件、例程和触发器。

默认情况下,转储输出中的所有时间戳数据中的时区都标准化为UTC,这有助于在不同时区的服务器之间移动数据和处理具有多个时区的数据。您可以使用tzUtc:假选项保留原始时间戳(如果愿意)。

从MySQL Shell 8.0.22中,当您将实例或模式导出到Oracle Cloud Infrastructure对象存储桶时,在转储过程中,您可以为每个项目生成预认证的请求URL。运行MySQL Shell的转储加载实用程序的用户帐户util.loadDump ()使用这些来加载转储文件,而不需要额外的访问权限。默认情况下,如果ocimds选项设置为真正的对象存储桶名使用osBucketName选项,MySQL Shell的实例转储实用程序和模式转储实用程序为转储文件生成预认证的请求url,并将它们列在一个清单文件中。转储加载实用程序引用清单文件以获取url并加载转储文件。有关生成或禁用预身份验证请求url的说明,请参见ociParManifest选择。

以下要求适用于使用实例转储实用程序、模式转储实用程序和表转储实用程序的转储:

  • 目标MySQL实例需要MySQL 5.7或更高版本。源MySQL实例也必须是MySQL 5.7或更高版本,才能使用这些实用程序的全部功能。从MySQL Shell 8.0.22中,可以从MySQL 5.6实例中转储实例、模式或表,并将其加载到MySQL 5.7或更高版本的目标中,但不支持从MySQL 5.6转储用户帐户。这些实用程序只支持MySQL Server版本的通用可用性(General Availability, GA)版本。

  • 实例或模式中的对象名称必须在latin1use utf8characterset。

  • 类的表保证了数据一致性InnoDB存储引擎。

  • 用于运行该实用程序的用户帐户在所有涉及的模式上必须具有的最低权限集如下:BACKUP_ADMIN事件重新加载选择显示视图,触发.如果一致的选项设置为,BACKUP_ADMIN而且重新加载特权不是必需的。如果一致的选项设置为真正的的默认值锁表所有转储表上的特权可以替代重新加载如果后者不可用,则优先。

  • 在MySQL Shell 8.0.24中,用于运行实用程序的用户帐户需要复制客户端权限,以便实用程序能够在转储元数据中包含二进制日志文件名和位置。如果用户ID没有这个权限,转储将继续进行,但不包括二进制日志信息。将转储数据加载到复制服务器后,可以使用二进制日志信息与非gtid源服务器建立复制ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS选择将复制源更改为语句(该语句可从MySQL Server 8.0.23获得)。

  • 将文件传输到Oracle云基础设施对象存储桶的上传方法的文件大小限制为1.2 TiB。在MySQL Shell 8.0.21中,多部分大小设置意味着首先应用多个文件部分的数字限制,创建大约640 GB的限制。从MySQL Shell 8.0.22,多部分大小设置已更改为允许完整的文件大小限制。

  • 这些实用程序使用不安全的数据类型将列转换为文本形式(例如)到Base64。因此,这些列的大小不得超过的值的约0.74倍max_allowed_packet在目标MySQL实例上配置的系统变量(以字节为单位)。

  • 对于表转储实用程序,导出的视图和触发器不能使用限定名引用其他视图或表。

  • 如果要导入到MySQL DB系统,请设置ocimds选项真正的,以确保与MySQL数据库服务的兼容性。

  • 为了与MySQL数据库服务兼容,所有表必须使用InnoDB存储引擎。的ocimds选项检查转储中发现的任何异常,而兼容性选项更改转储文件以替换其他存储引擎InnoDB

  • 对于实例转储实用程序和模式转储实用程序,为了与MySQL数据库服务兼容,实例或模式中的所有表必须位于MySQL数据目录中,并且必须使用默认的模式加密。的ocimds选项更改转储文件以应用这些要求。

  • 为了与MySQL数据库服务兼容,表空间和特权等项目也适用其他一些与安全相关的限制和要求。的ocimds选项检查转储期间发现的任何异常,而兼容性选项自动更改转储文件,以解决一些兼容性问题。您可能需要(或更喜欢)手动进行一些更改。有关更多详细信息,请参见兼容性选择。

  • 对于使用组复制的MySQL数据库服务高可用性,每个表上都需要主键。从MySQL Shell 8.0.24,ocimds选项检查并报告转储中缺少主键的任何表的错误。的兼容性选项可以设置为忽略丢失的主键,如果你不需要它们,或通知MySQL Shell的转储加载实用程序在不可见的列中添加主键。详细信息请参见兼容性选择。如果可能,与其在实用程序中管理它,不如考虑在源服务器上的表中创建主键,然后再转储它们。

实例转储实用程序、模式转储实用程序和表转储实用程序使用MySQL Shell全局会话来获取执行导出的目标MySQL服务器的连接细节。在运行一个实用程序之前,必须打开全局会话(它可以有X协议连接或经典的MySQL协议连接)。这些实用程序为每个线程打开它们自己的会话,从全局会话复制连接压缩和SSL选项等选项,不再进一步使用全局会话。

在MySQL Shell API中,实例转储实用程序、模式转储实用程序和表转储实用程序都是跑龙套全局对象,并具有以下签名:

跑龙套。dumpInstance(outputUrl[, options])dumpSchemas(schemas, outputUrl[, options])dumpTables(schema, tables, outputUrl[, options])

对于模式转储实用程序,模式指定要从MySQL实例中转储的一个或多个模式的列表。

对于表转储实用程序,模式指定包含要转储的项的模式和字符串数组,指定要转储的表或视图。从MySQL Shell 8.0.23中,表转储包含在目标MySQL实例中设置指定模式所需的信息,尽管它可以通过使用转储加载实用程序的’s加载到替代目标模式中模式选择。在MySQL Shell 8.0.22中,模式信息不包括在内,因此该实用程序生成的转储文件必须加载到现有的目标模式中。

如果转储到本地文件系统,outputUrl是一个字符串,指定要放置转储文件的本地目录的路径。您可以指定绝对路径或相对于当前工作目录的路径。属性作为本地目录路径的前缀文件:/ /模式。在本例中,连接的MySQL实例被转储到本地目录,为了与MySQL数据库服务兼容,在转储文件中做了一些修改。用户首先执行一次试运行来检查模式并查看兼容性问题,然后运行转储,并应用适当的兼容性选项来删除问题:

shell-js >跑龙套。dumpInstance("C:/Users/hanna/worlddump", {dryRun: true, ocimds: true})检查MySQL数据库服务8.0.21的兼容性…发现MySQL数据库服务8.0.21的兼容性问题。请使用“compatibility”选项将兼容性调整应用到转储的DDL。跑龙套。shell-js> util. dumpInstance: Compatibility issues were found (RuntimeError)dumpInstance("C:/Users/hanna/worlddump", {> ocimds: true, compatibility: ["strip_definers", "strip_restricted_grants"]})

在进行导出之前,目标目录必须为空。如果目录在其父目录中还不存在,实用程序将创建它。如果是导出到本地,则转储过程中创建的目录将被创建,并具有相应的访问权限rwxr-x——,并创建具有访问权限的文件rw-r——(在支持这些的操作系统上)。文件和目录的所有者是运行MySQL Shell的用户帐户。

表转储实用程序可用于从模式中选择单个表,例如,如果您希望在模式之间传输表。在本例中MySQL Shell的JavaScript模式下,表员工而且工资人力资源模式被导出到本地目录电磁脉冲,该实用程序在当前工作目录中创建:

shell-js >跑龙套。dumpTables("hr", ["employees", " wages "], "emp")

如果您正在转储到Oracle云基础设施对象存储桶,outputUrl将用于在桶中为转储文件加上前缀的路径,以模拟目录结构。使用osBucketName选项提供对象存储桶的名称osNamespace选项标识桶的名称空间。在这个例子中,MySQL Shell的Python模式下,用户转储世界模式从连接的MySQL实例到对象存储桶,与前面的例子相同的兼容性修改:

shell-py >跑龙套。dump_schemas(["world"], "worlddump", {> "osBucketName": " na-bucket", "osNamespace": "idx28w1ckztq", > "ocimds": "true", "compatibility": ["strip_definers", "strip_restricted_grants"]})

在对象存储桶中,转储文件均以前缀出现worlddump,例如:

worlddump / @.done。json worlddump / @。json worlddump / @.post。sql worlddump / @。sql worlddump /世界。json worlddump /世界。SQL worlddump/world@city.json worlddump/world@city.sql worlddump/world@city@@0.tsv。零强度时间worlddump / world@city@@0.tsv.zst。idx……

对象存储桶的命名空间显示在桶的信息选项卡,或者使用Oracle Cloud Infrastructure命令行界面获取。的默认Oracle Cloud Infrastructure CLI配置文件中的默认配置文件或指定的替代详细信息将建立到对象存储桶的连接ociConfigFile而且ociProfile选项。有关设置CLI配置文件的说明,请参见SDK和CLI配置文件

选项是包含选项的字典,如果为空则可以省略。以下选项可用于实例转储实用程序、模式转储实用程序和表转储实用程序,除非另有说明:

dryRun: [true | false]

显示关于将使用指定的选项集转储的内容的信息,以及关于MySQL数据库服务兼容性检查结果的信息ocimds选项指定了),但不继续转储。设置此选项可使您在启动转储之前列出所有兼容性问题。默认为

osBucketName:“字符串

转储文件要写入的Oracle Cloud Infrastructure对象存储桶的名称。默认情况下,(默认)Oracle Cloud Infrastructure CLI配置文件中的~ / .oci /配置用于与桶建立连接。控件的连接可以替换一个备用配置文件ociConfigFile而且ociProfile选项。有关设置CLI配置文件的说明,请参见SDK和CLI配置文件

osNamespace:“字符串

对象存储桶由命名的Oracle Cloud Infrastructure命名空间osBucketName所在地。对象存储桶的命名空间显示在Oracle Cloud Infrastructure控制台桶详情页面的“桶信息”页签中,也可以通过Oracle Cloud Infrastructure命令行界面获取。

ociConfigFile:“字符串

Oracle Cloud Infrastructure CLI配置文件,其中包含用于连接的配置文件,而不是默认位置中的配置文件~ / .oci /配置

ociProfile:“字符串

要用于连接的Oracle Cloud Infrastructure配置文件的配置文件名称,而不是(默认)用于连接的Oracle Cloud Infrastructure CLI配置文件中的profile。

线程:int

用于从MySQL实例转储数据块的并行线程数。每个线程都有自己到MySQL实例的连接。默认值为4。

maxRate:“字符串

转储期间每个线程每秒的数据读取吞吐量的最大字节数。单位后缀k为千字节,对于兆字节,和G可以使用千兆字节(例如,设置100米将吞吐量限制为每个线程每秒100兆字节)。设置0(这是默认值),或将选项设置为空字符串,都表示没有设置限制。

showProgress: [true | false]

显示器(真正的)或隐藏()的进度信息。默认为真正的如果stdout是终端机(tty),例如当MySQL Shell处于交互模式时,和否则。进度信息包括要转储的估计总行数、到目前为止转储的行数、完成百分比以及以行和字节/秒为单位的吞吐量。

压缩:“字符串

为转储写入数据文件时使用的压缩类型。默认值是使用zstd压缩(zstd).替代方案是使用gzip压缩(gzip)或无压缩(没有一个).

excludeSchemas:字符串数组

(仅实例转储实用程序)从转储中排除命名模式。请注意information_schemamysqlndbinfoperformance_schema,sys模式总是被排除在实例转储之外。如果命名模式不存在或被排除,实用程序将忽略该项。

excludeTables:字符串数组

(仅限实例转储实用程序和模式转储实用程序)从转储中排除命名表。表名必须用有效的模式名进行限定,必要时用反勾字符引用。的数据mysql.apply_statusmysql.general_logmysql.schema,mysql.slow_log表总是被排除在模式转储之外,尽管它们的DDL语句被包括在内。命名的表excludeTables选项在转储中没有DDL文件或数据文件。如果模式中不存在命名表或转储中不包含该模式,则实用程序将忽略该项。

所有:[真|假]

(仅表转储实用程序)将此选项设置为真正的包括转储中指定模式的所有视图和表。使用此选项时,请设置参数设置为空数组。默认为

用户:[true | false]

(仅实例转储实用程序)包括(真正的)或排除()用户及其角色和授权。默认为真正的,因此默认包含用户。模式转储实用程序和表转储实用程序不包括转储中的用户、角色和授权。

在MySQL Shell 8.0.22中,您可以使用excludeUsersincludeUsers选项指定要排除或包括在转储文件中的个别用户帐户。这些选项也可以与MySQL Shell的转储加载实用程序一起使用util.loadDump ()根据目标MySQL实例的需求,在导入点排除或包含单个用户帐户。

请注意
  1. 不支持从MySQL 5.6实例转储用户帐户。如果您正在从这个版本进行转储,请设置用户:假

  2. 在MySQL Shell 8.0.21中,尝试导入用户到MySQL DB系统会导致导入失败用户帐户或其他受限制的用户帐户名出现在转储文件中,因此该版本不支持将用户导入到MySQL DB系统。

excludeUsers:字符串数组

(仅实例转储实用程序)从转储文件中排除指定用户帐户。这个选项在MySQL Shell 8.0.22中是可用的,您可以使用它来排除不接受导入到MySQL DB系统的用户帐户,或者已经存在或不需要在目标MySQL实例中使用的用户帐户。按格式指定每个用户帐户字符串“‘user_name“@”host_name’”对于使用用户名和主机名定义的帐户,或“‘user_name’”对于仅用用户名定义的帐户(相当于“‘user_name“@”’”).如果命名用户帐户不存在,实用程序将忽略该项。

includeUsers:字符串数组

(仅实例转储实用程序)在转储文件中只包含已命名的用户帐户。属性指定每个用户帐户字符串excludeUsers选择。这个选项在MySQL Shell 8.0.22中可用,您可以使用它作为excludeUsers如果转储中只需要几个用户帐户。还可以指定这两个选项,在这种情况下,用户帐户与includeUsers字符串和excludeUsers字符串被排除在外。

事件:[true | false]

(仅限实例转储实用程序和模式转储实用程序)包括(真正的)或排除()转储中每个模式的事件。默认为真正的

例程:[true | false]

(仅限实例转储实用程序和模式转储实用程序)包括(真正的)或排除()函数和转储中每个模式的存储过程。默认为真正的.注意,用户定义函数不包括在内,即使在例程设置为真正的

触发器:[true | false]

包括(真正的)或排除()为转储中的每个表触发。默认为真正的

defaultCharacterSet:“字符串

在MySQL Shell打开到服务器进行转储的会话连接期间使用的字符集。默认为utf8mb4.系统变量的会话值character_set_clientcharacter_set_connection,character_set_results为每个连接设置为此值。字符集必须被允许character_set_clientMySQL实例支持的系统变量。

tzUtc: [true | false]

在转储开始时包含一条语句,将时区设置为UTC。转储输出中的所有时间戳数据都转换到这个时区。默认为真正的,因此默认转换时间戳数据。将时区设置为UTC有助于在具有不同时区的服务器之间移动数据,或处理具有多个时区的一组数据。将此选项设置为保留原始的时间戳,如果愿意。

一致:[true | false]

使(真正的)或使()一致的数据转储,在转储期间锁定备份实例。默认为真正的.当真正的设置后,该实用程序使用用读锁刷新表声明。每个线程的事务使用语句启动设置会话事务隔离级别可重复读取而且使用一致的快照启动事务.当所有线程都启动了它们的事务时,实例将被锁定以进行备份(如中所述)为备份锁定实例并解锁实例语句),释放全局读锁。

ddlOnly: [true | false]

将此选项设置为真正的只包含转储中转储项的DDL文件,而不转储数据。默认为

dataOnly: [true | false]

将此选项设置为真正的只包括转储中转储项的数据文件,不包括DDL文件。默认为

Chunking: [true | false]

使(真正的)或使()对表数据进行分块,将每个表的数据拆分为多个文件。默认为真正的,所以分块是默认启用的。使用bytesPerChunk指定块大小。为了将表数据块到单独的文件中,必须为表定义一个主键或唯一索引,实用程序使用它来选择一个索引列来排序和块数据。如果表不包含这两种情况,则会显示警告,并将表数据写入单个文件。如果你把分块选项设为时,不会发生分块,实用程序为每个表创建一个数据文件。

bytesPerChunk:“字符串

设置启用分块时要写入每个数据文件的大约字节数。单位后缀k为千字节,对于兆字节,和G因为可以使用千兆字节。默认是64 MB (64米从MySQL Shell 8.0.22 (32 MB MySQL Shell 8.0.21),最小是128 KB (128 k).指定此选项集组块真正的隐式。该实用程序的目的是在应用压缩之前,将每个表的数据分块到包含此数据量的文件中。块大小是一个平均值,是根据表统计信息和解释计划估计计算的。

Ocimds: [true | false]

将此选项设置为真正的允许检查和修改MySQL数据库服务的兼容性。默认为.从MySQL Shell 8.0.23开始,该选项可用于所有实用程序,在该版本之前,仅可用于实例转储实用程序和模式转储实用程序。

当此选项设置为真正的数据字典索引字典,加密选项创建表语句在DDL文件中被注释掉,以确保所有表都位于MySQL数据目录中,并使用默认的模式加密。对任何存储引擎进行检查创建表除其他以外的声明InnoDB,用于向用户或角色授予不适当的特权,以及其他兼容性问题。如果发现任何不符合要求的SQL语句,将引发异常并停止转储。使用dryRun选项在开始转储过程之前列出转储中项目的所有问题。使用兼容性选项自动修复转储输出中的问题。

从MySQL Shell 8.0.22,当这个选项设置为真正的对象存储桶名使用osBucketName选项时,ociParManifest选项也默认为真正的,这意味着为转储中的每一项生成预先验证的请求,并且只能使用这些请求url访问转储文件。

兼容性:字符串数组

对转储输出中的所有表应用与MySQL Database Service兼容的指定要求,根据需要修改转储文件。从MySQL Shell 8.0.23开始,该选项可用于所有实用程序,在该版本之前,仅可用于实例转储实用程序和模式转储实用程序。

以下修改可以指定为字符串数组:

force_innodb

改变创建表语句来使用InnoDB存储引擎,用于尚未使用它的任何表。

skip_invalid_accounts

删除MySQL数据库服务不支持的外部认证插件创建的用户帐户。

strip_definers

删除定义者子句来自视图、例程、事件和触发器,因此使用默认定义器(调用模式的用户)创建这些对象,并更改SQL安全子句用于指定视图和例程调用程序而不是定义者.MySQL数据库服务需要特殊的权限来使用定义器(而不是加载模式的用户)创建这些对象。如果您的安全模型要求视图和例程拥有比帐户查询或调用它们更多的特权,那么您必须在加载模式之前手动修改它。

strip_restricted_grants

删除MySQL数据库服务所限制的特定权限格兰特语句,因此用户及其角色不能被授予这些特权(这将导致用户创建失败)。从MySQL Shell 8.0.22,这个选项也删除撤销用于系统模式的语句(mysql而且sys),如果Oracle云基础设施计算实例上的管理用户帐户本身没有相关权限,因此不能删除它们。

strip_role_admin

删除ROLE_ADMIN的特权格兰特语句。这个权限可以被MySQL数据库服务限制。

strip_tablespaces

删除表空间的条款格兰特语句,因此所有表都是在它们的默认表空间中创建的。MySQL数据库服务对表空间有一些限制。

ignore_missing_pks

使实例、模式或表转储实用程序在执行转储时忽略任何丢失的主键,以便ocimds选项仍然可以在不停止转储的情况下使用。使用此修改创建的转储不能加载到MySQL数据库服务高可用性实例中,因为使用组复制的MySQL数据库服务高可用性需要主键。要添加缺少的主键,请使用create_invisible_pks修改,或者考虑在源服务器上的表中创建主键。

create_invisible_pks

在转储元数据中添加一个标志,通知MySQL Shell的转储加载实用程序在不可见的列中添加主键,用于每个不包含主键的表。此修改允许将某些表缺少主键的转储加载到MySQL数据库服务高可用性实例中。使用组复制的MySQL数据库服务高可用性需要主键。

通过此修改,转储数据没有变化,因为在转储加载实用程序处理表之前,表不包含不可见的列。无形的柱子(被命名为my_row_id)对使用上传表的应用程序没有影响。

以这种方式添加主键还不能使修改后的表向High Availability实例进行入站复制,因为该特性目前要求主键同时存在于源服务器和复制服务器中。如果可能,不使用此修改,而是考虑在源服务器上的表中创建主键,然后再转储它们。从MySQL 8.0.23开始,您可以使用不可见的列来保存主键,而不会对应用程序造成影响。这是性能和可用性的最佳实践,并帮助转储数据库与MySQL数据库服务无缝地工作。

请注意

MySQL Shell的转储加载实用程序只能用于加载使用create_invisible_pks修改MySQL Server 8.0.24或更高版本的目标MySQL实例,因为MySQL 8.0.23中隐藏列的限制。在MySQL Shell 8.0.24之前的版本中,转储加载实用程序会忽略转储元数据标志,并且不添加主键,因此请确保使用该实用程序的最新版本。

occiparmanifest: [true | false]

将此选项设置为真正的为转储中的每个项生成一个预验证的读访问请求(Object read PAR),以及一个清单文件,列出所有预验证的请求url。默认情况下,预身份验证请求将在一周后过期,您可以使用ociParExpireTime选择。

这个选项从MySQL Shell 8.0.22中可用,并且只能在导出到对象存储桶时使用osBucketName选项设置)。在MySQL Shell 8.0.23中,此选项可用于所有实用程序,而在MySQL Shell 8.0.22中,仅可用于实例转储实用程序和模式转储实用程序。

ocimds选项设置为真正的对象存储桶名使用osBucketName选项,ociParManifest设置为真正的默认情况下,否则设置为默认情况下。

Oracle Cloud Infrastructure配置文件中用于连接到对象存储桶的用户名默认的对象命名的用户或其他用户ociProfile选项)是预身份验证请求的创建者。此用户必须具有PAR_MANAGE权限和与桶中对象交互的适当权限,如使用预身份验证请求.如果在为任何对象创建预身份验证请求URL时出现问题,则删除相关文件并停止转储。

要使生成的转储文件能够加载,请为清单文件对象创建一个预验证的读请求(@.manifest.json)按照里面的说明使用预身份验证请求.如果希望在转储完成之前开始加载转储,则可以在转储仍在进行时执行此操作。您可以使用具有所需权限的任何用户帐户创建这个预身份验证的读请求。然后,转储加载实用程序必须使用预身份验证的请求URL来通过清单文件访问转储文件。URL只在创建时显示,所以将其复制到持久存储。

重要的

在使用此访问方法之前,请评估对桶或对象的预身份验证访问的业务需求和安全后果。

预身份验证的请求URL允许任何拥有访问请求中标识的目标的URL的人。仔细管理为清单文件创建的预验证URL的分发,以及为清单文件中导出的项创建的预验证URL的分发。

ociParExpireTime:“字符串

时生成的预身份验证请求url的过期时间ociParManifestOption设置为true。默认值是当前时间加上一周,格式为UTC。

这个选项在MySQL Shell 8.0.22中可用。在MySQL Shell 8.0.23中,此选项可用于所有实用程序,而在MySQL Shell 8.0.22中,仅可用于实例转储实用程序和模式转储实用程序。

过期时间必须格式化为RFC 3339时间戳,这是Oracle Cloud Infrastructure在创建预认证请求时所要求的。格式为YYYY-MM-DDTHH-MM-SS紧跟字母Z(表示UTC时间),或者表示UTC偏移的本地时间[+ | -] hh: mm例如,2020 - 10 - 01 - t00:09:51.000 + 02:00.MySQL Shell不验证过期时间,但是任何格式化错误都会导致转储中的第一个文件的预认证请求创建失败,从而停止转储。