外部存储

    TiDB 迁移工具支持以下存储服务:

    S3 和 GCS 等云存储有时需要额外的连接配置,你可以为这类配置指定参数。例如:

    • 用 TiDB Lightning 从 S3 导入数据

      1. ./tidb-lightning --tidb-port=4000 --pd-urls=127.0.0.1:2379 --backend=local --sorted-kv-dir=/tmp/sorted-kvs \
      2. -d 's3://my-bucket/sql-backup?region=us-west-2'
    1. $AWS_ACCESS_KEY_ID$AWS_SECRET_ACCESS_KEY 环境变量。
    2. $AWS_ACCESS_KEY$AWS_SECRET_KEY 环境变量。
    3. 工具节点上的共享凭证文件,路径由 $AWS_SHARED_CREDENTIALS_FILE 环境变量指定。
    4. 工具节点上的共享凭证文件,路径为 ~/.aws/credentials
    5. 当前 Amazon ECS 任务的 IAM 角色。

    如果没有指定 credentials-file,迁移工具尝试按照以下顺序从环境中推断出凭证:

    1. 工具节点上位于 $GOOGLE_APPLICATION_CREDENTIALS 环境变量所指定路径的文件内容。
    2. 工具节点上位于 ~/.config/gcloud/application_default_credentials.json 的文件内容。
    3. 在 GCE 或 GAE 中运行时,从元数据服务器中获取的凭证。

    除了使用 URL 参数,BR 和 Dumpling 工具亦支持从命令行指定这些配置,例如:

    1. ./dumpling -u root -h 127.0.0.1 -P 3306 -B mydb -F 256MiB \
    2. -o 's3://my-bucket/sql-backup' \
    3. --s3.region 'us-west-2'

    在默认情况下,使用 S3 和 GCS 存储时,BR 会将凭证发送到每个 TiKV 节点,以减少设置的复杂性。

    但是,这个操作不适合云端环境,因为每个节点都有自己的角色和权限。在这种情况下,你需要用 --send-credentials-to-tikv=false(或简写为 -c=0)来禁止发送凭证:

    使用 SQL 进行恢复时,可加上 SEND_CREDENTIALS_TO_TIKV = FALSE 选项:

    此参数不适用于 TiDB Lightning 和 Dumpling,因为目前它们都是单机程序。