上云无忧 > 文档中心 > 天翼云数据库复制操作类常见问题QA
数据库复制
天翼云数据库复制操作类常见问题QA

文档简介:
Q:源库参数lower_case_table_names=1时,为什么不允许迁移包含大写字母的库或者表? A:场景描述 当源库参数lower_case_table_names=1时,无法迁移包含大写字母的库或者表。
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

Q:源库参数lower_case_table_names=1时,为什么不允许迁移包含大写字母的库或者表?

A:场景描述

当源库参数lower_case_table_names=1时,无法迁移包含大写字母的库或者表。

问题分析

当源库的lower_case_table_names 参数值为1时,MySQL会将库名或者表名转换成小写再进行查找。若存在以大写字母形式创建的库或者表,那么在lower_case_table_names参数值为1的情况下,MySQL将无法找到这个库或表,报告查询失败。也就是说,若lower_case_table_names的参数值为1时,大写字母的库或表很可能是不可访问的。

解决方案

目前针对该情况,分别提供如下解决方案:

方法一

修改源库lower_case_table_names的参数值为0 (即大小写敏感),并且保证源库与目标库的该参数值一致。

方法二

若无法永久修改lower_case_table_names,可临时将源库lower_case_table_names修改为0,然后执行如下操作。

对于表,可以使用如下语句将表名转换为小写:

alter table `BigTab` rename to `bigtab`

对于库,则需要导出后,修改库名为小写,再进行导入。


修改库名或表名之后,需要维护权限的一致性,以免影响应用访问。

方法三

对象选择时不迁移该库或者该表。


Q:设置的密码不符合目标库的密码复杂度要求时,如何修改密码强度?

A:操作场景

用户在设置迁移用户密码时,设置的密码不符合目标库的密码复杂度要求,需要按照用户密码复杂度的要求进行密码设置。

操作步骤

以下操作适用于目标数据库为RDS实例的情况。

步骤1:登录关系型数据库服务控制台。

步骤2:选择指定目标数据库实例。

步骤3:单击实例名称。

步骤4:页面跳转至“基本信息”页签,切换至“参数修改”页面。

步骤5:在页面右上角搜索框,输入关键字“password”,查看搜索结果。

步骤6:在步骤5的搜索结果中,对于错误!未找到引用源。列举的参数,需要根据密码负责度要求进行修改,确保各参数在密码复杂度允许的范围内。

表6-2 密码参数


参数

允许值

说明

validate_password_length

02,147,483,647

validate_password插件校验的密码的最小字符数。

validate_password_mixed_case_count

02,147,483,647

指定当密码策略为MEDIUM(中)或更高时,为通过validate_password校验,密码至少需包含多少个大小写字符。

validate_password_number_count

02,147,483,647

指定当密码策略为MEDIUM(中)或更高时,为通过validate_password校验,密码至少需包含多少个数字。

validate_password_policy

LOW, MEDIUM, STRONG

validate_password插件执行的密码策略。

validate_password_special_char_count

02,147,483,647

指定当密码策略为MEDIUM(中)或更高时,为通过validate_password校验,密码至少需包含多少个非字母数字字符。

步骤7:密码复杂度修改完成后,保存修改结果。

步骤8:返回数据库复制服务的“迁移模式”页面,继续执行下一步操作即可。


Q:如何批量导出、导入事件(event)和触发器(trigger)?

A:在进行MySQL到MySQL的迁移时,由于数据库复制服务暂时不支持事件和触发器的迁移,需要在迁移结束后将源数据库的事件和触发器导出,手动导入目标数据库中。

本小节主要介绍批量导出导入事件和触发器的具体操作:

步骤1:从源库批量导出触发器。

1.在源库执行以下语句,获取TRIGGER_SCHEMA和TRIGGER_NAME。

SELECT TRIGGER_SCHEMA,TRIGGER_NAME  FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA in ('DB1','DB2','DB3') order by TRIGGER_NAME;

上述语句中,DB1,DB2,DB3分别表示从源库待迁移到目标库的数据库。

