You need to enable JavaScript to run this app.
文档中心
数据库传输服务

数据库传输服务

复制全文
下载 pdf
源为专有网络 Supabase
迁移至火山引擎 Supabase
复制全文
下载 pdf
迁移至火山引擎 Supabase
本场景介绍如何在数据库传输服务 DTS 控制台创建专有网络 Supabase 迁移至火山引擎 Supabase。​
前提条件​
  • 按需设置源端信息,具体如下所示:​
  • 在需要使用专线实现数据迁移时,您需要搭建云上单私有网络和云下单数据中心网络连通的专线连接。详细操作,请参见配置专线连接。​
  • 当您的实例是通过专有网络连接时,专有网络的子网需要和源端或目标端的数据库有连通,同时为了能让 DTS 可以正常访问专有网络的实例,您需要将该子网网段加入到源端或目标端数据库的白名单或安全组规则中。更多信息,请参见添加 DTS 服务器的 IP 地址段。​
  • 如果源端为 Supabase.com 上的 PostgreSQL 数据库,且通过专有网络连接实例时,那么您需要登录 Supabase 控制台,在目标项目中打开 Connect to your project 页面,选择 Direct(Connection string) 页签,并根据网络环境选择连接方式。将 Type 设置为 URI 后,复制页面生成的 PostgreSQL 连接字符串。后续在 DTS 中配置源库信息时,可参考该连接字符串填写连接地址、端口、数据库名称、账号和密码等信息。​
  • 确认源端和目标端的网络连通性与服务可用性。​
注意事项​
  • 迁移配置与对象选择​
  • DDL 操作限制:在库表结构迁移和全量迁移阶段,严禁执行库或表结构变更的 DDL 操作,否则任务将失败。​
  • 预检查告警:若预检查时选择忽略告警并启动任务,可能会导致数据不一致,带来业务风险。​
  • 迁移对象限制:当前仅迁移您的业务表,不会迁移 Supabase 自身的系统库表。​
  • 性能与资源影响​
  • 存储空间膨胀:由于全量迁移会并发执行 INSERT 操作,导致目标库产生碎片,迁移完成后目标库的存储空间通常会大于源库。​
  • 负载影响:迁移会占用一定的读写资源,建议在业务低峰期执行,并提前评估源库和目标库的性能。​
  • 网络资源:创建专有网络迁移任务时,系统会在您选择的私有网络(子网)内默认创建数张网卡(名称格式为 dts_shuttle_********)。​
  • 运行稳定性与权限​
  • 自建 PostgreSQL 特别注意:​
  • 主备切换:迁移期间源端若发生主备切换,会导致任务失败。​
  • 重启操作:源端重启会导致任务暂时中断并自动尝试修复。若长时间未恢复,请提交工单。​
  • 权限保持:迁移期间,请勿修改源库账号对所创建对象(如触发器、函数、内部表等)的访问权限。​
  • 任务独立性:迁移过程中,数据迁移和存储对象迁移互相独立,互不影响。​
使用限制​
​
类型​
说明​
源库基础要求​
​
  • 版本兼容性:建议源库和目标库的 PostgreSQL 版本保持一致,或从低版本迁移至高版本。高版本向低版本迁移可能存在兼容性或数据丢失风险。​
  • 带宽要求:源端服务器需具备足够的出口带宽,否则将影响迁移速率。​
  • 表结构与命名:​
  • 待迁移的表需具备主键或唯一非空约束,且字段具有唯一性,否则可能导致数据不一致。​
  • 待迁移对象的数据库或表名不可包含问号(?),否则会导致任务失败。​
  • 迁移粒度与数量:​
  • 单个迁移任务仅支持迁移一个数据库。若需迁移多个数据库,请配置多个任务。​
  • 迁移对象选择粒度为库或表。若仅选择表,视图、触发器、函数、存储过程等对象不会被迁移。​
  • 单任务建议不超过 2 万张表、50 个库。大量库表迁移时建议拆分任务。​
  • 数据规模:当前版本建议用于 十万量级 Object 的存储对象迁移。若超过该规模,建议单独评估后再执行。​
  • 变更控制:迁移期间不建议源端发生任何 Bucket 或 Object 变更(包括新增、更新、删除和重命名)。建议在业务低峰期执行迁移,并尽量暂停对迁移范围内 Bucket 的写入。​
