ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Vitess v15.0.0 版本发布详解:Breaking Changes、VDiff2 恢复、并发 Online DDL 与 VTOrc 配置重构实战指南

Vitess v15.0.0 版本发布详解:Breaking Changes、VDiff2 恢复、并发 Online DDL 与 VTOrc 配置重构实战指南 Vitess v15.0.0 版本发布详解Breaking Changes、VDiff2 恢复、并发 Online DDL 与 VTOrc 配置重构实战指南【免费下载链接】vitessVitess is a database clustering system for horizontal scaling of MySQL.项目地址: https://gitcode.com/gh_mirrors/vi/vitess本篇技术指南以 changelog/15.0/15.0.0/release_notes.md 为骨架系统梳理 Vitess v15.0.0 的破坏性变更、弃用项、新命令与新 Flag并结合当前仓库源码如go/vt/mysqlctl/compression.go、go/vt/vttablet/tabletserver/tabletenv/config.go、go/vt/vtctl/reparentutil/policy/durability.go深入解析底层实现原理。读完本文你将掌握 v14 → v15 升级前必须处理的 Flag 与接口变更清单、备份压缩引擎的选型与切换步骤、OLAP/OLTP 独立事务超时配置、并发 Online DDL 玩法以及 VTOrc 从配置文件迁移到命令行 Flag 的完整路径。版本概览与已知问题Vitess v15.0.0 是继 v14 之后的又一个重要里程碑本次发布包含595 个 commit不含 merge主线工作包括VDiff2 功能补全、并发 Online DDLALTER迁移、备份/恢复压缩引擎多元化、OLAP/OLTP 事务超时解耦、cross_cell持久化策略以及 VTOrc 的大规模配置重构与 GA。在动手升级前需要先了解本版本的一个已知问题非 full-group-by 查询与 JOIN 组合可能导致结果损坏。规避方案是使用 full-group-by 查询即SELECT列表、HAVING与ORDER BY中出现的所有列都包含在GROUP BY子句中。该问题仅影响特定的非标准 SQL 写法标准 full-group-by 查询不受影响。Breaking Changes升级前必须处理的破坏性变更被删除的 Flag 及替代方案v15 清理了一批长期弃用的 profiling 与复制相关 Flag若你的启动脚本仍在使用升级后二进制将无法启动已删除 Flag替代方案--cpu_profile--pprof--mem-profile-rate--pprofmem--mutex-profile-fraction--pprofmutexvtgate/vtexplain/vtcombo 的--planner_version--planner-version--master_connect_retry--replication_connect_retryvttablet 的--db-config-*-*系列v3.0 起弃用--db_dba_*其中--pprof取代三个独立 profile Flag 是 Vitess 收敛启动参数的重要一步相关 Flag 的注册逻辑统一在servenv中完成建议所有部署统一迁移。vtctl 位置参数需要--分隔符由于 v15 引入了新的命令行解析库vtctl中以 shard 名称和范围作为位置参数的命令必须用双横线--将位置参数与 Flag 参数隔开否则会被解析库误判为 Flag# 旧写法v15 中可能解析失败 vtctl Reshard ks.workflow -80 -40,40-80 # 新写法正确 vtctl Reshard ks.workflow -- -80 -40,40-80这一变更影响的典型命令包括Reshard、MoveTables等涉及 shard 范围传参的场景请全面排查脚本与编排任务。vtgate 的--cell成为必填参数vtgate二进制的--cellFlag不再有默认值启动时必须显式指定否则无法运行。如果此前依赖其默认值请在升级时补齐该参数vtgate --cellzone1 ...vttablet 启动 Flag 删除清单以下 vttablet Flag 自 v7.0 弃用v15 正式删除已删除 Flag说明 / 替代--queryserver-config-message-conn-pool-size消息表连接池大小已移除--queryserver-config-message-conn-pool-prefill-parallelism消息表连接池预填充并发度已移除--client-found-rows-pool-size改用现有 Flag--queryserver-config-transaction-cap--transaction_shutdown_grace_period改用--shutdown_grace_period--queryserver-config-max-dml-rows已移除--queryserver-config-allowunsafe-dmls已移除--pool-name-prefix已移除--enable-autocommitautocommit 始终被允许Flag 无意义Vindex 接口变更方法签名注入 context.Context所有 vindex 接口方法都增加了context.Context作为第一个入参。例如Map方法从Map(vcursor VCursor, .... ) ....变为Map(ctx context.Context, vcursor VCursor, .... ) ....这一变更只影响编写了自定义 vindex 实现的用户。如果你有自研 vindex如自定义 lookup、unique 或 functional vindex必须同步修改实现以匹配新接口内置 vindex 已在 v15 源码中完成适配无需额外操作。Deprecations本版本弃用、未来版本移除LogStats 的 Keyspace/Table 字段弃用改用 TablesUsed此前 LogStats 通过Keyspace与Table字段报告查询用到的表多表查询时该输出容易产生歧义。v15 新增字符串数组字段TablesUsed列出查询涉及的所有表及其所在 keyspace。Keyspace与Table字段正式弃用将在 v16 中移除。若你基于 LogStats 做审计或慢查询分析请尽快迁移到TablesUsed。Orchestrator 集成弃用VTOrc 正式 GAvttablet 中的 Orchestrator 集成被正式弃用本版本仍可继续工作但未来版本可能移除。官方明确建议转向 VTOrc——它在本版本达到GAGeneral Availability状态。VTOrc 的 UI、API、配置体系在本版本完成了重构详见后文是其走向独立稳定的关键一步。连接池预填充Prefill移除v15 移除了带预填充连接的连接池机制连接池现在采用**惰性建连lazy connection creation**策略——连接在使用时才创建。这减少了 vttablet 启动时的建连开销与资源占用但也意味着连接池预热行为不再存在相关预填充参数见下文弃用列表也随之失效。InitShardPrimary 弃用vtctld 的InitShardPrimary命令被弃用请改用PlannedReparentShard完成 shard 初始主库设置。两者的区别在于PlannedReparentShard走标准 reparent 流程包含 preflight 检查、全局拓扑更新等语义更安全。命令行语法层面的弃用汇总vttablet 启动 Flag 弃用清单v16 移除--enable-query-plan-field-caching已弃用v16 移除。--enable_semi_sync已弃用v16 移除。请改用SetKeyspaceDurabilityPolicy设置正确的持久化策略这也是 v15 强化 durability policy 体系的原因。--queryserver-config-pool-prefill-parallelism、--queryserver-config-stream-pool-prefill-parallelism、--queryserver-config-transaction-prefill-parallelism三个预填充并发度 Flag 全部弃用与连接池惰性建连的架构调整保持一致。--backup_storage_hook已弃用建议改用内置压缩算法或--external-compressor/--external-decompressor详见备份压缩章节。vtbackup Flag 弃用--backup_storage_hook弃用替代方案同上。VTGate 新特性--mysql-server-pool-conn-read-buffers新增 Flag 启用读缓冲池复用读取入站连接数据所用的 buffer与既有的写缓冲池机制对称可降低高并发连接场景下的内存分配压力。默认关闭。该 Flag 在 go/vt/vtgate/plugin_mysql_server.go 中注册fs.BoolVar(mysqlConnBufferPooling, mysql-server-pool-conn-read-buffers, mysqlConnBufferPooling, If set, the server will pool incoming connection read buffers)对于大量短连接、读多写少的 MySQL 协议接入场景开启该 Flag 有减少 GC 与内存分配的效果。--grpc-use-effective-groups为调用方指定组信息新增 gRPC 安全相关 Flag允许非 SSL 调用方为调用者指定组groups信息。此前只能通过 caller-id 指定用于查询授权的安全上下文主体现在可以同时指定调用方的 principal主体及其所属的任何组。该 Flag 在 go/vt/vtgate/grpcvtgateservice/server.go 中注册utils.SetFlagBoolVar(fs, useEffectiveGroups, grpc-use-effective-groups, false, If set, and SSL is not used, will set the immediate callers security groups from the effective caller ids groups.)适用于基于组的授权模型如按业务组划分查询权限且未启用 SSL 的场景。注意启用后将从 effective caller id 中提取组信息作为即时调用者的安全组使用前需确认调用链上 caller-id 的可信度。VDiff2工作流恢复Resume能力VDiff 用于对比数据一致性常用于验证 MoveTables / Reshard 后的数据。v15 的 VDiff2--v2新增了resume能力可以对已启动的 VDiff2 工作流进行恢复、查看进度$ vtctlclient --serverlocalhost:15999 VDiff --v2 customer.commerce2customer resume 4c664dc2-eba9-11ec-9ef7-920702940ee0 VDiff 4c664dc2-eba9-11ec-9ef7-920702940ee0 resumed on target shards, use show to view progress $ vtctlclient --serverlocalhost:15999 VDiff --v2 customer.commerce2customer show last VDiff Summary for customer.commerce2customer (4c664dc2-eba9-11ec-9ef7-920702940ee0) State: completed RowsCompared: 196 HasMismatch: false StartedAt: 2022-06-26 22:44:29 CompletedAt: 2022-06-26 22:44:31 Use --formatjson for more detailed output.JSON 输出模式可获取结构化结果便于脚本解析与自动化$ vtctlclient --serverlocalhost:15999 VDiff --v2 --formatjson customer.commerce2customer show last { Workflow: commerce2customer, Keyspace: customer, State: completed, UUID: 4c664dc2-eba9-11ec-9ef7-920702940ee0, RowsCompared: 196, HasMismatch: false, Shards: 0, StartedAt: 2022-06-26 22:44:29, CompletedAt: 2022-06-26 22:44:31 }关键增强点自动恢复VDiff2 在遇到可重试retryable错误时会利用 resume 能力自动重启工作流无需人工干预进度报告支持运行过程中的进度查看功能补全v15 中 VDiff2 达到 feature-complete 状态定位是 VDiff v1 的完整替代品官方计划在 v16 将其提升为 GA。对于依赖 VDiff v1 的自动化数据校验流程建议在本版本评估迁移到 VDiff2。新命令行 Flag 与行为vtctl GetSchema--table-schema-only新增--table-schema-onlyFlag跳过列级内省column introspectionGetSchema只返回概要性的 schema 分析并包含CREATE TABLE|VIEW语句位于返回结果的schema字段。适用于只需要建表语句、不关心列元数据的场景可显著降低拓扑与元数据查询开销。备份/恢复压缩引擎多元化重点v15 之前备份压缩默认且只能使用pargzip。本版本起备份/恢复支持多种压缩/解压引擎由以下 Flag 控制--compression-engine-name--external-compressor--external-decompressor--external-compressor-extension--compression-level--compression-engine-name的可选值与默认值值说明pargzip默认。并行 gzip基于 planetscale/pargzippgzip并行 gzip基于 klauspost/pgziplz4基于 pierrec/lz4追求极致的压缩/解压速度zstd基于 klauspost/compress zstd高压缩比与高速兼顾external调用外部命令进行压缩/解压从当前仓库源码 go/vt/mysqlctl/compression.go 可以确认引擎的注册与校验逻辑const ( PgzipCompressor pgzip PargzipCompressor pargzip ZstdCompressor zstd Lz4Compressor lz4 ExternalCompressor external ) // ... CompressionEngineName pargzip // 默认引擎引擎值会被写入备份的MANIFEST恢复进程读取 MANIFEST 决定用哪个引擎解压——这是压缩配置能够一次备份、随处恢复的关键。同时内置解压器对pargzip做了特殊处理pargzip 仅支持压缩不支持解压因此在解压路径会自动回退到pgzip源码newBuiltinDecompressor中有明确日志engine pargzip doesnt support decompression, using pgzip instead。使用内置引擎直接将--compression-engine-name设为pgzip/lz4/zstd等值即可同时可用--compression-level调整压缩级别默认级别为 1源码中compressionLevel 1。需要注意不同引擎对 level 的语义不同例如 lz4 会对 level 值做映射源码lz4CompressionLevel将 0/1 映射为快速模式、9 以上映射为最强 Level9。使用外部命令为--external-compressor与--external-decompressor提供完整命令及参数源码通过shlex.Split解析命令串并exec.LookPath校验可执行文件必须同时提供--external-compressor-extension以保证压缩文件扩展名正确。若外部命令不是基于内置引擎pgzip/pargzip/lz4/zstd必须将--compression-engine-name设为external。保持现状如果不想改变现有行为无需提供任何上述 Flag默认仍走pargzip。从外部压缩器切换到内置引擎两步走不能一次性全部修改否则恢复进程无法得知如何处理旧备份第一步将--external-compressor与--external-compressor-extension置空--compression-engine-name改为目标内置引擎值第二步至少完成一轮新配置的备份后再将--external-decompressor置空。原因在于 MANIFEST 只记录引擎名若压缩侧已切换而解压侧仍依赖外部命令恢复旧备份时可能匹配不上反向亦然。在切换前请仔细推演所有可能的恢复场景。另外当前源码还提供--external-decompressor-use-manifest允许恢复时使用 MANIFEST 中存储的解压命令与--manifest-external-decompressor压缩时写入 MANIFEST 的外部解压命令但源码注释明确警告前者存在安全风险——攻击者若可写备份存储可能通过篡改 MANIFEST 在 tablet 上以 Vitess 用户身份执行任意命令非必要不建议开启。独立 OLAP / OLTP 事务超时新增--queryserver-config-olap-transaction-timeout指定OLAP 工作负载中创建的事务的超时时间默认 30 秒可调大、调小或设为0完全禁用超时。历史行为是OLAP 查询本身可绕过查询超时但 OLAP 会话中开启的事务会在--queryserver-config-transaction-timeout秒后被回滚。v15 起OLTP 与 OLAP 事务超时可独立配置OLTP 事务超时--queryserver-config-transaction-timeout对应 config.go 中的currentConfig.Oltp.TxTimeoutOLAP 事务超时--queryserver-config-olap-transaction-timeout对应currentConfig.Olap.TxTimeout。两者在运行时通过TxTimeoutForWorkload(workload)按查询负载类型分别取值见 tx_pool.go并在/debug/vars中以OlapTransactionTimeout、OltpTransactionTimeout指标暴露当前配置。典型使用场景长时间运行的查询需要事务性保证一致性、原子性——例如跨多步、分钟级的数据加工任务可以调大 OLAP 事务超时而不影响 OLTP 短事务的快速失败保护。Online DDL 变更并发 Vitess 迁移含 ALTER所有使用vitess策略的 Online DDL 迁移现在都可并发执行前提是 DDL 策略带--allow-concurrent。此前只有CREATE、DROP、REVERT可并发v15 起ALTER迁移也支持并发并发约束如下DDL 策略必须是vitess --allow-concurrent ...同一张表上不允许两个迁移并发不允许两个ALTER同时拷贝表数据table-copy 串行执行若另一个ALTER正在运行且尚未ready_to_complete新的并发ALTER不会启动。典型玩法同时发起多个带--postpone-completion的并发迁移。所有表拷贝操作串行执行但任何迁移都不会自动 cut-over当所有迁移都进入ready_to_complete后它们会持续追读 binlog 保持数据同步。此时通过一轮快速的迭代式ALTER VITESS_MIGRATION ... COMPLETE命令序列可以让所有迁移**几乎同时但不保证原子**完成切换——适合一次性提交多列变更、希望统一生效的发布场景。vtctl 命令增强--order / --skip / --limit所有online DDL show系列命令新增三个参数--order按迁移id的升序或降序排列输出--skip跳过指定数量的迁移--limit限制输出迁移数量。组合使用可方便地对大批量迁移做分页查询与排序例如查看最近创建的迁移、跳过前 N 条等。新语法ALTER VITESS_MIGRATION COMPLETE ALLv15 新增一条批量完成语法ALTER VITESS_MIGRATION COMPLETE ALL该命令作用于所有 pending 状态的迁移queued、ready、running内部为每个迁移逐一执行ALTER VITESS_MIGRATION uuid COMPLETE。它正是为上述多个--postpone-completion并发迁移统一收尾的场景设计一条 SQL 即可让全部挂起迁移完成 cut-over。Tablet Throttler/debug/vars 指标暴露Tablet Throttler表级限流器的 API 端点/debug/vars现在暴露限流指标包括每个 app、每种检查类型check type的命中数hits与错误数errors。示例输出$ curl -s http://127.0.0.1:15100/debug/vars | jq . | grep Throttler ThrottlerAggregatedMysqlSelf: 0.191718, ThrottlerAggregatedMysqlShard: 0.960054, ThrottlerCheckAnyError: 27, ThrottlerCheckAnyMysqlSelfError: 13, ThrottlerCheckAnyMysqlSelfTotal: 38, ThrottlerCheckAnyMysqlShardError: 14, ThrottlerCheckAnyMysqlShardTotal: 42, ThrottlerCheckAnyTotal: 80, ThrottlerCheckMysqlSelfSecondsSinceHealthy: 0, ThrottlerCheckMysqlShardSecondsSinceHealthy: 0, ThrottlerProbesLatency: 355523, ThrottlerProbesTotal: 74,通过ThrottlerCheckAnyTotal、ThrottlerCheckAnyError等指标可以量化评估限流触发频率与拒绝率为监控告警提供数据支撑。MySQL 兼容性增强系统设置System Settings连接池化自 v7.0 起 Vitess 支持客户端会话修改系统设置如sql_mode、time_zone等但一直有代价一旦客户端会话修改了某个非默认系统设置就会为其保留一条 MySQL 连接高并发下容易耗尽 MySQL 连接。官方此前只能建议尽量少用该特性、把需要的设置写进 MySQL 配置作为默认值。v15 解决了这一痛点Vitess 现在可以对变更过的设置进行池化pool changed settings无需为特定会话保留连接。启用方式是在 vttablet 上设置--queryserver-enable-settings-pool默认关闭未来版本将默认开启。开启后客户端可以更自由地使用会话级系统设置而不用担心连接被独占。Lookup Vindex 新参数multi_shard_autocommitLookup vindex 新增参数multi_shard_autocommit。当设为true时lookup vindex 的 DML 查询会以autocommit 方式直接发给所有分片而不是包在一个事务里。它与既有autocommit参数的区别既有autocommitlookup 查询在自己的独立事务中执行begin - lookup query execs - commit/rollback与正在进行的业务事务分离新的multi_shard_autocommitlookup DML 直接以 autocommit 发送到所有分片不创建任何事务。注意两种模式都弱化了一定的事务保证lookup 写入不跟随业务事务回滚适用于对 lookup 表一致性要求不极端、且希望降低事务开销的高吞吐写入场景使用时需评估数据一致性风险。Durability Policycross_cellv15 新增持久化策略cross_cell。该策略下只有与当前 primary 处于不同 cell 的 replica tablet 才能发送 semi-sync ACK从而保证任何已提交的写入至少存在于分属不同 cell 的两个 tablet上实现跨可用区/机房的持久化容灾。从源码 go/vt/vtctl/reparentutil/policy/durability.go 可以看到策略的注册与实现// DurabilityCrossCell is the name of the durability policy that has 1 semi-sync setup // but only allows Primary and Replica type servers from a different cell to acknowledge semi sync. DurabilityCrossCell cross_cell // ... RegisterDurability(DurabilityCrossCell, func() Durabler { return durabilityCrossCell{...} })durabilityCrossCell实现类通过IsReplicaSemiSync(primary, replica)判断 replica 是否参与 semi-sync仅跨 cell 的 replica 返回 true并在 durability_funcs_test.go 中有完整的单元测试覆盖包括 primary 同 cell 的 replica 被撤销 ACK 资格、不同 cell 的 replica 正常 ACK 等场景。同目录还提供了变体cross_cell_with_rdonly_ack额外允许rdonlytablet 发送 semi-sync ACK。使用方式通过SetKeyspaceDurabilityPolicy将 keyspace 的 durability policy 设为cross_cell。注意它要求集群存在跨 cell 的 replica若 replica 与 primary 同 cellsemi-sync 将无法获得 ACK。新 EXPLAIN 格式FORMATvtexplainv15 新增 EXPLAIN 格式FORMATvtexplain可以从运行中的 vtgate通过 MySQL 查询获得与命令行工具vtexplain非常相似的输出。也就是说不再需要离线准备 schema/vschema 文件运行vtexplain二进制直接对线上 vtgate 执行EXPLAIN FORMATvtexplain SELECT ...;即可看到查询在 vtgate 侧的规划结果如拆分为哪些目标 shard、路由策略、vindex 使用情况等极大方便了线上查询路由问题的排查。VTOrcUI 与配置体系重构VTOrc 自 Orchestrator fork 而来v15 对其做了彻底去 Orchestrator 化的重构并正式 GA。旧 UI 移除与替代从 Orchestrator 继承的旧 UI 已被移除替换为与其他 Vitess 二进制风格一致的新 UI。使用新 UI 必须提供--portFlag。旧 API 被弃用其中部分已迁移到新 UI旧 API新 API说明/api/problems/api/problems新增支持按 keyspace 与 shard 名过滤/api/disable-global-recoveries/api/disable-global-recoveries功能保持不变/api/enable-global-recoveries/api/enable-global-recoveries功能保持不变/api/health/debug/health功能保持不变/api/replication-analysis/api/replication-analysis功能保持不变输出改为 JSON 格式此外新 UI 还提供/debug/status、/debug/vars与/debug/liveness端点。配置重构与新 FlagVTOrc 移除了大量从 Orchestrator 继承的、不适合 Vitess 场景的配置。VTOrc 会忽略无法识别的配置因此旧配置文件在升级后可以继续保留只是会被静默忽略。对所有保留的配置项均新增了对应 Flag且Flag 是未来推荐的传参方式配置文件将在后续版本弃用并移除保留配置项新增 FlagSQLite3DataFile--sqlite-data-fileInstancePollSeconds--instance-poll-timeSnapshotTopologiesIntervalHours--snapshot-topology-intervalReasonableReplicationLagSeconds--reasonable-replication-lagAuditLogFile--audit-file-locationAuditToSyslog--audit-to-backendAuditToBackendDB--audit-to-syslogAuditPurgeDays--audit-purge-durationRecoveryPeriodBlockSeconds--recovery-period-block-durationPreventCrossDataCenterPrimaryFailover--prevent-cross-cell-failoverLockShardTimeoutSeconds--lock-shard-timeoutWaitReplicasTimeoutSeconds--wait-replicas-timeoutTopoInformationRefreshSeconds--topo-information-refresh-durationRecoveryPollSeconds--recovery-poll-duration注意表中AuditToSyslog与AuditToBackendDB对应的 Flag 在原文档中为--audit-to-backend与--audit-to-syslog传参时请以vtorc --help实际输出为准。同时移除了一批 VTOrc 不再需要的 Flagsibling、destination、discovery、skip-unresolve、skip-unresolve-check、noop、binlog、statement、grab-election、promotion-rule、skip-continuous-registration、enable-database-update、ignore-raft-setup、tag。推荐的向后兼容升级顺序在旧版本上先移除上述被删除的 Flag如--ignore-raft-setup再升级 VTOrc 二进制旧 Flag 与旧配置文件仍可正常工作升级完成后删除配置文件改用新引入的 Flag。升级示例假设旧部署使用如下命令与配置vtorc --ignore-raft-setup --clusters_to_watchks/0 --configpath/to/config{ Debug: true, ListenAddress: :6922, MySQLTopologyUser: orc_client_user, MySQLTopologyPassword: orc_client_user_password, MySQLReplicaUser: vt_repl, MySQLReplicaPassword: , RecoveryPeriodBlockSeconds: 1, InstancePollSeconds: 1, PreventCrossDataCenterPrimaryFailover: true }升级步骤先在旧版本上去掉--ignore-raft-setup此时命令变为--clusters_to_watchks/0 --configpath/to/config配置不变升级 VTOrc 版本沿用上述 Flag 与配置行为完全一致若想用新 UI可追加--port升级完成后彻底去掉配置文件改用新 Flagvtorc --clusters_to_watchks/0 --recovery-period-block-duration1s --instance-poll-time1s --prevent-cross-cell-failover默认配置文件变化VTOrc 搜索配置文件的默认路径从 Orchestrator 风格改为 Vitess 风格旧/etc/orchestrator.conf.json、conf/orchestrator.conf.json、orchestrator.conf.json新/etc/vtorc.conf.json、conf/vtorc.conf.json、vtorc.conf.json当前仓库的示例默认配置位于 config/vtorc/default.json可作为新配置格式的参考起点。Flags 重构VEP-4, The Flag Situationv15 在 Flag 体系上推进了 VEP-4官方 enhancement 提案的落地重新组织代码使各二进制与其 Flag 在帮助文本中对齐提升可用性并为后续基于 viper 的实现铺路viper 将带来 Flag 语法标准化与运行时配置热加载。同时与业界 Flag 使用标准对齐方便从其他平台迁移或集成。本仓库中14.0 → 15.0 各二进制 Flag 的完整差异文件位于 doc/flags/14.0-to-15.0-transition/对应二进制包括mysqlctl.diff、mysqlctld.diffvtaclcheck.diff、vtadmin.diffvtctlclient.diff、vtctld.diff、vtctldclient.diffvtexplain.diff、vtgate.diff、vtgr.diffvtorc.diff、vttablet.diffvttestserver.diff、vttlstest.diffzk.diff、zkctl.diff、zkctld.diff升级前建议逐一核对所用二进制对应 diff 文件确认启动参数在 15.0 中的变化。更完整的逐条变更记录可参见 changelog/15.0/15.0.0/changelog.md。升级行动清单总结Flag 层核对上述删除/弃用 Flag替换为--pprof、--db_dba_*等新参数vtgate 补上必填的--cellvtctl位置参数前加--。自定义代码层自定义 vindex 实现需为所有接口方法补context.Context参数。运维层VDiff 校验流程可评估迁移到 VDiff2支持 resume 与自动重试备份脚本可按需选配压缩引擎切换需两步走OLAP 长事务可配置独立的--queryserver-config-olap-transaction-timeout。容灾层多 cell 部署可评估cross_cell持久化策略保证提交写入跨 cell 双副本。VTOrc 层按旧版本先删 Flag → 升级 → 迁移配置到新 Flag三步走并将默认配置文件路径切换为vtorc.conf.json系列。以上内容均以当前仓库 v15.0.0 的 release_notes.md 及对应源码实现为准具体 Flag 的默认值请以二进制--help输出为最终依据。【免费下载链接】vitessVitess is a database clustering system for horizontal scaling of MySQL.项目地址: https://gitcode.com/gh_mirrors/vi/vitess创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表