PolarDB-X中迁移postgresql到polar_pg对于源postgresql有什么要求?sqlsugar不支持?
您好,自建PostgreSQL数据迁移至PolarDB PostgreSQL版可以通过该数据传输服务DTS实现,在数据迁移中对于源PostgreSQL有如下限制:
带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移速率。
待迁移的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。
待迁移的数据库名称中间不能包含短划线(-),例如dts-testdata。
如迁移对象为表级别,且需进行编辑(如表列名映射),则单次迁移任务仅支持迁移至多1000张表。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待迁移的表,分批配置多个任务,或者配置整库的迁移任务。
如需进行增量迁移,WAL日志:
需开启,即设置wal_level参数的值为logical。
如为增量迁移任务,DTS要求源数据库的WAL日志保存24小时以上,如为全量迁移和增量迁移任务,DTS要求源数据库的WAL日志至少保留7天以上(您可在全量迁移完成后将WAL日志保存时间设置为24小时以上),否则DTS可能因无法获取WAL日志而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的WAL日志保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。
源库的操作限制:
如自建PostgreSQL进行主备切换,会导致迁移失败。
在全量迁移阶段,请勿执行库或表结构变更的DDL操作,否则数据迁移任务会失败。
如仅执行全量数据迁移,请勿向源库中写入新的数据,否则会导致源和目标数据不一致。为实时保持数据一致性,建议选择全量数据迁移和增量数据迁移。
若源库有长事务,且实例包含增量迁移任务,则可能会导致源库长事务提交前的预写日志WAL(Write-Ahead Logging)无法清理而堆积,从而造成源库磁盘空间不足。
更多的详细内容可以参考文档:文档
当将 PostgreSQL 数据库迁移到 PolarDB-X 的 polar_pg 时,对源 PostgreSQL 数据库有一些要求和限制。以下是一些常见的要求:
版本兼容性:确保源 PostgreSQL 数据库的版本与目标 PolarDB-X 数据库(polar_pg)的版本兼容。不同版本之间可能存在语法和功能差异,因此需要进行相应的调整和测试。
数据完整性和一致性:在迁移过程中,确保源数据库中的数据在开始和结束时保持一致。建议在启动迁移之前暂停或限制对源数据库的写入操作,以确保在迁移期间数据的一致性。
数据大小和存储需求:考虑源 PostgreSQL 数据库中的数据大小和存储需求,以便在 PolardDB-X 中分配足够的存储空间,并根据需要进行扩展。
数据库对象和架构:检查源数据库中的所有数据库对象(如表、索引、触发器等)及其所属的架构。确保这些对象在目标数据库中可以正确创建,并且数据迁移后的结构和关系仍然有效。
数据类型和函数:某些特定的 PostgreSQL 数据类型和函数可能在 PolardDB-X 中具有不同的行为或语法。请确保源数据库中使用的数据类型和函数在目标数据库中也可用,并适应任何变化或差异。
触发器和存储过程:源数据库中的触发器和存储过程需要进行适当的迁移和调整,以便在目标数据库中正确执行。
权限和用户:确保在迁移过程中将源数据库中的权限和用户正确映射到 PolardDB-X 的 polar_pg 中,并确保迁移后的访问控制与源数据库一致。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 采用 Shared-nothing 与存储计算分离架构,支持水平扩展、分布式事务、混合负载等能力,100%兼容MySQL。 2021年开源,开源历程及更多信息访问:OpenPolarDB.com/about