📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

从 tdc 迁移到 TiDB Cloud CLI



仅当你之前使用过 tdc v0.1.x 时,才需要执行此迁移。新安装的 TiDB Cloud CLI 不需要执行此迁移。

开始之前

  • 停止写入程序,并卸载所有由 tdc 启动的 Filesystem 和 Vault 挂载。如果旧挂载仍处于活动状态,迁移将停止,因为它无法转移正在运行的 FUSE 或 WebDAV 进程。

    对每个活动挂载,运行相应的命令。对于 FUSE Filesystem 挂载,先运行 drain-file-system 以刷写待处理的写入,然后运行 unmount-file-system 以卸载挂载。对于 WebDAV Filesystem 挂载,停止写入程序后仅运行 unmount-file-system。Vault 挂载只需要运行 unmount-vault

    # FUSE Filesystem mount tdc fs drain-file-system --mount-path <filesystem-mount-path> tdc fs unmount-file-system --mount-path <filesystem-mount-path> # WebDAV Filesystem mount tdc fs unmount-file-system --mount-path <filesystem-mount-path> # Vault mount tdc fs-vault unmount-vault --mount-path <vault-mount-path>
  • 在解决目录冲突之前,备份 ~/.tdc/ 以及任何现有的 ~/.ti/ 目录。

安装 ti 并迁移本地状态

旧的 tdc update 命令无法安装重命名后的 ti 可执行文件,并且 ti 不提供 tdc 命令别名。请按照安装 TiDB Cloud CLI中的说明直接安装 ti

~/.tdc/ 存在且 ~/.ti/ 不存在时,安装程序以及首次执行的非更新类 ti 命令会自动迁移受支持的本地状态。迁移会保留 ~/.tdc/ 作为回滚副本,并在 ~/.ti/ 下创建一个仅所有者可访问的标记文件,用于记录迁移已完成。

下表总结了哪些状态会被迁移:

已迁移未迁移
配置(Profile)和 TiDB Cloud API 凭证二进制文件
全局偏好设置和遥测安装标识日志和缓存
数据库 SQL 凭证本地叠加层
Filesystem 注册信息和凭证挂载定位文件和配套运行时状态

安装完成后,验证新的可执行文件,并针对你使用的资源运行只读命令。例如:

ti --version # For TiDB Cloud Starter ti db list-db-clusters --db-cluster-type starter --output text # For TiDB Cloud Filesystem ti fs list-file-systems --output text

验证迁移完成后,当你不再需要回滚副本时,可以删除旧的 tdc 二进制文件和本地状态。

解决本地状态冲突

如果 ~/.tdc/~/.ti/ 是分别独立创建的,或者迁移标记缺失、无效,或指向不同的源目录,ti 会停止运行,而不会合并或覆盖任一目录。

请确定哪个目录才是预期的真实来源,并将另一个目录移动到备份位置。然后再次运行安装程序或 ti 命令。不要手动合并凭证目录或 Filesystem 注册目录。

更新环境变量

更新自动化脚本,改用以下环境变量名称:

tdc v0.1.x 变量ti 变量
TDC_PROFILETI_PROFILE
TDC_REGION_CODETI_REGION_CODE
TDC_PUBLIC_KEYTIDB_CLOUD_PUBLIC_KEY
TDC_PRIVATE_KEYTIDB_CLOUD_PRIVATE_KEY
TDC_FS_TOKENTI_FS_TOKEN
TDC_FS_FILE_SYSTEM_IDTI_FS_FILE_SYSTEM_ID
TDC_LOGGINGTI_LOGGING
TDC_TELEMETRYTI_TELEMETRY
TDC_TELEMETRY_TAGTI_TELEMETRY_TAG
TDC_TELEMETRY_EXTRATI_TELEMETRY_EXTRA
TDC_VAULT_TOKENTI_VAULT_TOKEN
TDC_INSTALL_DIRTI_INSTALL_DIR

在 v0.2.x 过渡期间,只有在对应的新变量未设置时,ti 才会接受旧版 TDC_* 环境变量。如果两种形式都已设置且值不同,命令会在修改本地或远程状态之前失败。对旧版 TDC_* 变量的支持将在 v0.3.0 中移除。

后续步骤

文档内容是否有帮助?