文档简介:
通用型问题
Q:数据库复制服务是什么?
A:数据库复制服务(Data Replication Service,简称DRS)是一种易用、稳定、高效、用于数据库在线迁移和数据库实时同步的云服务。
数据库复制服务围绕云数据库,降低了数据库之间数据流通的复杂性,有效地帮助您减少数据传输的成本。
您可以通过数据库复制服务快速地解决多种场景下数据库之间的数据流通问题,以满足数据传输业务需求。
Q:数据库复制服务的操作日志在哪里查看?
A:数据库复制服务的操作日志属于操作审计类日志,用户可以登录到云审计服务(Cloud Trace Service,简称CTS)页面,查看当前用户在Console页面单击的页面操作,主要是涉及任务变更的管理类操作。
Q:数据库复制服务支持哪些数据库迁移?
A:数据库复制服务目前对MySQL数据库支持如下版本的数据库迁移,只支持同数据库版本之间,或低版本到高版本的迁移。
MySQL 5.5.x
MySQL 5.6.x
MySQL 5.7.x
数据库复制服务目前对Microsoft SQL Server数据库支持标准版和企业版的如下版本的数据库迁移。
Microsoft SQL Server 2008
Microsoft SQL Server 2012
Microsoft SQL Server 2014
数据库复制服务目前对PostgreSQL数据库支持如下版本的数据库迁移。
PostgreSQL 9.5.x
PostgreSQL 9.6.x
数据库复制服务目前对MongoDB数据库支持如下版本的数据库迁移。
MongoDB 3.2.x
MongoDB 3.4.x
Q:如何判断数据迁移任务可以停止?
A:1.查看迁移状态:在增量迁移进行一段时间后,复制延迟时间降为0S,且通过查看迁移对比数据,确定源数据库和目标数据库的数据一致。
2.选择切换时间:确定增量迁移数据一致后,选择一个业务低谷期,先暂停源数据库一段时间(一分钟左右),然后将应用切换连接到云上的数据库。
3.结束任务:完成以上操作后,在迁移任务列表单击“结束”按钮来结束相应迁移任务,迁移任务结束后,系统会断开数据库复制服务与用户数据库的所有连接。
Q:数据库复制服务是否支持关系型数据库的HA实例迁移?
A:数据库复制服务支持目标数据库为关系型数据库的单实例和HA实例类型的迁移。
Q:数据库复制服务对源数据库有什么要求?
A:在线迁移请参考《使用限制》
Q:数据库复制服务对目标数据库有什么要求?
A:在创建MySQL数据库的迁移任务时,用户填写的连接目标数据库的用户,需具备如下权限:
SELECT
INSERT
UPDATE
DELETE
在创建Microsoft SQL Server数据库的迁移任务时,用户填写的连接目标数据库的用户,需具备如下权限:
PROCESSADMIN ROLE
SETUPADMIN ROLE
Q:如何将源数据库的用户与权限导出,再导入到天翼云关系型数据库MySQL
A:选择一台可以访问源数据库的虚拟机,执行如下命令,导出源数据库中原有用户的授权信息。
mysql -h 'host' -B -u 'user' -p 'pwd' -N $@ -e "SELECT CONCAT('SHOW GRANTS FOR ''', user, '''@''', host, ''';') AS query FROM mysql.user" | mysql -h 'host' -u 'user' -p 'pwd' $@ | sed 's/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/-- \1 /;/--/{x;p;x;}' > ./grants.sql
其中的'host' 替换为源数据库的访问IP地址,'user' 替换为源数据库的用户名,'pwd' 替换为源数据库的密码。
步骤1中命令运行成功后,打开“grants.sql”文件可以看到类似以下的结果。
-- Grants for root@%
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
-- Grants for testt@%
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'testt'@'%';
-- Grants for debian-sys-maint@localhost
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' WITH GRANT OPTION;
-- Grants for mysql.session@localhost
GRANT SUPER ON *.* TO 'mysql.session'@'localhost';
GRANT SELECT ON `performance_schema`.* TO 'mysql.session'@'localhost';
GRANT SELECT ON `mysql`.`user` TO 'mysql.session'@'localhost';
-- Grants for mysql.sys@localhost
GRANT USAGE ON *.* TO 'mysql.sys'@'localhost';
GRANT TRIGGER ON `sys`.* TO 'mysql.sys'@'localhost';
GRANT SELECT ON `sys`.`sys_config` TO 'mysql.sys'@'localhost';
-- Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION;
在步骤2显示的结果中,可以看到源数据库中所有的用户以及对应的权限,请选择所有需要的用户,逐个添加到天翼云关系型数据库MySQL中,具体操作请参考《关系型数据库用户指南》中的“创建账号”章节。
Q:哪些情况下会出现目标数据库重启?
A:数据库迁移上云时,当目标数据库版本为MySQL5.6,且进行增量迁移时,则在启动任务或者结束任务的过程中目标数据库将被重启一次,可能会中断数据库业务的使用。
修改数据库后,到SDK的用户端消费一般有多长时间的延迟
如果用户消费没有延迟,1s内就可以收到这条变更。
Q:DRS界面信息重叠是什么原因?
A:DRS界面出现信息重叠通常是页面缩放率过小导致的,建议将页面缩放率调整为100%即可显示正常。
Q:扩大带宽是否会对DRS正在进行中的任务产生影响
A:扩大云连接带宽时需要重建带宽链路,则会导致网络断开,此时是否会对DRS任务产生影响取决于网络断开的时间以及源库IP有没有发生变化。例如针对MySQL引擎而言,如果网络断开1天,而在这1天时间内源库binlog被清理了(MySQL都有binlog清理策略,用户侧自己配置的),就无法进行任务续传,需要重置任务。如果网络中断的时间很短,并且带宽链路更换完成后源库的VPN内的IP地址没有变,则是可以继续续传任务,不会对DRS任务产生影响。
Q:多对一的场景约束及操作建议
A:因业务需要,不同实例、不同表的数据需要进行合并时,数据复制服务提供的数据迁移支持多对一的场景。
操作建议
为避免创建任务过程中出现空间不足问题,建议提前计算源数据库的数据量总和,根据该总和一次性规划目标实例的磁盘空间,剩余磁盘空间需大于源库实际数据量大小的总和(例如“源系统1”数据量大小为1GB,“源系统2”数据量大小为3GB,“源系统3”数据量大小为6GB,则目标实例的剩余磁盘空间应该大于10GB)。
对于MySQL引擎,目标端参数的设置需要考虑整体资源的提升,建议使用第一个任务的参数对比功能中“常规参数”的“一键修改”(其中max_connections除外),而“性能参数”应该结合目标端实际规格做相应的手工设置。
多对一数据迁移
数据迁移是以整体数据库搬迁为目的,可以实现实例级多对一迁移,不支持源端具有同名的数据库,不支持库名映射。
多对一数据迁移
操作流程
创建任务时,为方便多对一任务间的相互识别,请在创建顺序上确保第一个任务进入全量迁移后再创建第二个任务,具体操作请参见:快速入门。
操作流程
Q:为什么MariaDB和 SysDB下的数据不迁移
A:由于某些MariaDB的版本把SysDB库作为其系统库(类似于MySQL官方版5.7的sys库),所以DRS默认也将SysDB作为所有MariaDB的系统库来处理(等同于MySQL、information_schema、performance_schema等库)。如果SysDB确实是业务库,您可以通过工单申请处理。