检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
通过创建事件触发器和函数实现PostgreSQL增量DDL同步 本小结介绍PostgreSQL->RDS for PostgreSQL实时同步,通过在源库创建事件触发器和函数获取源库的DDL信息,然后在DRS增量实时同步阶段实现DDL操作的同步。 前提条件 当前支持的DDL操作包含如下:
为什么实时灾备任务不支持触发器(TRIGGER)和事件(EVENT) 数据库的触发器(TRIGGER)和事件(EVENT)操作会记录binlog,DRS通过解析binlog同步数据,如果业务侧写入与触发器、事件存在同样对象,就会发生重复执行导致数据不一致或者任务失败,所以在灾备场景下,触发器和事件是不支持的。
源库服务器计算机名是否一致 Microsoft SQL Server为源同步场景 表1 源数据库和目标数据库计算机名是否不同 预检查项 源数据库和目标数据库计算机名是否不同。 描述 源数据库和目标数据库存在相同的计算机名,不符合迁移要求。 不通过提示及处理建议 不通过原因:源数据库连接失败,导致该项检查无法进行。
测试自建MySQL性能 登录华为云管理控制台。 单击管理控制台左上角的,选择区域“华南-广州”。 单击页面左上角,选择“计算 > 弹性云服务器 ECS”。 单击“ecs-client”弹性云服务器后的“远程登录”。 在弹出的远程连接界面中单击“CloudShell”。 输入弹性云
创建VPC和安全组 创建VPC和安全组,为创建MySQL服务器和GaussDB(for MySQL)实例准备好网络资源和安全组。 创建VPC 登录华为云管理控制台。 单击管理控制台左上角的,选择区域“华南-广州”。 单击页面左上角,选择“网络 > 虚拟私有云 VPC”。 进入虚拟私有云信息页面。
安装社区版MySQL 初始化磁盘并安装社区版MySQL。 登录弹性云服务器 登录华为云管理控制台。 单击管理控制台左上角的,选择区域“华南-广州”。 单击页面左上角,选择“计算 > 弹性云服务器 ECS”。 在弹性云服务器名称“ecs-mysql”所在行单击“远程登录”。 选择“CloudShell登录”。
创建ECS并安装MySQL客户端 请参考创建ECS(MySQL服务器)创建MySQL客户端的弹性云服务器。 确保和MySQL服务器所在ECS配置成相同Region、相同可用区、相同VPC、相同安全组。 不用购买数据盘。 云服务器名配置为:ecs-client。 其他参数同MySQL服务器的ECS配置。
源数据库中是否存在非ASCII字符的触发器名 MySQL迁移场景 表1 源数据库中是否存在非ASCII字符的触发器名 预检查项 源数据库中是否存在非ASCII字符的触发器名。 描述 源数据库中不能存在非ASCII字符的触发器名,若存在,可能会导致迁移失败。 待确认提示及处理建议
UGO结构迁移阶段3:触发器、事件、任务、外键、sequence 选择UGO结构迁移阶段2:普通索引的UGO任务,在对象校正页面,勾选触发器、事件、任务、外键,单击“撤销跳过”,让其迁移状态处于“手工修改”。 对于外键需要选择左侧对象列表勾选。 单击“下一步”进入迁移验证页面,单击启动,确保迁移成功。
column以及truncate table的基本DDL,不支持默认值等的修改。 增量DDL新增的字段不会自动扩展字符长度。 增量同步时,不支持重命名表、在线重定义表、交换分区。 增量同步阶段,修改抓取任务的启动位点主要用于重新同步数据。 修改抓取位点之后,上一次对象级对比结果不会展示出来。 单
column以及truncate table的基本DDL,不支持默认值等的修改。 增量DDL新增的字段不会自动扩展字符长度。 增量同步时,不支持重命名表、在线重定义表、交换分区。 增量同步阶段,修改抓取任务的启动位点主要用于重新同步数据。 修改抓取位点之后,上一次对象级对比结果不会展示出来。 单
column以及truncate table的基本DDL,不支持默认值等的修改。 增量DDL新增的字段不会自动扩展字符长度。 增量同步时,不支持重命名表、在线重定义表、交换分区。 增量同步阶段,修改抓取任务的启动位点主要用于重新同步数据。 修改抓取位点之后,上一次对象级对比结果不会展示出来。 单
源库参数lower_case_table_names=1时,为什么不允许迁移包含大写字母的库或者表 场景描述 当源库参数lower_case_table_names=1时,无法迁移包含大写字母的库或者表。 问题分析 当源库的lower_case_table_names 参数值为1
column以及truncate table的基本DDL,不支持默认值等的修改。 增量DDL新增的字段不会自动扩展字符长度。 增量同步时,不支持重命名表、在线重定义表、交换分区。 增量同步阶段,修改抓取任务的启动位点主要用于重新同步数据。 修改抓取位点之后,上一次对象级对比结果不会展示出来。 单
同步到GaussDB(DWS)的使用建议 增量DDL支持度 MySQL、Oracle等数据库语法与GaussDB(DWS)不同,增量阶段DDL同步存在失败的可能性,部分DDL转换规则可参考表1,建议在方案实施前联系GaussDB(DWS)技术支持评估DDL的支持度。 表1 DDL转换规则
源数据库和目标数据库表名大小写敏感性检查 MySQL迁移时,源数据库和目标数据库lower_case_table_names参数设置不一致。lower_case_table_names的参数值为0时,表示数据库大小写敏感;当lower_case_table_names 参数值为1
为什么DRS不支持部分他云只读实例的备库做源库 对于DRS的增量或者全量+增量任务,不支持部分他云只读实例的备库做源库进行数据迁移。DRS增量迁移是通过读取源数据库的原始增量日志数据(例如MySQL的Binlog)后解析转换进行 。 以MySQL的Binlog为例,部分他云只读M
单AZ转双AZ任务 DRS支持单AZ任务转为双AZ任务,在保证原来任务运行的情况下提高了任务的可靠性。 约束限制 DRS仅支持单AZ任务变更为双AZ任务,双AZ任务无法变更为单AZ任务。 仅支持增量中、增量失败、暂停状态的任务进行变更。 目前仅支持GaussDB主备版->Kafka的同步任务进行变更。
操作流程 构建MySQL服务器、购买RDS实例,并且将MySQL服务器数据迁移到RDS实例的整个流程的主要任务流如图1所示。 图1 流程图 父主题: 自建MySQL迁移到RDS for MySQL
操作流程 构建MySQL服务器、购买GaussDB(for MySQL)实例,并且将MySQL服务器数据迁移到GaussDB(for MySQL)实例的整个流程的主要任务流如图1所示。 图1 流程图 父主题: ECS自建MySQL迁移到GaussDB(for MySQL)