云服务器内容精选

  • 使用须知 为了确保录制回放任务各个阶段的平顺,在创建任务前,请务必阅读以下使用须知。 表2 使用须知 类型名称 使用和操作限制 任务启动前须知 源数据库要求: 目前支持源数据库为自建MySQL或者其他云MySQL(如RDS,POLARDB等),可以开启并能够导出审计日志或者洞察日志的实例。 源数据库已完成SQL流量文件录制,并且上传到华为云OBS桶内,DRS任务从OBS桶获取相应的流量文件。 目标数据库要求: 目前仅支持目标数据库为GaussDB(for MySQL)。 目标数据库已构建基线数据,基线数据应尽量还原源数据库录制流量文件时的真实状态,基线数据越接近,录制回放越真实。 流量文件要求: 流量文件SQL内容包含内容分隔符(例如:^^)时,可能存在解析异常导致任务回放失败。 流量文件必须保证全量SQL结构完整,如果头文件被截断,会导致部分SQL解析被忽略。 流量文件单条SQL大小不能超过1MB。 事务中穿插了其他语句可能会导致死锁。 上传的流量文件仅支持.gz和.zip的压缩格式。 其他使用须知: 源数据库和目标数据库的配置参数不一致(例如:innodb_buffer_pool_size,sqlmode等),可能会导致回放进度慢或失败等情况。 再编辑操作如果删除或者新增了流量文件,需要在重置任务时勾选解析重置,再重新进行回放,可参考重置回放任务。 流量回放过程为并发执行,DDL语句和DML语句在同一个batch(10s)内,可能存在顺序打乱执行的情况。 解析阶段须知 解析文件选择完成后,不支持文件重命名操作。 回放阶段须知 回放SQL类型要求:目前仅支持SELECT、INSERT、DELETE、UPDATE、DDL。 结束任务须知 已结束的任务无法再次启动。
  • 支持的迁移对象范围 在使用DRS进行迁移时,不同类型的迁移任务,支持的迁移对象范围不同,详细情况可参考表3。DRS会根据用户选择,在“预检查”阶段对迁移对象进行自动检查。 表3 支持的迁移对象 类型名称 使用须知 迁移对象范围 支持选择表级迁移。 目前只支持迁移源库的数据,不支持迁移源库表结构及其他数据库对象。 仅支持MyISAM和InnoDB表的迁移。 不支持系统库的迁移以及事件状态的迁移。 不支持无主键表的迁移。 不支持宽松模式可以写入但严格模式下无法写入的非标浮点类型的数据的迁移,这种非标浮点类型数据可能会有无法命中的风险导致数据迁移失败。 源数据库为MySQL 8.0版本时,不支持迁移带有函数索引的表。 全量和增量迁移不支持隐藏列(INVISIBLE),隐藏列是MySQL 8.0.23开始支持的特性,例如: CREATE TABLE `test11` ( `id` int NOT NULL, `c1` int DEFAULT NULL /*!80023 INVISIBLE */, PRIMARY KEY (`id`)); 源库为DDM实例时,则不允许存在拆分键为timestamp类型的表。
  • 数据库账号权限要求 在使用DRS进行迁移时,连接源库和目标库的数据库账号需要满足以下权限要求,才能启动实时迁移任务。不同类型的迁移任务,需要的账号权限也不同,详细可参考表2进行赋权。DRS会在“预检查”阶段对数据库账号权限进行自动检查,并给出处理建议。 表2 数据库账号权限 类型名称 全量迁移 全量+增量迁移 源数据库连接账号 源物理分片数据库账号需要具备如下权限: SELECT、SHOW VIEW、EVENT。 源物理分片数据库账号需要具备如下权限: SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 目标数据库连接账号 目标中间件账户需要具备以下基本权限:CREATE、DROP、ALTER、 INDEX、 INSERT、DELETE、 UPDATE、 SELECT, 同时必须具备扩展权限:全表SELECT权限。 目标中间件账户必须具备对所迁移数据库的权限。 建议创建单独用于DRS任务连接的数据库账号,避免因为数据库账号密码修改,导致的任务连接失败。 连接源和目标数据库的账号密码修改后,请尽快修改DRS任务中的连接信息,避免任务连接失败后自动重试,导致数据库账号被锁定影响使用。
  • 注意事项 为保证任务的正常运行,DRS提供了自动化的检查方法,在您启动DRS任务前,会针对源数据库和目标数据库的相关配置、条件进行检查。主要的检查项和对应的处理建议请参考DRS预检查项一览表。除了预检查项目之外,您还需要注意的事情如表4所示 表4 注意事项 类型名称 使用和操作限制 源数据库限制 如果源数据库为自建库,并且安装了Percona Server for MySQL 5.6.x或Percona Server for MySQL 5.7.x时,内存管理器必须使用Jemalloc库,以避免因系统表频繁查询带来的内存回收不及时,并最终导致数据库Out of Memory问题。 源数据库不支持mysql binlog dump命令。 源数据库不支持reset master或reset master to命令,可能会导致DRS任务失败或者数据不一致。 相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。 由于MySQL本身限制,若源库的一次性事件(EVENT)设定的触发时间在迁移开始前,该事件(EVENT)不会迁移到目标库。 使用限制 通用: 整个迁移过程中,不允许修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。 整个迁移过程中,不允许对正在迁移中的目标数据库进行修改操作(包括但不限于DDL、DML操作)。 整个迁移过程中,不允许源库执行清除binlog的操作。 整个迁移过程中,不允许源端DDM正在迁移的表做改变拆分键的操作;也不允许将单表/广播表改为拆分表,拆分表改为单表/广播表。 全量迁移阶段: 任务启动和全量数据迁移阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 增量迁移阶段: 选择表级对象迁移时,增量迁移过程中不支持对表进行重命名操作。 增量迁移阶段,不支持源数据库进行恢复到某个备份点的操作(PITR)。 增量迁移阶段,支持断点续传功能,在主机系统崩溃的情况下,对于非事务性的无主键的表可能会出现重复插入数据的情况。 增量迁移阶段,支持部分DDL语句,包括:ADD COLUMN、CREATE TABLE、CREATE INDEX、DROP INDEX、RENAME INDEX、ADD INDEX。 增量迁移阶段,对同一张表或列做DDL操作,需要在业务低峰期,并且时间间隔1分钟以上。 结束任务: 当目标DDM版本大于3.0.4.1版本,结束任务时,DRS会自动刷新DDM的自增列(sequence)起始值。 其他限制 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建迁移任务。 数据类型不兼容时,可能引起迁移失败。 对于表中的物理生成列,如果列是根据一个时间类型生成的,会存在此列数据不一致的可能性。 源库的表如果包含系统列_ddm_lock、_slot,该列下的数据在全量、增量迁移过程中都会被过滤,导致数据丢失。 任务创建后,源数据库不支持增加逻辑库或修改旧逻辑库关联新的RDS,否则会导致数据无法正常迁移或任务失败。 目标库实例若选择将时间戳类型(TIMESTAMP,DATETIME)的列作为分片键,则源库数据在迁移到目标库之后,作为分片键的该时间戳类型列的秒精度将被丢弃。
  • 使用建议 DRS任务启动和全量数据同步阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 为保证同步前后数据一致性,确保同步期间目标数据库无业务写入。 数据库同步与环境多样性和人为操作均有密切关系,为了确保同步的平顺,建议您在进行正式的数据库同步之前进行一次演练,可以帮助您提前发现问题并解决问题。 基于以下原因,建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰期,相对静止的数据可以有效提升一次性同步成功率,避免同步对业务造成性能影响。 在网络无瓶颈的情况下,全量同步会对源数据库增加约50MB/s的查询压力,以及占用2~4个CPU。 正在同步的数据被其他事务长时间锁死,可能导致读数据超时。 DRS并发读取数据库,会占用大约6-10个session连接数,需要考虑该连接数对业务的影响。 全量阶段读取表数据时,特别是大表的读取,可能会阻塞业务上对大表的独占锁操作。 更多DRS对数据库的影响,可参考DRS对源数据库和目标数据库有什么影响。 数据对比 建议您结合数据对比的“稍后启动”功能,选择业务低峰期进行数据对比,以便得到更为具有参考性的对比结果。由于同步具有轻微的时差,在数据持续操作过程中进行对比任务,可能会出现少量数据不一致对比结果,从而失去参考意义。
  • 操作步骤 下载Easy-RSA。 下载后请解压缩软件压缩包。 打开Easy-RSA shell。 打开命令行窗口,切换到软件所在目录,执行“.\EasyRSA-Start.bat”命令。 图1 打开Easy-RSA shell 初始化PKI环境。 执行“./easyrsa init-pki”命令,生成PKI,自动创建名为“pki”的文件夹。 (可选)配置变量参数。 默认按配置模板“vars.example”中描述的参数值进行配置。如需自定义参数值,先将“vars.example”复制到“pki”文件夹下并重命名为“vars”,再按需设置参数值。 图2 配置变量参数 生成CA证书。 执行“ ./easyrsa build-ca nopass”命令生成CA证书,存放在“pki”文件夹中。 生成服务端证书和私钥。 执行 “./easyrsa build-server-full filename_base nopass”命令生成服务端证书和私钥。 此命令中,“filename_base”为证书的CN,请根据实际填写。 “filename_base”必须是域名格式,否则无法正常托管到云证书管理服务,示例如下: ./easyrsa build-server-full p2cvpn.server nopass 生成客户端证书和私钥。 执行“ ./easyrsa build-client-full filename_base nopass”命令生成客户端证书和私钥。 查看服务端、客户端证书和私钥。 生成的服务端和客户端证书默认存放在“issued”文件夹中,生成的服务端和客户端的私钥默认存放在“private”文件夹中。 图3 查看证书和私钥
  • iOS客户端 此处以安装OpenVPN Connect(3.4.1)为例,不同软件版本的安装界面可能存在差异,请以实际为准。 在App Store搜索“OpenVPN Connect”,下载并安装。 下载客户端配置,在“client_config.ovpn”文件中添加客户端证书及私钥,然后通过OpenVPN Connect打开,按照界面提示添加客户端配置。 图11 导入配置文件 出现类似下图所示界面,代表连接成功。 图12 连接成功
  • Mac客户端(OpenVPN Connect) 此处以安装OpenVPN Connect(3.4.0.4506)为例,不同软件版本的安装界面可能存在差异,请以实际为准。 在OpenVPN官方网站下载OpenVPN Connect,根据硬件规格选择对应安装程序。 图5 选择安装包 根据界面提示,完成软件安装。 图6 安装OpenVPN Connect 启动OpenVPN Connect客户端,导入已添加客户端证书及私钥的配置文件,填写配置信息后尝试连接。 图7 导入配置文件 出现类似下图所示界面,代表连接成功。 图8 连接成功
  • Mac客户端(Tunnelblick) 此处以安装Tunnelblick(3.8.8d)为例,不同软件版本的安装界面可能存在差异,请以实际为准。 前往官方网站下载Tunnelblick。 您可以根据实际需要下载适用的版本,推荐使用正式版本。下载软件时推荐下载DMG格式的软件,可以直接安装使用。 安装Tunnelblick。 图2 安装Tunelblick 启动Tunnelblick客户端,将已添加客户端证书及私钥的配置文件上传至Tunnelblick客户端,建立VPN连接。 图3 上传客户端配置文件 出现类似下图所示界面,代表连接成功。 图4 连接成功
  • Windows客户端(OpenVPN Connect) 此处以安装OpenVPN Connect 3.3.4(2600)为例,不同软件版本的安装界面可能存在差异,请以实际为准。 在OpenVPN官方网站下载OpenVPN Connect,根据界面提示进行安装。 启动OpenVPN Connect客户端,支持以下两种方式添加配置信息。 方式1:使用配置文件(已添加客户端证书及私钥)建立VPN连接 方式2:使用原始配置文件(未添加客户端证书及私钥)+USB-Key的组合 初始化USB-Key。 此处以使用龙脉mToken GM3000管理员工具(v2.2.19.619)制作USB-Key为例。USB-Key初始化成功后如下图所示,此时需要插拔一下USB设备。 将证书导入USB-Key。 使用USB-Key建立VPN连接。 在OpenVPN Connect中添加USB-Key,单击“CONNECT”。 建连过程中,USB-Key需要保持插入状态。 建连成功后,拔出USB-Key,连接不会中断,需要手动断连;USB-Key拔出后,重新建连将失败。 出现类似下图所示界面,代表连接成功。 图1 连接成功
  • Linux客户端 此处以在Ubuntu(20.04.6-live-server-amd64)操作系统上安装OpenVPN为例,不同Linux系统的安装命令可能存在差异,请以实际为准。 打开命令行窗口。 执行以下命令安装OpenVPN客户端。 yum install -y openvpn 将已添加客户端证书及私钥的客户端配置文件内容复制至/etc/openvpn/conf/目录。 进入/etc/openvpn/conf/目录,执行以下命令建立VPN连接。 openvpn --config /etc/openvpn/conf/config.ovpn --daemon
  • 操作步骤 在“终端入云VPN网关”页面,单击目标VPN网关操作列的“配置服务端”。 根据界面提示配置参数,然后单击“确定”。 本示例仅对关键参数进行说明,全量参数请参见配置服务端。 表1 服务端参数说明 区域 参数 说明 取值样例 基本信息 本端网段 客户端需要访问的目标网段。 支持“选择子网”和“输入网段”两种方式。 192.168.1.0/24 客户端网段 分配给客户端虚拟网卡地址的网段。 172.16.0.0/16 认证信息 服务端证书 选择服务端证书。 cert-scsxxxxxxxxxxxxx 客户端CA证书 需要先单击“上传CA证书”进行上传操作。 如果存在多级CA证书,需要将证书链的所有CA证书都上传。 ca-cert-xxxx 高级配置 协议 保持默认。 UDP 端口 保持默认。 443 加密算法 保持默认 AES-128-GCM
  • 数据规划 表1 规划数据 类别 规划项 规划值 VPC 待互通子网 192.168.0.0/16 VPN网关 互联子网 用于VPN网关和VPC通信,请确保选择的互联子网存在3个及以上可分配的IP地址。 192.168.2.0/24 EIP地址 EIP地址在购买EIP时由系统自动生成 本示例假设EIP地址生成如下:11.xx.xx.11 服务端 本端网段 192.168.1.0/24 服务端证书 cert-scsxxxxxxxxxxxxx(使用云证书管理服务托管的服务端证书名称) SSL参数 协议:UDP 端口:443 加密算法:AES-128-GCM 认证算法:SHA256 是否压缩:否 客户端 客户端网段 172.16.0.0/16 客户端CA证书 ca-cert-xxxx(上传CA证书时自定义证书名称)
  • 操作流程 通过VPN实现客户端远程接入VPC的操作流程如图1所示。 图1 操作流程 表2 操作流程说明 序号 步骤 说明 1 步骤1:创建VPN网关 VPN网关需要绑定EIP作为出口公网IP。 如果您已经购买EIP,则此处可以直接绑定使用。 2 步骤2:配置服务端 指定客户端需要访问的网段(本端网段)和客户端访问时使用的网段(客户端网段)。 选择服务端证书和客户端CA证书,用于建立VPN连接时的身份认证。 配置VPN连接的SSL参数(协议、端口、认证算法、加密算法等)。 3 步骤3:配置客户端 从控制台下载客户端配置,对配置文件进行修改后导入对应的VPN客户端软件。 4 步骤4:验证连通性 打开客户端设备的命令行窗口,执行ping命令,验证连通性。
  • 数据规划 表1 规划数据 类别 规划项 规划值 VPC 待互通子网 192.168.0.0/16 VPN网关 互联子网 用于VPN网关和VPC通信,请确保选择的互联子网存在4个及以上可分配的IP地址。 192.168.2.0/24 HA模式 双活 EIP地址 EIP地址在购买EIP时由系统自动生成,VPN网关默认使用2个EIP。本示例假设EIP地址生成如下: 主EIP:11.xx.xx.11 主EIP2:11.xx.xx.12 VPN连接 Tunnel接口地址 用于VPN网关和对端网关建立IPsec隧道,配置时两边需要互为镜像。 VPN连接1:169.254.70.1/30 VPN连接2:169.254.71.1/30 数据中心 待互通子网 172.16.0.0/16 对端网关 网关IP地址 网关IP地址由运营商统一分配。本示例假设网关IP地址如下: 22.xx.xx.22 Tunnel接口地址 VPN连接1:169.254.70.2/30 VPN连接2:169.254.71.2/30