目标库基础要求​
  • 容量与限制:请确认目标端 Supabase Storage 的限制能够覆盖源端数据:​
  • 目标端允许创建对应的 Bucket。​
  • 目标端单文件大小上限需大于等于源端最大单文件大小。​
  • 目标端总容量或项目配额足够容纳本次迁移数据。​
  • 目标端支持 resumable upload / TUS 分片上传。​
  • 目标端 API 限流策略能够承受迁移期间的并发压力。​
  • 冲突处理:如果目标端已存在同名 Bucket 或同名 Object,请提前确认好冲突处理策略。​
其他限制​
  • 邀测阶段:该功能当前处于邀测阶段,您可以提交工单联系技术人员实现数据迁移。​
  • 仅支持主库:目前仅支持迁移主库数据,暂不支持从库数据迁移。​
  • 网络连通性:请确认迁移执行环境可以正常访问源端和目标端的 Supabase Storage API 地址,以及源端 PostgreSQL 数据库地址。需重点检查防火墙、白名单、安全组、代理和 SSL 连接策略,若不满足要求需提前开通。​
  • 迁移对象范围:​
  • 当前支持在网页上全选或指定选择 Bucket,不支持手动填写通配符、按前缀或自定义过滤规则迁移部分 Object。​
  • 当前迁移任务以源端对象快照为基准,不支持自动纳入任务启动后新增的对象。​
  • WAL 日志与复制限制:WAL 日志至少保留 24 小时(建议 7 天以上),否则 DTS 可能因无法获取日志导致任务失败或数据丢失。​
​
​
数据库最小权限策略​
​
数据库​
权限说明​
源端​
请确保提供的源端凭据(建议使用具备完整管理能力的 service role key,避免使用受限的 anon key)具备以下权限:​
  • Storage:可列举 Bucket、读取 Bucket 配置及 Object 元数据、下载 Object 内容。​
  • PostgreSQL:可连接源端数据库,并读取 storage.buckets 和 storage.objects 表。​
  • 元数据读取:具备读取 storage.objects 相关索引元数据的权限,以便系统自动检查扫描所需索引(bucket_id,name COLLATE "C")是否存在。​
目标端​
请确保提供的目标端凭据(建议使用 service role key)具备 Storage 权限,可列举与创建 Bucket、读取 Bucket 配置及 Object 元数据、写入 Object,并具备大文件分片上传能力。​
​
操作步骤​
  1. 登录 DTS 控制台。​
  1. 在顶部菜单栏,选择项目和地域。​
  1. 在左侧导航栏,单击数据迁移。​
  1. 在迁移任务列表页面,单击创建任务。​
  1. 在创建迁移任务页面的配置源库及目标库配置向导页面,配置以下参数信息。​
​
类别​
参数​
说明​
基本信息​
任务名称​
(可选)自定义迁移任务名称。长度需在 256 个字符内。​
说明​
若未进行设置,系统将默认生成一个以 dts- 开头命名的任务。​
​
链路规格​
按需选择迁移任务的链路规格,当前支持 Compact、Medium 和 Standard。​
说明​
成功创建任务后,不支持修改任务的链路规格。关于链路规格的详细信息,请参见产品规格。​
源库配置​
选择已有数据源​
您可以按需选择是否使用已录入的实例:​
  • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理。​
  • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。​
​
实例类型​
选择 Supabase。​
​
接入方式​
选择专有网络 Supabase。​
​
地域​
选择公网自建实例所属地域。​
​
私有网络​
​
从下拉列表中选择目标私有网络,具体如下所示:​
  • 专线连接:通过专线 CEN 实现数据连通时,选择 CEN 下所属的任意私有网络。​
  • VPN 连接:通过 VPN 实现数据连通时,选择 VPN 网关绑定的私有网络。​
