MySQL壳API8.0.28
MySQL产品的统一开发接口 |
全局对象,它将各种工具(如升级检查器和JSON导入)分组。更多…
功能 |
|
未定义的 | checkForServerUpgrade(ConnectionData,字典选项) |
在指定的MySQL服务器上执行一系列测试,以检查升级过程是否成功。更多… |
|
未定义的 | importJson(字符串文件,字典选项) |
使用X协议会话将JSON文档从文件导入到MySQL服务器的集合或表中。更多… |
|
未定义的 | importTable(列表文件,字典选项) |
在并行连接中使用LOAD DATA LOCAL INFILE调用将存储在文件中的表转储导入到目标表。更多… |
|
未定义的 | loadDump(字符串url,字典选项) |
加载MySQL创建的数据库转储壳牌.更多… |
|
未定义的 | exportTable(字符串表,字符串输出,字典选项) |
将指定的表导出到数据转储文件。更多… |
|
未定义的 | dumpTables(字符串模式,列表表,字符串输出,字典选项) |
将指定的表或视图从给定模式转储到目标目录中的文件。更多… |
|
未定义的 | dumpSchemas(列表模式,字符串输出,字典选项) |
将指定的模式转储到输出目录中的文件。更多… |
|
未定义的 | dumpInstance(字符串outputUrl,字典选项) |
将整个数据库转储到输出目录中的文件中。更多… |
|
全局对象,它将各种工具(如升级检查器和JSON导入)分组。
未定义checkForServerUpgrade | ( | ConnectionData | connectionData, |
字典 | 选项 | ||
) |
在指定的MySQL服务器上执行一系列测试,以检查升级过程是否成功。
connectionData | 可选连接到要检查的服务器的数据 |
选项 | 用于修改工具行为的可选选项字典。 |
如果没有指定connectionData,工具将尝试使用当前会话中的数据建立连接。
工具行为可以通过以下选项进行修改:
连接数据可以用以下格式指定:
一个基本URI字符串有以下格式:
[方案:/ /][用户(密码):@]<主机(港口):|套接字>[/模式][?选项=价值选择=值…]
连接选项
以下选项在URI或字典中使用都是有效的:
当在URI中定义这些选项时,它们的值必须是URL编码的。
当使用字典时,以下选项也有效:
基础连接选项
SSH隧道连接选项
连接选项不区分大小写,只能定义一次。
如果一个选项被定义了不止一次,就会产生一个错误。
有关连接数据格式的详细说明,请参阅连接数据
未定义importJson | ( | 字符串 | 文件, |
字典 | 选项 | ||
) |
使用X协议会话将JSON文档从文件导入到MySQL服务器的集合或表中。
文件 | 路径JSON文档文件 |
选项 | 带有导入选项的可选字典 |
这个函数从文件中读取标准JSON文档,但是,它也支持将使用MongoDB扩展JSON(严格模式)表示的BSON数据类型转换为MySQL值。
选项字典支持以下选项:
以下选项仅在启用convertBsonTypes时有效。它们都是布尔值标志。ignoreegexoptions默认启用,其余默认禁用。
如果没有提供模式,将使用全局会话上的活动模式(如果设置了)。
集合选项和表选项不能组合。如果没有提供,则使用不带扩展名的文件的基名作为目标集合名。
如果目标集合或表不存在,则创建它们,否则将数据插入到现有集合或表中。
tableColumn意味着使用表选项,不能与集合选项组合。
数据类型处理。
如果只启用convertBsonOid,则不会对BSON数据类型的其余部分进行转换。
要使用extractOidTime,应该将其设置为将用于向主文档插入额外字段的名称。新字段的值将是从ObjectID值获得的时间戳。注意,这只会对与主文档的'_id'字段相关联的ObjectID值进行处理。
NumberLong和NumberInt值将被转换为整数值。
除非启用decimalAsDouble,否则NumberDecimal值将作为字符串导入。
正则表达式值将被转换为包含正则表达式的字符串。正则表达式选项将被忽略,除非禁用ignoreRegexOptions。当ignoreRegexOptions被禁用时,正则表达式将被转换为:/
抛出ArgumentError时:
抛出LogicError时:
抛出RuntimeError时:
抛出InvalidJson时:
未定义importTable | ( | 列表 | 文件, |
字典 | 选项 | ||
) |
在并行连接中使用LOAD DATA LOCAL INFILE调用将存储在文件中的表转储导入到目标表。
文件名的方案部分包含有关传输后端的信息。受支持的传输后端是:文件:/ /,http://,https://.如果省略了文件名的方案部分,则文件:/ /将选择传输后端。
支持文件名格式:
如果osBucketName选项,path参数必须指定OCI (Oracle Cloud Infrastructure)对象存储桶中的普通路径。
OCI配置文件通过OCI。概要文件和“公盟”。configFile全局shell选项,可以分别用ociProfile和ociConfigFile重写。
选项字典:
OCI对象存储选项
方言预先定义以下选项集合fieldsTerminatedBy (FT), fieldsEnclosedBy (FE), fieldsoptionallyenclose (FOE), fieldsEscapedBy (FESC)和linesTerminatedBy (LT),以以下方式:
如果模式如果未提供,则将使用全局会话上的活动模式(如果设置了)。
如果输入值不一定包含在fieldsEnclosedBy,设置fieldsOptionallyEnclosed为true。
如果指定的分隔符与另一个分隔符相同或其前缀相同,则LOAD DATA INFILE无法正确解释输入。
在全局会话中设置的连接选项,如压缩、ssl-mode等在并行连接中使用。
每个并行连接设置以下会话变量:
方言输入数据示例:
的例子decodeColumns用法:
未定义loadDump | ( | 字符串 | url, |
字典 | 选项 | ||
) |
加载MySQL创建的数据库转储壳牌.
url | 定义要加载的转储的位置 |
选项 | 带有加载选项的可选字典 |
根据转储的创建方式,url标识转储的位置,在某些情况下标识转储的访问方法,即使用预认证请求(PAR)加载转储。允许的值:
loadDump()将从指定的路径加载转储文件。它透明地处理压缩文件,并在从远程存储(目前是HTTP和OCI对象存储)加载时直接流数据。如果设置了'waitDumpTimeout'选项,它将动态加载转储,在转储器产生数据块时加载表数据块。
表数据将使用配置的线程数(默认为4)并行加载。如果转储是在启用表块的情况下创建的,那么每个表可以使用多个线程。数据加载是跨线程调度的,其方式是尽量最大化并行性,同时最小化从并发加载到同一个表的锁争用。如果表比线程多,则每个线程将加载不同的表,首先加载较大的表。如果线程比表多,那么来自较大表的块将按比例分配更多的线程。
LOAD DATA LOCAL INFILE用于加载表数据,因此,MySQL全局设置'local_infile'必须启用。
恢复
load命令将加载过程的每个步骤的进度信息存储到一个文件中,包括成功完成和中断/失败的步骤。如果该文件已经存在,它的内容将被用来跳过已经完成的步骤,并重试那些失败或尚未开始的步骤。
恢复时,已经开始加载但没有完成的表块将再次加载。重复的行将被服务器丢弃。没有惟一键的表在恢复加载之前会被截断。
重要提示:恢复操作假定在失败和重试之间未对部分加载的数据进行任何更改。在外部更改之后恢复具有未定义的行为,并可能导致数据丢失。
进度状态文件的默认名称是load-progress.
如果启用了'resetProgress'选项,则转储到目标服务器的以前加载尝试的进度信息将被丢弃,加载将重新启动。您可以使用此选项从头重试加载整个转储。但是,对数据库所做的更改不会被还原,因此应该先手动删除以前加载的对象。
选项字典:
全局会话中设置的连接选项,如压缩、ssl-mode等由加载会话继承。
例子:
使用预验证请求(PAR)加载转储
当在OCI Object Storage中创建转储时,可以使用单个预认证请求加载它,该请求可以访问转储的位置。该标准的要求包括:
给定位于桶根的转储和为桶创建的PAR,可以通过提供PAR作为url参数来加载转储:
例子:
给定转储文件位于bucket中的某个文件夹中,并为给定文件夹创建了PAR,通过提供PAR和作为url参数的前缀,可以加载转储文件:
例子:
在上述两种情况下,加载都是使用纯HTTP GET请求完成的,因此progressFile选项是强制性的,应该是到本地文件的路径。
仍然支持通过PAR创建可加载转储的遗留方法,这是通过在创建转储时使用ociParManifest选项来完成的。当启用此功能时,清单文件“@.manifest.”将被用作使用PAR将转储加载到该文件的入口点。
当使用Manifest PAR加载转储时,progressFile选项是强制性的,并且可以将加载进度存储在本地文件系统或转储位置上。
要将进度存储在转储位置上,创建一个ObjectReadWrite PAR到所需的进度文件(它不需要存在),它应该位于“@.manifest.”文件的相同位置上。json文件。最后,在progressFile选项上指定PAR URL。
例子:
未定义exportTable | ( | 字符串 | 表格, |
字符串 | outputUrl, | ||
字典 | 选项 | ||
) |
将指定的表导出到数据转储文件。
表格 | 要导出的表的名称。 |
outputUrl | 存储数据的目标文件。 |
选项 | 带有导出选项的可选字典。 |
的价值表格参数的形式应为表格或模式.表格,在需要时使用反勾字符引用。如果省略schema,则全局上的活动模式壳牌使用会话。如果没有,则引发异常。
的outputUrl指定转储的存储位置。
默认情况下,使用本地文件,在本例中outputUrl可以加前缀文件:/ /计划。如果给出了相对路径,则根据相对于当前工作目录计算绝对路径。输出文件的父目录必须存在。如果输出文件存在,它将被覆盖。输出文件创建时具有以下访问权限(在支持这些权限的操作系统上):rw-r——.
支持以下选项:
需求
细节
该操作将表数据转储写入指定的用户文件中。
需要一个开放的、全局的壳牌会话,并使用其连接选项(如压缩、ssl模式等)来建立其他连接。
的方言option预先定义了选项集合fieldsTerminatedBy (FT), fieldsEnclosedBy (FE), fieldsoptionallyenclose (FOE), fieldsEscapedBy (FESC)和linesTerminatedBy (LT),方式如下:
的maxRate选项支持单位后缀:
即maxRate="2k" -限制吞吐量为每秒2000字节。
转储到OCI对象存储的桶中
如果osBucketName选项时,转储文件存储在指定的OCI桶中,使用本地OCI配置文件建立连接。目录结构在对象名称中模拟。
的osNamespace,ociConfigFile而且ociProfile选项不能使用osBucketName选项设置为空字符串。
的osNamespace选项将覆盖基于从本地OCI配置文件获得的租户ID的OCI名称空间。
ArgumentError | 以下场景:
|
RuntimeError | 以下场景:
|
未定义dumpTables | ( | 字符串 | 模式, |
列表 | 表, | ||
字符串 | outputUrl, | ||
字典 | 选项 | ||
) |
将指定的表或视图从给定模式转储到目标目录中的文件。
模式 | 包含要转储的表/视图的模式的名称。 |
表 | 要转储的表/视图的列表。 |
outputUrl | 存储转储文件的目标目录。 |
选项 | 带有转储选项的可选字典。 |
的表参数不能为空列表。
的outputUrl指定转储的存储位置。
默认情况下,使用本地目录,在本例中outputUrl可以加前缀文件:/ /计划。如果给出了相对路径,则根据相对于当前工作目录计算绝对路径。如果输出目录不存在,但其父目录存在,则创建输出目录。如果输出目录存在,它必须为空。所有目录创建时具有以下访问权限(在支持这些权限的操作系统上):rwxr-x——.所有文件创建时具有以下访问权限(在支持它们的操作系统上):rw-r——.
支持以下选项:
需求
细节
该操作为转储的每个表和视图写入SQL文件,以及一些全局SQL文件。关于源模式的信息也会被保存,这意味着当使用util.loadDump()函数加载转储时,它会自动重新创建。方法将转储加载到另一个现有模式中模式选择。
表数据转储被写入TSV文件,可选地将它们分割为多个块文件。
需要一个开放的、全局的壳牌会话,并使用其连接选项(如压缩、ssl模式等)来建立其他连接。
如果所有选项设置为true表参数设置为空数组时,将转储指定模式中的所有视图和表。如果表参数未设置为空数组,则抛出异常。
所给出的名字排除{对象}或包括{对象}选项应该是有效的MySQL标识符,在需要时使用反勾字符。
如果排除{对象}或包括{对象}选项包含不存在的对象,或属于不存在的模式的对象,则忽略该选项。
的tzUtc选项允许转储TIMESTAMP数据时,服务器有数据在不同的时区或数据正在不同的时区服务器之间移动。
如果一致的选项设置为true时,全局读锁使用用读锁刷新表语句后,所有线程与服务器建立连接并使用以下方法启动事务:
一旦所有线程启动事务,实例将被锁定以进行备份,并释放全局读锁。
如果用于转储的帐户没有足够的特权来执行FLUSH TABLES,则将使用LOCK TABLES作为备用。除了mysql模式中的DDL和GRANT相关表外,所有被转储的表都将被临时锁定。
的ddlOnly而且dataOnly选项不能同时设置为true。
的组块选项使每个表的数据被分割并写入多个块文件。如果将此选项设置为false,则将表数据写入单个文件。
如果组块选项设置为真正的,如果转储表中没有主键或唯一索引,则无法进行分块处理,此时将显示警告并关闭该表的分块处理。
的值线程选项必须是正数。
这两个bytesPerChunk而且maxRate选项支持单位后缀:
即maxRate="2k" -限制吞吐量为每秒2000字节。
的值bytesPerChunkOption不能小于“128k”。
MySQL数据库服务兼容性
MySQL数据库服务有一些与安全相关的限制,这些限制在常规的MySQL实例中是不存在的。为了更容易地将现有的数据库加载到服务中,MySQL中的dump命令壳牌具有检测潜在问题的选项,并且在某些情况下,可以自动调整模式定义以使其符合。
的ocimds选项,当设置为true时,将对大多数这些问题执行模式检查,并在发现任何问题时中止转储。loadDump()命令也只允许加载启用了“ocimds”选项创建的转储文件。
发现的一些问题ocimds选项可能需要您手动更改数据库模式,然后才能将其加载到MySQL数据库服务中。然而,兼容性选项可用于自动修改转储的模式SQL脚本,从而解决其中一些兼容性问题。您可以将以下一个或多个值传递给“compatibility”选项。
create_invisible_pks-每个没有主键的表在加载转储时都会创建一个主键。以下主键被添加到表中:
在MySQL发布的时候壳牌8.0.24,使用此值创建的转储不能与高可用性MySQL数据库服务实例的入站复制一起使用。与ignore_missing_pks价值。
force_innodb—MySQL数据库服务要求使用InnoDB存储引擎。该选项将修改使用不兼容存储引擎的CREATE TABLE语句的ENGINE=子句,并将其替换为InnoDB。它还会删除ROW_FORMAT=FIXED选项,因为InnoDB存储引擎不支持它。
ignore_missing_pks—忽略由没有主键的表引起的错误。用此值创建的转储不能在高可用性MySQL数据库服务实例中使用。与create_invisible_pks价值。
skip_invalid_accounts—跳过没有密码或使用MySQL数据库服务不支持的认证方法(插件)的帐户。
strip_definers-从视图、例程、事件和触发器中剥离"DEFINER=account"子句。MySQL数据库服务需要特殊的权限来使用定义器(而不是加载模式的用户)创建这些对象。通过剥离DEFINER子句,这些对象将用默认定义器创建。另外,视图和例程的SQL SECURITY子句将从DEFINER更改为INVOKER。如果缺少该特性,将添加SQL SECURITY INVOKER子句。这确保应用的是查询或调用这些权限的帐户的访问权限,而不是创建它们的用户。对于大多数用户来说,这应该足够了,但是如果数据库安全模型要求视图和例程比它们的调用程序拥有更多的特权,那么您将需要在加载模式之前手动修改它。
有关DEFINER和SQL SECURITY的详细信息,请参阅MySQL手册。
strip_restricted_grants—MySQL数据库服务中限制了某些权限。尝试创建授予这些特权的用户将会失败,因此该选项允许删除转储GRANT语句的这些特权。
strip_tablespaces—MySQL数据库服务中表空间有一些限制。如果您希望在默认表空间中创建表,该选项将从CREATE TABLE语句中删除TABLESPACE=选项。
此外,当DDL脚本发生ocimds选项启用:
在MySQL发布的时候壳牌为了在高可用性的MySQL数据库服务实例中使用入站复制,源服务器上的所有表都需要有主键。这需要在运行转储之前手动修复。从MySQL 8.0.23开始,不可见列可以用来添加主键,而不改变模式兼容性,更多信息请参见:https://dev.10bet靠谱mysql.com/doc/refman/en/invisible-columns.html.
为了使用高可用性MySQL数据库服务实例,MDS服务器上的所有表都需要有主键。方法可以自动修复此问题create_invisible_pks兼容的价值。
有关限制和兼容性的更多信息,请参阅MySQL数据库服务文档。10bet官方网站
转储到OCI对象存储的桶中
如果osBucketName选项时,转储文件存储在指定的OCI桶中,使用本地OCI配置文件建立连接。目录结构在对象名称中模拟。
的osNamespace,ociConfigFile而且ociProfile选项不能使用osBucketName选项设置为空字符串。
的osNamespace选项将覆盖基于从本地OCI配置文件获得的租户ID的OCI名称空间。
启用使用预身份验证请求的转储加载
loadDump实用程序支持使用预验证请求(PAR)加载转储。最简单的方法是通过提供一个PAR到转储在桶中的位置,这个PAR必须用以下权限创建:
生成的URL可用于加载转储,参见\?loadDump了解更多细节。
另一种不需要OCI配置文件就可以加载转储的方法是执行启用ociParManifest选项的转储操作,这将导致转储操作自动为转储中的每个文件生成PAR,并将它们作为转储的一部分存储在名为“@.manifest.json”的文件中。清单会随着转储操作的进行而更新。
使用具有读取清单权限的PAR是使用PAR加载转储的另一个选项。
的ociParManifest选项不能使用,如果osBucketName没有设置。
在创建par时,需要一个过期时间,它可以通过ociParExpireTime选择。如果不使用该选项,将使用预定义的过期时间,相当于转储操作开始后的一个星期。分配给这个选项的值应该符合RFC3339。
的ociParExpireTime选项不能使用ociParManifest选项未启用。
ArgumentError | 以下场景:
|
RuntimeError | 以下场景:
|
未定义dumpSchemas | ( | 列表 | 模式, |
字符串 | outputUrl, | ||
字典 | 选项 | ||
) |
将指定的模式转储到输出目录中的文件。
模式 | 要转储的模式列表。 |
outputUrl | 存储转储文件的目标目录。 |
选项 | 带有转储选项的可选字典。 |
的模式参数不能为空列表。
的outputUrl指定转储的存储位置。
默认情况下,使用本地目录,在本例中outputUrl可以加前缀文件:/ /计划。如果给出了相对路径,则根据相对于当前工作目录计算绝对路径。如果输出目录不存在,但其父目录存在,则创建输出目录。如果输出目录存在,它必须为空。所有目录创建时具有以下访问权限(在支持这些权限的操作系统上):rwxr-x——.所有文件创建时具有以下访问权限(在支持它们的操作系统上):rw-r——.
支持以下选项:
需求
细节
该操作为转储的每个模式、表和视图写入SQL文件,以及一些全局SQL文件。
表数据转储被写入TSV文件,可选地将它们分割为多个块文件。
需要一个开放的、全局的壳牌会话,并使用其连接选项(如压缩、ssl模式等)来建立其他连接。
无法为以下表创建数据转储:
所给出的名字排除{对象}或包括{对象}选项应该是有效的MySQL标识符,在需要时使用反勾字符。
如果排除{对象}或包括{对象}选项包含不存在的对象,或属于不存在的模式的对象,则忽略该选项。
的tzUtc选项允许转储TIMESTAMP数据时,服务器有数据在不同的时区或数据正在不同的时区服务器之间移动。
如果一致的选项设置为true时,全局读锁使用用读锁刷新表语句后,所有线程与服务器建立连接并使用以下方法启动事务:
一旦所有线程启动事务,实例将被锁定以进行备份,并释放全局读锁。
如果用于转储的帐户没有足够的特权来执行FLUSH TABLES,则将使用LOCK TABLES作为备用。除了mysql模式中的DDL和GRANT相关表外,所有被转储的表都将被临时锁定。
的ddlOnly而且dataOnly选项不能同时设置为true。
的组块选项使每个表的数据被分割并写入多个块文件。如果将此选项设置为false,则将表数据写入单个文件。
如果组块选项设置为真正的,如果转储表中没有主键或唯一索引,则无法进行分块处理,此时将显示警告并关闭该表的分块处理。
的值线程选项必须是正数。
这两个bytesPerChunk而且maxRate选项支持单位后缀:
即maxRate="2k" -限制吞吐量为每秒2000字节。
的值bytesPerChunkOption不能小于“128k”。
MySQL数据库服务兼容性
MySQL数据库服务有一些与安全相关的限制,这些限制在常规的MySQL实例中是不存在的。为了更容易地将现有的数据库加载到服务中,MySQL中的dump命令壳牌具有检测潜在问题的选项,并且在某些情况下,可以自动调整模式定义以使其符合。
的ocimds选项,当设置为true时,将对大多数这些问题执行模式检查,并在发现任何问题时中止转储。loadDump()命令也只允许加载启用了“ocimds”选项创建的转储文件。
发现的一些问题ocimds选项可能需要您手动更改数据库模式,然后才能将其加载到MySQL数据库服务中。然而,兼容性选项可用于自动修改转储的模式SQL脚本,从而解决其中一些兼容性问题。您可以将以下一个或多个值传递给“compatibility”选项。
create_invisible_pks-每个没有主键的表在加载转储时都会创建一个主键。以下主键被添加到表中:
在MySQL发布的时候壳牌8.0.24,使用此值创建的转储不能与高可用性MySQL数据库服务实例的入站复制一起使用。与ignore_missing_pks价值。
force_innodb—MySQL数据库服务要求使用InnoDB存储引擎。该选项将修改使用不兼容存储引擎的CREATE TABLE语句的ENGINE=子句,并将其替换为InnoDB。它还会删除ROW_FORMAT=FIXED选项,因为InnoDB存储引擎不支持它。
ignore_missing_pks—忽略由没有主键的表引起的错误。用此值创建的转储不能在高可用性MySQL数据库服务实例中使用。与create_invisible_pks价值。
skip_invalid_accounts—跳过没有密码或使用MySQL数据库服务不支持的认证方法(插件)的帐户。
strip_definers-从视图、例程、事件和触发器中剥离"DEFINER=account"子句。MySQL数据库服务需要特殊的权限来使用定义器(而不是加载模式的用户)创建这些对象。通过剥离DEFINER子句,这些对象将用默认定义器创建。另外,视图和例程的SQL SECURITY子句将从DEFINER更改为INVOKER。如果缺少该特性,将添加SQL SECURITY INVOKER子句。这确保应用的是查询或调用这些权限的帐户的访问权限,而不是创建它们的用户。对于大多数用户来说,这应该足够了,但是如果数据库安全模型要求视图和例程比它们的调用程序拥有更多的特权,那么您将需要在加载模式之前手动修改它。
有关DEFINER和SQL SECURITY的详细信息,请参阅MySQL手册。
strip_restricted_grants—MySQL数据库服务中限制了某些权限。尝试创建授予这些特权的用户将会失败,因此该选项允许删除转储GRANT语句的这些特权。
strip_tablespaces—MySQL数据库服务中表空间有一些限制。如果您希望在默认表空间中创建表,该选项将从CREATE TABLE语句中删除TABLESPACE=选项。
此外,当DDL脚本发生ocimds选项启用:
在MySQL发布的时候壳牌为了在高可用性的MySQL数据库服务实例中使用入站复制,源服务器上的所有表都需要有主键。这需要在运行转储之前手动修复。从MySQL 8.0.23开始,不可见列可以用来添加主键,而不改变模式兼容性,更多信息请参见:https://dev.10bet靠谱mysql.com/doc/refman/en/invisible-columns.html.
为了使用高可用性MySQL数据库服务实例,MDS服务器上的所有表都需要有主键。方法可以自动修复此问题create_invisible_pks兼容的价值。
有关限制和兼容性的更多信息,请参阅MySQL数据库服务文档。10bet官方网站
转储到OCI对象存储的桶中
如果osBucketName选项时,转储文件存储在指定的OCI桶中,使用本地OCI配置文件建立连接。目录结构在对象名称中模拟。
的osNamespace,ociConfigFile而且ociProfile选项不能使用osBucketName选项设置为空字符串。
的osNamespace选项将覆盖基于从本地OCI配置文件获得的租户ID的OCI名称空间。
启用使用预身份验证请求的转储加载
loadDump实用程序支持使用预验证请求(PAR)加载转储。最简单的方法是通过提供一个PAR到转储在桶中的位置,这个PAR必须用以下权限创建:
生成的URL可用于加载转储,参见\?loadDump了解更多细节。
另一种不需要OCI配置文件就可以加载转储的方法是执行启用ociParManifest选项的转储操作,这将导致转储操作自动为转储中的每个文件生成PAR,并将它们作为转储的一部分存储在名为“@.manifest.json”的文件中。清单会随着转储操作的进行而更新。
使用具有读取清单权限的PAR是使用PAR加载转储的另一个选项。
的ociParManifest选项不能使用,如果osBucketName没有设置。
在创建par时,需要一个过期时间,它可以通过ociParExpireTime选择。如果不使用该选项,将使用预定义的过期时间,相当于转储操作开始后的一个星期。分配给这个选项的值应该符合RFC3339。
的ociParExpireTime选项不能使用ociParManifest选项未启用。
ArgumentError | 以下场景:
|
RuntimeError | 以下场景:
|
未定义dumpInstance | ( | 字符串 | outputUrl, |
字典 | 选项 | ||
) |
将整个数据库转储到输出目录中的文件中。
outputUrl | 存储转储文件的目标目录。 |
选项 | 带有转储选项的可选字典。 |
的outputUrl指定转储的存储位置。
默认情况下,使用本地目录,在本例中outputUrl可以加前缀文件:/ /计划。如果给出了相对路径,则根据相对于当前工作目录计算绝对路径。如果输出目录不存在,但其父目录存在,则创建输出目录。如果输出目录存在,它必须为空。所有目录创建时具有以下访问权限(在支持这些权限的操作系统上):rwxr-x——.所有文件创建时具有以下访问权限(在支持它们的操作系统上):rw-r——.
支持以下选项:
需求
细节
该操作为转储的每个模式、表和视图写入SQL文件,以及一些全局SQL文件。
表数据转储被写入TSV文件,可选地将它们分割为多个块文件。
需要一个开放的、全局的壳牌会话,并使用其连接选项(如压缩、ssl模式等)来建立其他连接。
无法为以下表创建数据转储:
不能为以下模式创建转储:
如果excludeSchemas或includeSchemas选项包含转储中未包含或不存在的模式,则忽略该模式。
所给出的名字排除{对象}或包括{对象}选项应该是有效的MySQL标识符,在需要时使用反勾字符。
如果排除{对象}或包括{对象}选项包含不存在的对象,或属于不存在的模式的对象,则忽略该选项。
的tzUtc选项允许转储TIMESTAMP数据时,服务器有数据在不同的时区或数据正在不同的时区服务器之间移动。
如果一致的选项设置为true时,全局读锁使用用读锁刷新表语句后,所有线程与服务器建立连接并使用以下方法启动事务:
一旦所有线程启动事务,实例将被锁定以进行备份,并释放全局读锁。
如果用于转储的帐户没有足够的特权来执行FLUSH TABLES,则将使用LOCK TABLES作为备用。除了mysql模式中的DDL和GRANT相关表外,所有被转储的表都将被临时锁定。
的ddlOnly而且dataOnly选项不能同时设置为true。
的组块选项使每个表的数据被分割并写入多个块文件。如果将此选项设置为false,则将表数据写入单个文件。
如果组块选项设置为真正的,如果转储表中没有主键或唯一索引,则无法进行分块处理,此时将显示警告并关闭该表的分块处理。
的值线程选项必须是正数。
这两个bytesPerChunk而且maxRate选项支持单位后缀:
即maxRate="2k" -限制吞吐量为每秒2000字节。
的值bytesPerChunkOption不能小于“128k”。
MySQL数据库服务兼容性
MySQL数据库服务有一些与安全相关的限制,这些限制在常规的MySQL实例中是不存在的。为了更容易地将现有的数据库加载到服务中,MySQL中的dump命令壳牌具有检测潜在问题的选项,并且在某些情况下,可以自动调整模式定义以使其符合。
的ocimds选项,当设置为true时,将对大多数这些问题执行模式检查,并在发现任何问题时中止转储。loadDump()命令也只允许加载启用了“ocimds”选项创建的转储文件。
发现的一些问题ocimds选项可能需要您手动更改数据库模式,然后才能将其加载到MySQL数据库服务中。然而,兼容性选项可用于自动修改转储的模式SQL脚本,从而解决其中一些兼容性问题。您可以将以下一个或多个值传递给“compatibility”选项。
create_invisible_pks-每个没有主键的表在加载转储时都会创建一个主键。以下主键被添加到表中:
在MySQL发布的时候壳牌8.0.24,使用此值创建的转储不能与高可用性MySQL数据库服务实例的入站复制一起使用。与ignore_missing_pks价值。
force_innodb—MySQL数据库服务要求使用InnoDB存储引擎。该选项将修改使用不兼容存储引擎的CREATE TABLE语句的ENGINE=子句,并将其替换为InnoDB。它还会删除ROW_FORMAT=FIXED选项,因为InnoDB存储引擎不支持它。
ignore_missing_pks—忽略由没有主键的表引起的错误。用此值创建的转储不能在高可用性MySQL数据库服务实例中使用。与create_invisible_pks价值。
skip_invalid_accounts—跳过没有密码或使用MySQL数据库服务不支持的认证方法(插件)的帐户。
strip_definers-从视图、例程、事件和触发器中剥离"DEFINER=account"子句。MySQL数据库服务需要特殊的权限来使用定义器(而不是加载模式的用户)创建这些对象。通过剥离DEFINER子句,这些对象将用默认定义器创建。另外,视图和例程的SQL SECURITY子句将从DEFINER更改为INVOKER。如果缺少该特性,将添加SQL SECURITY INVOKER子句。这确保应用的是查询或调用这些权限的帐户的访问权限,而不是创建它们的用户。对于大多数用户来说,这应该足够了,但是如果数据库安全模型要求视图和例程比它们的调用程序拥有更多的特权,那么您将需要在加载模式之前手动修改它。
有关DEFINER和SQL SECURITY的详细信息,请参阅MySQL手册。
strip_restricted_grants—MySQL数据库服务中限制了某些权限。尝试创建授予这些特权的用户将会失败,因此该选项允许删除转储GRANT语句的这些特权。
strip_tablespaces—MySQL数据库服务中表空间有一些限制。如果您希望在默认表空间中创建表,该选项将从CREATE TABLE语句中删除TABLESPACE=选项。
此外,当DDL脚本发生ocimds选项启用:
在MySQL发布的时候壳牌为了在高可用性的MySQL数据库服务实例中使用入站复制,源服务器上的所有表都需要有主键。这需要在运行转储之前手动修复。从MySQL 8.0.23开始,不可见列可以用来添加主键,而不改变模式兼容性,更多信息请参见:https://dev.10bet靠谱mysql.com/doc/refman/en/invisible-columns.html.
为了使用高可用性MySQL数据库服务实例,MDS服务器上的所有表都需要有主键。方法可以自动修复此问题create_invisible_pks兼容的价值。
有关限制和兼容性的更多信息,请参阅MySQL数据库服务文档。10bet官方网站
转储到OCI对象存储的桶中
如果osBucketName选项时,转储文件存储在指定的OCI桶中,使用本地OCI配置文件建立连接。目录结构在对象名称中模拟。
的osNamespace,ociConfigFile而且ociProfile选项不能使用osBucketName选项设置为空字符串。
的osNamespace选项将覆盖基于从本地OCI配置文件获得的租户ID的OCI名称空间。
启用使用预身份验证请求的转储加载
loadDump实用程序支持使用预验证请求(PAR)加载转储。最简单的方法是通过提供一个PAR到转储在桶中的位置,这个PAR必须用以下权限创建:
生成的URL可用于加载转储,参见\?loadDump了解更多细节。
另一种不需要OCI配置文件就可以加载转储的方法是执行启用ociParManifest选项的转储操作,这将导致转储操作自动为转储中的每个文件生成PAR,并将它们作为转储的一部分存储在名为“@.manifest.json”的文件中。清单会随着转储操作的进行而更新。
使用具有读取清单权限的PAR是使用PAR加载转储的另一个选项。
的ociParManifest选项不能使用,如果osBucketName没有设置。
在创建par时,需要一个过期时间,它可以通过ociParExpireTime选择。如果不使用该选项,将使用预定义的过期时间,相当于转储操作开始后的一个星期。分配给这个选项的值应该符合RFC3339。
的ociParExpireTime选项不能使用ociParManifest选项未启用。
ArgumentError | 以下场景:
|
RuntimeError | 以下场景:
|