2.在源库执行如下语句,从字段SQL Original Statement中获取源库创建触发器的语句。

SHOW CREATE TRIGGER TRIGGER_SCHEMA.TRIGGER_NAME \G;

上述语句中,TRIGGER_SCHEMA.TRIGGER_NAME填写的为步骤1.1中查询到的TRIGGER_SCHEMA和TRIGGER_NAME具体值。

步骤2:从源库批量导出事件。

1.在源库执行以下语句,获取EVENT_SCHEMA和EVENT_NAME。

SELECT EVENT_SCHEMA,EVENT_NAME  FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA in ('DB1','DB2','DB3') order by EVENT_NAME;

上述语句中,DB1,DB2,DB3分别表示从源库待迁移到目标库的数据库。

2.在源库执行如下语句,从字段SQL Original Statement中获取源库创建事件的语句。

SHOW CREATE EVENT EVENT_SCHEMA.EVENT_NAME \G;

上述语句中,EVENT_SCHEMA.EVENT_NAME填写的为步骤2.1中查询到的EVENT_SCHEMA和EVENT_NAME具体值。

步骤3:导入触发器和事件。

在目标库重新执行从源库导出的创建触发器和创建事件语句。


Q:MySQL源库设置了global binlog_format = ROW没有立即生效?

A:使用DRS进行MySQL的增量迁移或同步时,必须确保源库的binlog_format是ROW格式的,否则就会导致任务失败甚至数据丢失。在源库设置了global级别的binlog_format=ROW之后,还需要中断之前所有的业务连接,因为设置之前的连接使用的还是非ROW格式的binlog写入。

安全设置global级binlog_format=ROW的步骤:

步骤1:通过MySQL官方客户端或者其它工具登录源数据库。

步骤2:在源数据库上执行全局参数设置命令。

set global binlog_format = ROW;

步骤3:在源数据库上执行如下命令确认上面操作已执行成功。

select @@global.binlog_format;

步骤4:您可以通过如下两种方式确保修改后的源库binlog_format格式立即生效。

方法一:

1.选择一个非业务的时间段,中断当前数据库上的所有业务连接。

a.通过如下命令查询当前数据库上的所有业务连接(所有的Binlog Dump连接及当前连接除外)。

show processlist

b.中断上面查出的所有业务连接。

说明:在上述操作未结束之前,请不要创建或者启动迁移任务,否则会导致数据不一致。

2.为了避免源库binlog_format格式因为数据库重启失效,请在源库的启动配置文件(my.ini或my.cnf等)中添加或修改配置参数binlog_format并保存。

binlog_format=ROW

方法二:

1.为了避免源库binlog_format格式因为数据库重启失效,请在源库的启动配置文件(my.ini或my.cnf等)中添加或修改配置参数binlog_format并保存。

binlog_format=ROW

2.确保上述配置参数binlog_format添加或修改成功后,选择一个非业务时间段,重启源数据库即可。

相似文档
  • 数据管理服务(Data Admin Service,简称DAS),提供天翼云上数据库操作的Web服务,具备数据库实例同步及管理、数据库登录、数据管理、结构管理、SQL窗口、用户管理、会话管理等功能,方便用户使用和运维天翼云数据库。目前仅支持MySQL引擎。
  • 天翼云数据管理服务使用说明如图所示
  • 在创建和使用数据管理服务之前,您需要先注册天翼云门户的账号。本节将介绍如何进行账号注册,如果您拥有天翼云的账号,可直接登录账号,在服务列表直接选择“数据管理服务DAS”。
  • 管理控制台默认展示实例列表信息。目前仅支持MySQL引擎的RDS数据库实例。新增数据库登录, 您可通过创建实例连接,对数据库进行数据管理操作。
  • 1、在数据管理服务实例列表页面,单击“新增数据库登录”,弹出新增数据库登录窗口。 2、选择数据库类型、数据库来源、目标实例,填写登录用户名、密码、备注(非必填项)信息。建议您先通过“测试连接”来验证数据库连通性。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部