​
子网​
从下拉列表中选择私有网络中的子网。​
说明​
在迁移专有网络 Supabase 实例时,您需要提前在源端的白名单或安全组策略中,添加子网 IP 段的访问权限。单击查看子网 IP 段查看和复制 IP 段。​
​
API URL​
输入 Supabase 服务对外的 API 入口。​
​
服务角色密钥​
输入 Supabase 中权限最高、拥有实例全局管理员权限的专属密钥。​
​
数据库 URL​
输入 Supabase 底层 PostgreSQL 数据库的原生直连地址(通常为 5432 结尾)而不是 Pooler 地址,遵循标准的 PostgreSQL 连接串格式,是直接对接底层数据库的凭证。​
​
测试连接​
单击测试连接,验证是否成功连接实例。​
当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:​
  • 连接认证失败,请检查网络是否正常:当出现该报错提示时,请确认网络的连通性。​
  • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认用户名和密码的准确性。​
  • 连接认证失败,无法正常创建连接,请联系客服:当出现该报错提示时,请提交工单联系技术人员。​
  • 无效的 IP 地址:当出现该报错提示时,请确认 IP 地址的正确性。​
  • 专有网络需要子网有 * 个可用 IP,当前私有网络内子网可用 IP 数不足,无法创建任务,请检查私有网络内子网资源:当出现该报错提示时,您需要调整私有网络子网内可用的 IP 数量,以保证目标私有网络内子网内有足够的 IP。​
目标库配置​
选择已有数据源​
您可以按需选择是否使用已录入的实例:​
  • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理。​
  • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。​
​
实例类型​
选择 Supabase。​
​
接入方式​
选择火山引擎 Supabase。​
​
地域​
选择目标实例所属地域。​
​
Workspace​
输入 Workspace 的 ID 信息。​
​
Branch​
输入分支 ID 信息。​
​
数据库名称​
输入数据库名称。​
​
数据库账号​
输入数据库账号信息。​
​
数据库密码​
输入数据库账号对应的数据库密码。​
​
测试连接​
单击测试连接,验证是否成功连接实例。​
当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:​
  • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认用户名和密码的准确性。​
  • 连接认证失败,无法正常创建连接, 请联系客服:当出现该报错提示时,请提交工单联系技术支持。​
Project 与计费​
​
项目​
(可选)从下拉列表中选择该任务所属项目,默认在 default(默认项目) 下。您也可以单击创建新项目,创建新的项目。​
说明​
  • 关于如何授予子用户访问指定项目下资源的权限操作步骤,请参见修改项目权限。​
  • 成功创建任务后,如果需要修改实例的所属项目,例如将任务从当前项目移入至其他项目,您可以将资源移入指定项目。详细操作,请参见资源移入项目。​
  • 项目是一个虚拟的概念,包括一组资源、用户和角色。通过项目可以对一组资源进行统一的查看和管理,并且控制项目内用户和角色对这些资源的权限。​
​
标签​
(可选)单击添加标签,为实例添加标签,标签可帮您实现云资源的分类、云资源的访问控制、账单与成本分摊等。标签由一个键值对(Key-Value)组成,用于标识云资源,可以帮助您从不同维度(例如用途、所有者等)对具有相同特征的云资源进行分类,便于筛选和聚合,从而轻松管理云上资源。关于标签的详细信息,请参见标签概述。标签的键值对规则如下:​
  • 键​
  • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。​
  • 大小写敏感,且长度在 1~128 个字符内。​
  • 使用 UTF-8 编码的 Unicode 格式。​
  • 不支持设置以 volc: 开头的任何形式的 Key,例如 Volc:、VOLC: 等。​
  • (可选)值​
  • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。​
  • 大小写敏感,且长度在 0~256 个字符内。​
  • 使用 UTF-8 编码的 Unicode 格式。​
说明​
  • 支持模糊搜索选择已有标签键和标签值。​
  • 单次最多可给任务绑定 20 个标签。单个任务最多可绑定 50 个标签。​
  • 同一个资源拥有的标签 Key 不可重复,且一个标签 Key 只有一个值 Value。​
​
计费方式​
当前仅支持按量计费,您无需选择。​
说明​
关于计费的详细信息,请参见计费说明。​
​
  1. 单击下一步:配置迁移对象。​
  1. 在配置迁移对象配置向导页面,按需配置以下参数信息。​
​
参数​
​
说明​
迁移模块​
​
按需选择迁移 Supabase 的迁移模块,取值如下:​
  • 数据库:用于存放文字、数字类结构化数据,如用户信息、账号资料、表单数据、业务记录,支持数据查询、修改、统计与权限管控。​
  • 存储对象:用于存放图片、视频、文档、附件等各类文件资源,负责文件上传、下载、存储与访问管理。​
数据库​
迁移类型​
按需选择迁移类型,当前支持结构迁移和全量迁移。​
​
选择对象​
在左侧源对象列表中,支持通过正则表达式精准定位目标库表(若需全局搜索,请先展开所有对象节点)。在右侧已选择对象区域,支持通过模糊搜索快速筛选,并可对已选库表进行批量删除操作。​
存储对象​
迁移类型​
当前仅支持全量迁移。​
​
选择对象​
在左侧源对象列表中,支持通过正则表达式精准定位目标存储对象(若需全局搜索,请先展开所有对象节点)。在右侧已选择对象区域,支持通过模糊搜索快速筛选,并可对已选存储对象进行批量删除操作。​
高级配置​
错误重试时间​
暂不支持设置该参数,默认为 600 秒。当源库和目标库断连后导致同步任务失败时,会立即在指定时间内多次重试连接源库和目标库。​
​
  1. 单击预检查。​
  1. (可选)当创建的任务已有预检查时,您可以根据以下提示确认是否重新发起预检查,当需要重新发起预检查时,请在是否重新发起预检查对话框,单击确定。​
  • 若源端和目标端的数据库实例未做修改,则无需再次发起预检查。​
  • 如果修改了源端、目标端的数据库实例信息或同步任务的参数配置,那么建议您重新发起预检查,否则可能会导致任务启动失败或者任务中断。​
  1. 在预检查配置向导页面,根据检查结果执行以下操作:​
  • 单击预检查结果操作列的详情,查看详细的告警和失败信息,并根据告警或失败信息修改库表后,单击重试。​
  • 单击操作列的忽略,忽略本次告警继续启动同步任务。同时,也可以单击忽略全部,一键忽略全部告警信息。​
  • 选择忽略告警并启动同步任务,可能导致数据不一致,带来业务风险。​
  • 关于预检查的具体说明,请参见预检查项。​
  1. 在预检查页面右下角,单击确认订单。​
  1. 在确认订单配置向导页面,再次确认配置信息。阅读《数据库产品和服务条款》并勾选我已阅读并同意《数据库产品和服务条款》,然后单击创建并启动任务。​
成功创建数据同步任务后,您可以返回 DTS 控制台,在数据同步任务列表查看数据同步任务的信息。​
FAQ​
源端对象在迁移期间被删除怎么办?​
迁移期间不建议对源端对象进行任何变更。如果在迁移过程中源端对象被删除,该对象将无法正常同步到目标端,可能导致最终数据缺失。建议在业务低峰期执行迁移,并尽量暂停对源端数据的写入或删除操作。​
为什么需要源端 PostgreSQL 连接?​
连接源端 PostgreSQL 是为了获取更稳定、高效的对象清单。通过直接读取 Supabase Storage 的元数据表(storage.buckets 和 storage.objects),可以避免单纯依赖 Storage List API 在大容量 Bucket 或对象频繁变更时出现的分页漂移问题,同时显著降低 API 调用的开销与延迟。​
为什么目标端需要支持 TUS 协议?​
目标端支持 TUS 协议是为了保障大文件的可靠传输。针对大文件,迁移任务会采用基于 TUS 协议的分片断点续传(Resumable Upload)机制。如果目标端不支持该能力,大文件的迁移可能会因网络波动等原因导致传输失败,且无法自动恢复。​
最近更新时间:2026.10.14 15:25:19
这个页面对您有帮助吗?
有用
有用
无用
无用