• 关于 数据访问对象模式 的搜索结果

回答

1、 Visitor pattern访问者被称为行为模式,因为它用于管理对象之间的算法,关系和责任。 “原始四人帮”中关于DesignPatterns的书中提供的访客定义指出:允许在运行时将一个或多个操作应用于一组对象,从而将操作与对象结构分离。2、访问者模式实际上做的是创建一个使用其他类中的数据的外部类。 如果需要跨一组dispate对象执行操作,则Visitor可能是您的模式。 GoF书中说,访客模式可以为类提供额外的功能而无需更改。3、主要是实际的数据结构与最后的数据操作对象分离,实际的访问者各自可以定义自己的逻辑代码。

徐雷frank 2019-12-02 01:49:10 0 浏览量 回答数 0

回答

云存储网关(Cloud Storage Gateway:简称CSG)是一款可以部署在用户本地数据中心和阿里云上的网关产品。它以阿里云对象存储(OSS)为后端存储,为云上和云下应用提供业界标准的文件服务(NFS和SMB)和块存储服务(iSCSI)。 云存储网关目前提供两种形态: 文件网关 文件网关将OSS Bucket的对象结构与NAS文件系统的目录/文件建立映射关系。用户通过标准的NFS和SMB协议即可读写指定OSS Bucket里的对象。并且利用本地存储空间作为热数据缓存,使用户在享受OSS Bucket海量空间的同时,保障数据访问的高性能。文件网关还高度兼容POSIX和第三方备份软件。如果是小文件的备份和共享读写场景,推荐使用标准型或基础型文件网关;如果对性能有一定要求或者同时有多个客户端访问数据的用户,推荐使用增强型/性能型文件网关。 块网关 块网关在OSS中创建存储卷,提供Internet小型计算机系统接口(iSCSI)协议访问。本地应用程序可将这些卷作为iSCSI目标进行访问。块网关提供两种模式:透传模式和缓存模式。透传模式可以将块卷数据切片同步上云,适用于专线等高速链路客户;缓存模式提供本地缓存盘进行读写加速,缓存数据异步上云,适用于期望本地快速访问但是上云链路慢的客户。 产品架构 云存储网关的云上服务和部署在客户数据中心的存储网关实例可以形成存储网关集群。通过这个集群,文件数据可以在云上集群和线下集群之间自由流动,帮助实现数据和业务的协同迁移,典型的场景有文件备份、数据分发和容灾。同时通过集群也可以实现在多个物理机房快速发布数据。 作为一个轻量级的存储网关,可在用户本地的数据中心部署,也可在阿里云上部署。 应用场景 文件网关 在本地存储有限的情况下搭建一个海量文件系统的文件存储服务。 将数据以对象形式存储在云端,但希望应用仍然以文件系统的方式访问文件而不需修改代码。 在多个数据中心,通过文件存储服务的方式访问共享文件夹。 块网关 通过备份软件备份数据到云上且备份软件支持iSCSI高效传输。 将视频流数据通过iSCSI访问方式导入存储卷上,实现云上存储。

1934890530796658 2020-03-31 11:08:46 0 浏览量 回答数 0

回答

不同的数据库连接数据库的方式不同,但是大体分为几种:ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。DAO(Data Access Objects):数据访问对象是用来显露了Microsoft Jet数据库引擎(最早是给Microsoft Access 所使用,现在已经支持其它数据库),并允许开发者通过ODBC直接连接到其他数据库一样,直接连接到 Access 表。DAO 最适用于单系统应用程序或在小范围本地分布使用。其内部已经对Jet数据库的访问进行了加速优化,而且其使用起来也是很方便的。所以如果数据库是Access数据库且是本地使用的话,建议使用这种访问方式---应用的专一性RDO(Remote Data Objects)远程数据对象是一个到ODBC的、面向对象的数据访问接口,它同易于使用的DAO style组合在一起,提供了一个接口,形式上展示出所有ODBC的底层功能和灵活性。尽管RDO在很好地访问Jet或ISAM数据库方面受到限制,而且它只能通过现存的ODBC驱动程序来访问关系数据库。但是,RDO已被证明是许多SQL Server、Oracle 以及其他大型关系数据库开发者经常选用的最佳接口。RDO提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。---无疑是在odbc基础上的OLE DB 是 Microsoft 的一个战略性系统级编程接口,用于管理整个组织内的数据。OLE DB 是建立在 ODBC 功能之上的一个开放规范。ODBC 是为访问关系型数据库而专门开发的,OLE DB 则用于访问关系型和非关系型信息源,例如主机 ISAM/VSAM 和层次数据库,电子邮件和文件系统存储,文本、图形和地理数据以及自定义业务对象。 OLE DB 定义了一组 COM 接口,对各种数据库管理系统服务进行封装,并允许创建软件组件,实现这些服务。OLE DB 组件包括数据提供程序(包含和表现数据)、数据使用者(使用数据)和服务组件(处理和传送数据,例如,查询处理器和游标引擎)。OLE DB 接口有助于平滑地集成组件,这样,OLE DB 组件厂商就可以快速地向市场提供高质量 OLE DB 组件。此外,OLE DB 包含了一个连接 ODBC 的“桥梁”,对现用的各种 ODBC 关系型数据库驱动程序提供一贯的支持。---号称取代odbc,但也兼容odbcADO(ActiveX Data Object)是DAO/RDO的后继产物。ADO 2.0在功能上与RDO更相似,而且一般来说,在这两种模型之间有一种相似的映射关系。ADO"扩展"了DAO和 RDO 所使用的对象模型,这意味着它包含较少的对象、更多的属性、方法(和参数),以及事件。 作为最新的数据库访问模式,ADO的使用也是简单易用,所以微软已经明确表示今后把重点放在ADO上,对DAO/RDO不再作升级,所以ADO已经成为了当前数据库开发的主流。 ADO涉及的数据存储有DSN(数据源名称)、ODBC(开放式数据连接)以及OLE DB三种方式。后面的例程将详细讲解这三种方式的具体访问实现。---可以说是对odbc,oledb这些系统级的编程接口的汇接,并对DAO,RDO这些应用级的编程接口的升级吧。

卓刀 2019-12-02 00:38:22 0 浏览量 回答数 0

消息队列 RocketMQ 9.9元包月起

消息队列 RocketMQ 9.9元包月起,另含2000万次API 免费调用额度

回答

弹簧AOP: 弹簧的关键组成部分之一是AOP框架。AOP 在弹簧中使用: 提供声明性企业服务,特别是作为 EJB 声明性服务的替换。最重要的服务是声明性事务管理,它建立在Spring的事务抽象之上。 允许用户实现自定义方面,使用 AOP 补充对 OOP 的使用 弹簧 ORM: ORM包与数据库访问相关。它为流行的对象关系映射 API(包括 JDO、Hibernate 和 iBatis)提供集成层。 春网: 春网模块是Spring的Web应用程序开发堆栈的一部分,其中包括Spring MVC。 Spring DAO:Spring 中的 DAO(数据访问对象)支持主要是使用 JDBC、Hibernate 或 JDO 等技术标准化数据访问工作。 Spring上下文 :此包基于 bean 包构建,以添加对消息源和观察者设计模式的支持,以及应用程序对象使用一致的 API 获取资源的能力。 Spring Web MVC: 这是为 Web 应用程序提供 MVC 实现的模块。 弹簧核心: 核心包是弹簧框架中导入最多的组件。 此组件提供依赖项注入功能。BeanFactory 提供了一种工厂模式,该模式将对象的初始化、创建和访问等依赖关系与实际的程序逻辑分开。

YDYK 2020-04-25 14:35:16 0 浏览量 回答数 0

回答

MongoDB 的设计目标是高性能、可扩展、易部署、易使用,存储数据非常方便。其主要功能特性如下。(1)面向集合存储,容易存储对象类型的数据。在MongoDB 中数据被分组存储在集合中,集合类似RDBMS 中的表,一个集合中可以存储无限多的文档。(2)模式自由,采用无模式结构存储。在MongoDB 中集合中存储的数据是无模式的文档,采用无模式存储数据是集合区别于RDBMS 中的表的一个重要特征。(3)支持完全索引,可以在任意属性上建立索引,包含内部对象。MongoDB的索引和RDBMS 的索引基本一样,可以在指定属性、内部对象上创建索引以提高查询的速度。除此之外,MongoDB 还提供创建基于地理空间的索引的能力。(4)支持查询。MongoDB 支持丰富的查询操作,MongoDB 几乎支持SQL中的大部分查询。(5)强大的聚合工具。MongoDB 除了提供丰富的查询功能外,还提供强大的聚合工具,如count、group 等,支持使用MapReduce 完成复杂的聚合任务。(6)支持复制和数据恢复。MongoDB 支持主从复制机制,可以实现数据备份、故障恢复、读扩展等功能。而基于副本集的复制机制提供了自动故障恢复的功能,确保了集群数据不会丢失。(7)使用高效的二进制数据存储,包括大型对象(如视频)。使用二进制格式存储,可以保存任何类型的数据对象。(8)自动处理分片,以支持云计算层次的扩展。MongoDB 支持集群自动切分数据,对数据进行分片可以使集群存储更多的数据,实现更大的负载,也能保证存储的负载均衡。(9)支持Perl、PHP、Java、C#、JavaScript、Ruby、C 和C++语言的驱动程序,MongoDB 提供了当前所有主流开发语言的数据库驱动包,开发人员使用任何一种主流开发语言都可以轻松编程,实现访问MongoDB 数据库。(10)文件存储格式为BSON(JSON 的一种扩展)。BSON 是对二进制格式的JSON 的简称,BSON 支持文档和数组的嵌套。(11)可以通过网络访问。可以通过网络远程访问MongoDB 数据库。 答案来源于网络

养狐狸的猫 2019-12-02 03:01:28 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档使用 数据传输服务 DTS 可以将本地 MySQL 实例的数据迁移到 RDS for MySQL 实例。数据传输服务 DTS (以下简称 DTS) 提供的增量数据同步功能,可以实现在本地应用不停服的情况下,平滑完成 MySQL 数据的迁移工作。 本小节简单介绍使用 DTS 进行本地 MySQL->RDS for MySQL 数据迁移的任务配置流程。 迁移步骤对于本地 MySQL->RDS for MySQL 的数据迁移,DTS 支持结构迁移、全量数据迁移及增量数据迁移,这个迁移类型的功能及限制如下: 结构迁移 数据传输会将迁移对象的结构定义迁移到目标实例。目前 DTS 支持结构迁移的对象有:表、视图、触发器、存储过程、存储函数。 全量数据迁移 全量迁移将本地 MySQL 实例的存量数据全部迁移到目标 RDS for MySQL 实例。 如果用户只进行全量数据迁移,那么迁移过程中本地 MySQL 实例新增的业务写入不会被同步到目标 RDS for MySQL 实例。 增量数据迁移 增量数据迁移会将全量数据迁移过程中,本地 MySQL 实例的增量变更数据同步到目标 RDS for MySQL 实例,增量数据迁移可以实现本地 MySQL 实例在迁移过程中产生的增量数据被实时同步到目标库,最终实现本地 MySQL 实例同目标 RDS for MySQL 实例进入动态数据同步的过程。 迁移限制 迁移过程中,不支持 DDL 操作结构迁移不支持 event 的迁移对于MySQL的浮点型float/double,DTS通过round(column,precision)来读取该列的值,若列类型没有明确定义其精度,对于float,精度为38位,double类型,精度为308,请先确认DTS的迁移精度是否符合业务预期如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败当选择增量迁移时,源端的本地 MySQL 实例需要按照要求开启 binlog当选择增量迁移时,源库的 binlog_format 要为 row当选择增量迁移且源 MySQL 如果为 5.6 及以上版本时,它的 binlog_row_image 必须为 full当选择增量迁移时,增量迁移过程中如果源MySQL实例出现因实例跨机迁移或跨机重建等导致的binlog 文件ID乱序,可能导致增量迁移数据丢失 迁移权限要求当使用 DTS 进行本地 MySQL->RDS for MySQL迁移时,在不同迁移类型,对源端和目标端 MySQL 实例的迁移帐号权限要求如下: 迁移类型 结构迁移 全量迁移 增量迁移 本地 MySQL 实例 select select superselectreplication slavereplication client 目标端 RDS for MySQL 实例 读写权限 读写权限 读写权限 迁移流程DTS 在进行本地 MySQL->RDS for Mysql 数据迁移时,为了解决对象间的依赖关系,提高迁移成功率。结构对象及数据的迁移顺序如下: 结构对象:表、视图的迁移全量数据迁移结构对象:存储过程、函数、触发器、外键的迁移增量数据迁移 如果任务没有选择增量数据迁移,那么当全量数据迁移完成后,任务列表中的迁移进度为:结构迁移 100%,全量迁移 100%,迁移状态为“迁移中”。此时迁移任务正在进行步骤(3) 中的对象的迁移。此时,请勿手动结束任务,否则会造成迁移数据丢失。 迁移任务配置下面详细介绍使用 DTS 将本地 MySQL 实例中的数据迁移到阿里云 RDS for MySQL 实例的任务配置流程。 RDS for MySQL 实例数据库创建在数据迁移过程中,如果待迁移的数据库在目标 RDS 实例中不存在,那么 DTS 自动会创建。但是对于如下两种情况,用户需要在配置迁移任务之前,手动创建数据库。 数据库名称不符合 RDS 定义规范(由小写字母、数字、下划线、中划线组成,字母开头,字母或数字结尾,最长 64 个字符)。待迁移数据库,在源端本地 MySQL 和目标端 RDS for MySQL 实例中名称不同。 对于这两种情况,用户需要在配置迁移任务之前,先在 RDS 控制台完成数据库创建。具体参考 RDS使用手册 - 创建数据库”。 迁移帐号创建迁移任务配置,需要提供本地 MySQL 数据库及目标 RDS for MySQL 实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求 部分。 如果源端 MySQL 实例迁移账号尚未创建,那么您可以参考 Grant 语法说明,创建满足权限要求的迁移账号。 如果目标端 RDS for MySQL 实例迁移账号创建,那么您可以参考 RDS 账号创建流程,创建对待迁移数据库有读写权限的迁移账号。 其他准备工作如果需要进行增量迁移,那么需要确认源库的 binlog 是否开启,格式是否满足要求。具体确认项如下。 确认源库的 binlog 是否开启。 如果这里面查询出来的 log_bin=OFF,则说明源库没有开启 binlog,这个时候如果需要使用增量迁移的话,需要修改本地 MySQL 的 binlog 配置,打开 binlog 日志。 开启二进制日志,修改 log_bin=mysql_bin。设置 binlog 模式为 row,修改 binlog_format=row。配置 server_id 大于 1,即 server_id=某一个大于 1 的整数。如果版本为 5.6,修改 binlog_row_image=full。修改完成后,重启 MySQL 进程。 确认源库的 binlog 格式为 row 模式。 使用上面的命令确认本地 MySQL 的 binlog 格式是否为 ROW,如果查询出来的结果不为 ROW 的话,那么通过如下的参数设置命令将模式修改为 ROW。 当修改完成后,建议将源库上已有的连接 KILL 掉,并且重新连接,否则可能出现其他的连接依然使用 statement 格式记录 binlog 日志。 当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full。 如果查询出来的结果不为 FULL 的话,那么通过如下的参数设置命令将其修改为 FULL。 迁移任务配置当数据库、迁移账号都创建完成后,就可以开始配置迁移任务了。下面详细介绍下具体的配置步骤。 进入 数据传输 DTS 控制台,点击右上角的 创建迁移任务,开始任务配置。本地 MySQL 实例及目标 RDS for MySQL 实例连接信息配置。 在这个步骤中,主要配置迁移任务名称,迁移源实例及目标实例连接信息。其中: 任务名称 默认情况下,DTS 为每个任务自动生成一个任务名称。任务名称没有唯一性要求,您可以修改这个名称,为任务配置一个具有业务意义的名称,便于后续的任务识别。 源实例连接信息 实例类型:选择 有公网 IP 的自建数据库数据库类型:选择 MySQL主机名或 IP 地址:配置本地 MySQL 数据库实例的访问地址,这个地址必须为公网访问方式端口:MySQL 实例监听端口账号:MySQL 实例访问账号密码:上面指定的 MySQL 访问账号对应的密码 目标 RDS for MySQL 实例连接信息。 实例类型:选择 RDS 实例RDS 实例 ID: 配置迁移的目标 RDS 实例的实例 ID。 DTS 支持经典网络、VPC 网络的 RDS for MySQL 实例数据库账号:RDS for MySQL 实例的连接账号数据库密码:上面指定的数据库账号对应的数据库密码 迁移对象及迁移类型配置。 迁移类型 DTS 支持 结构迁移、全量数据迁移、增量数据迁移。 如果需要进行不停机迁移,那么需要选择:结构迁移+全量数据迁移+增量数据迁移。 如果只进行全量迁移,那么需要选择:结构迁移+全量数据迁移。 迁移对象 迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。 默认情况下,对象迁移到 RDS for MySQL 实例后,对象名跟本地 MySQL 实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用 DTS 提供的对象名映射功能,详细使用方式可以参考 库表列映射。 当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤 预检查。 在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。 如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。 启动迁移任务。 当预检查通过后,我们可以启动迁移任务,任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。 增量数据迁移是个动态同步的过程,所以建议在增量迁移达到无延迟状态时,在目标数据库上进行业务验证,如果验证成功,那么可以停掉迁移任务,然后将业务切换到目标数据库。 至此,完成将本地 MySQL 数据库实例到阿里云 RDS for MySQL 的数据迁移任务配置。

2019-12-01 23:09:41 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档使用 数据传输服务 DTS 可以将本地 MySQL 实例的数据迁移到 RDS for MySQL 实例。数据传输服务 DTS (以下简称 DTS) 提供的增量数据同步功能,可以实现在本地应用不停服的情况下,平滑完成 MySQL 数据的迁移工作。 本小节简单介绍使用 DTS 进行本地 MySQL->RDS for MySQL 数据迁移的任务配置流程。 迁移步骤对于本地 MySQL->RDS for MySQL 的数据迁移,DTS 支持结构迁移、全量数据迁移及增量数据迁移,这个迁移类型的功能及限制如下: 结构迁移 数据传输会将迁移对象的结构定义迁移到目标实例。目前 DTS 支持结构迁移的对象有:表、视图、触发器、存储过程、存储函数。 全量数据迁移 全量迁移将本地 MySQL 实例的存量数据全部迁移到目标 RDS for MySQL 实例。 如果用户只进行全量数据迁移,那么迁移过程中本地 MySQL 实例新增的业务写入不会被同步到目标 RDS for MySQL 实例。 增量数据迁移 增量数据迁移会将全量数据迁移过程中,本地 MySQL 实例的增量变更数据同步到目标 RDS for MySQL 实例,增量数据迁移可以实现本地 MySQL 实例在迁移过程中产生的增量数据被实时同步到目标库,最终实现本地 MySQL 实例同目标 RDS for MySQL 实例进入动态数据同步的过程。 迁移限制 迁移过程中,不支持 DDL 操作结构迁移不支持 event 的迁移对于MySQL的浮点型float/double,DTS通过round(column,precision)来读取该列的值,若列类型没有明确定义其精度,对于float,精度为38位,double类型,精度为308,请先确认DTS的迁移精度是否符合业务预期如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败当选择增量迁移时,源端的本地 MySQL 实例需要按照要求开启 binlog当选择增量迁移时,源库的 binlog_format 要为 row当选择增量迁移且源 MySQL 如果为 5.6 及以上版本时,它的 binlog_row_image 必须为 full当选择增量迁移时,增量迁移过程中如果源MySQL实例出现因实例跨机迁移或跨机重建等导致的binlog 文件ID乱序,可能导致增量迁移数据丢失 迁移权限要求当使用 DTS 进行本地 MySQL->RDS for MySQL迁移时,在不同迁移类型,对源端和目标端 MySQL 实例的迁移帐号权限要求如下: 迁移类型 结构迁移 全量迁移 增量迁移 本地 MySQL 实例 select select superselectreplication slavereplication client 目标端 RDS for MySQL 实例 读写权限 读写权限 读写权限 迁移流程DTS 在进行本地 MySQL->RDS for Mysql 数据迁移时,为了解决对象间的依赖关系,提高迁移成功率。结构对象及数据的迁移顺序如下: 结构对象:表、视图的迁移全量数据迁移结构对象:存储过程、函数、触发器、外键的迁移增量数据迁移 如果任务没有选择增量数据迁移,那么当全量数据迁移完成后,任务列表中的迁移进度为:结构迁移 100%,全量迁移 100%,迁移状态为“迁移中”。此时迁移任务正在进行步骤(3) 中的对象的迁移。此时,请勿手动结束任务,否则会造成迁移数据丢失。 迁移任务配置下面详细介绍使用 DTS 将本地 MySQL 实例中的数据迁移到阿里云 RDS for MySQL 实例的任务配置流程。 RDS for MySQL 实例数据库创建在数据迁移过程中,如果待迁移的数据库在目标 RDS 实例中不存在,那么 DTS 自动会创建。但是对于如下两种情况,用户需要在配置迁移任务之前,手动创建数据库。 数据库名称不符合 RDS 定义规范(由小写字母、数字、下划线、中划线组成,字母开头,字母或数字结尾,最长 64 个字符)。待迁移数据库,在源端本地 MySQL 和目标端 RDS for MySQL 实例中名称不同。 对于这两种情况,用户需要在配置迁移任务之前,先在 RDS 控制台完成数据库创建。具体参考 RDS使用手册 - 创建数据库”。 迁移帐号创建迁移任务配置,需要提供本地 MySQL 数据库及目标 RDS for MySQL 实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求 部分。 如果源端 MySQL 实例迁移账号尚未创建,那么您可以参考 Grant 语法说明,创建满足权限要求的迁移账号。 如果目标端 RDS for MySQL 实例迁移账号创建,那么您可以参考 RDS 账号创建流程,创建对待迁移数据库有读写权限的迁移账号。 其他准备工作如果需要进行增量迁移,那么需要确认源库的 binlog 是否开启,格式是否满足要求。具体确认项如下。 确认源库的 binlog 是否开启。 如果这里面查询出来的 log_bin=OFF,则说明源库没有开启 binlog,这个时候如果需要使用增量迁移的话,需要修改本地 MySQL 的 binlog 配置,打开 binlog 日志。 开启二进制日志,修改 log_bin=mysql_bin。设置 binlog 模式为 row,修改 binlog_format=row。配置 server_id 大于 1,即 server_id=某一个大于 1 的整数。如果版本为 5.6,修改 binlog_row_image=full。修改完成后,重启 MySQL 进程。 确认源库的 binlog 格式为 row 模式。 使用上面的命令确认本地 MySQL 的 binlog 格式是否为 ROW,如果查询出来的结果不为 ROW 的话,那么通过如下的参数设置命令将模式修改为 ROW。 当修改完成后,建议将源库上已有的连接 KILL 掉,并且重新连接,否则可能出现其他的连接依然使用 statement 格式记录 binlog 日志。 当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full。 如果查询出来的结果不为 FULL 的话,那么通过如下的参数设置命令将其修改为 FULL。 迁移任务配置当数据库、迁移账号都创建完成后,就可以开始配置迁移任务了。下面详细介绍下具体的配置步骤。 进入 数据传输 DTS 控制台,点击右上角的 创建迁移任务,开始任务配置。本地 MySQL 实例及目标 RDS for MySQL 实例连接信息配置。 在这个步骤中,主要配置迁移任务名称,迁移源实例及目标实例连接信息。其中: 任务名称 默认情况下,DTS 为每个任务自动生成一个任务名称。任务名称没有唯一性要求,您可以修改这个名称,为任务配置一个具有业务意义的名称,便于后续的任务识别。 源实例连接信息 实例类型:选择 有公网 IP 的自建数据库数据库类型:选择 MySQL主机名或 IP 地址:配置本地 MySQL 数据库实例的访问地址,这个地址必须为公网访问方式端口:MySQL 实例监听端口账号:MySQL 实例访问账号密码:上面指定的 MySQL 访问账号对应的密码 目标 RDS for MySQL 实例连接信息。 实例类型:选择 RDS 实例RDS 实例 ID: 配置迁移的目标 RDS 实例的实例 ID。 DTS 支持经典网络、VPC 网络的 RDS for MySQL 实例数据库账号:RDS for MySQL 实例的连接账号数据库密码:上面指定的数据库账号对应的数据库密码 迁移对象及迁移类型配置。 迁移类型 DTS 支持 结构迁移、全量数据迁移、增量数据迁移。 如果需要进行不停机迁移,那么需要选择:结构迁移+全量数据迁移+增量数据迁移。 如果只进行全量迁移,那么需要选择:结构迁移+全量数据迁移。 迁移对象 迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。 默认情况下,对象迁移到 RDS for MySQL 实例后,对象名跟本地 MySQL 实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用 DTS 提供的对象名映射功能,详细使用方式可以参考 库表列映射。 当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤 预检查。 在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。 如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。 启动迁移任务。 当预检查通过后,我们可以启动迁移任务,任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。 增量数据迁移是个动态同步的过程,所以建议在增量迁移达到无延迟状态时,在目标数据库上进行业务验证,如果验证成功,那么可以停掉迁移任务,然后将业务切换到目标数据库。 至此,完成将本地 MySQL 数据库实例到阿里云 RDS for MySQL 的数据迁移任务配置。

2019-12-01 23:09:40 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档使用 数据传输服务 DTS 可以将本地 MySQL 实例的数据迁移到 RDS for MySQL 实例。数据传输服务 DTS (以下简称 DTS) 提供的增量数据同步功能,可以实现在本地应用不停服的情况下,平滑完成 MySQL 数据的迁移工作。 本小节简单介绍使用 DTS 进行本地 MySQL->RDS for MySQL 数据迁移的任务配置流程。 迁移步骤对于本地 MySQL->RDS for MySQL 的数据迁移,DTS 支持结构迁移、全量数据迁移及增量数据迁移,这个迁移类型的功能及限制如下: 结构迁移 数据传输会将迁移对象的结构定义迁移到目标实例。目前 DTS 支持结构迁移的对象有:表、视图、触发器、存储过程、存储函数。 全量数据迁移 全量迁移将本地 MySQL 实例的存量数据全部迁移到目标 RDS for MySQL 实例。 如果用户只进行全量数据迁移,那么迁移过程中本地 MySQL 实例新增的业务写入不会被同步到目标 RDS for MySQL 实例。 增量数据迁移 增量数据迁移会将全量数据迁移过程中,本地 MySQL 实例的增量变更数据同步到目标 RDS for MySQL 实例,增量数据迁移可以实现本地 MySQL 实例在迁移过程中产生的增量数据被实时同步到目标库,最终实现本地 MySQL 实例同目标 RDS for MySQL 实例进入动态数据同步的过程。 迁移限制 迁移过程中,不支持 DDL 操作结构迁移不支持 event 的迁移对于MySQL的浮点型float/double,DTS通过round(column,precision)来读取该列的值,若列类型没有明确定义其精度,对于float,精度为38位,double类型,精度为308,请先确认DTS的迁移精度是否符合业务预期如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败当选择增量迁移时,源端的本地 MySQL 实例需要按照要求开启 binlog当选择增量迁移时,源库的 binlog_format 要为 row当选择增量迁移且源 MySQL 如果为 5.6 及以上版本时,它的 binlog_row_image 必须为 full当选择增量迁移时,增量迁移过程中如果源MySQL实例出现因实例跨机迁移或跨机重建等导致的binlog 文件ID乱序,可能导致增量迁移数据丢失 迁移权限要求当使用 DTS 进行本地 MySQL->RDS for MySQL迁移时,在不同迁移类型,对源端和目标端 MySQL 实例的迁移帐号权限要求如下: 迁移类型 结构迁移 全量迁移 增量迁移 本地 MySQL 实例 select select superselectreplication slavereplication client 目标端 RDS for MySQL 实例 读写权限 读写权限 读写权限 迁移流程DTS 在进行本地 MySQL->RDS for Mysql 数据迁移时,为了解决对象间的依赖关系,提高迁移成功率。结构对象及数据的迁移顺序如下: 结构对象:表、视图的迁移全量数据迁移结构对象:存储过程、函数、触发器、外键的迁移增量数据迁移 如果任务没有选择增量数据迁移,那么当全量数据迁移完成后,任务列表中的迁移进度为:结构迁移 100%,全量迁移 100%,迁移状态为“迁移中”。此时迁移任务正在进行步骤(3) 中的对象的迁移。此时,请勿手动结束任务,否则会造成迁移数据丢失。 迁移任务配置下面详细介绍使用 DTS 将本地 MySQL 实例中的数据迁移到阿里云 RDS for MySQL 实例的任务配置流程。 RDS for MySQL 实例数据库创建在数据迁移过程中,如果待迁移的数据库在目标 RDS 实例中不存在,那么 DTS 自动会创建。但是对于如下两种情况,用户需要在配置迁移任务之前,手动创建数据库。 数据库名称不符合 RDS 定义规范(由小写字母、数字、下划线、中划线组成,字母开头,字母或数字结尾,最长 64 个字符)。待迁移数据库,在源端本地 MySQL 和目标端 RDS for MySQL 实例中名称不同。 对于这两种情况,用户需要在配置迁移任务之前,先在 RDS 控制台完成数据库创建。具体参考 RDS使用手册 - 创建数据库”。 迁移帐号创建迁移任务配置,需要提供本地 MySQL 数据库及目标 RDS for MySQL 实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求 部分。 如果源端 MySQL 实例迁移账号尚未创建,那么您可以参考 Grant 语法说明,创建满足权限要求的迁移账号。 如果目标端 RDS for MySQL 实例迁移账号创建,那么您可以参考 RDS 账号创建流程,创建对待迁移数据库有读写权限的迁移账号。 其他准备工作如果需要进行增量迁移,那么需要确认源库的 binlog 是否开启,格式是否满足要求。具体确认项如下。 确认源库的 binlog 是否开启。 如果这里面查询出来的 log_bin=OFF,则说明源库没有开启 binlog,这个时候如果需要使用增量迁移的话,需要修改本地 MySQL 的 binlog 配置,打开 binlog 日志。 开启二进制日志,修改 log_bin=mysql_bin。设置 binlog 模式为 row,修改 binlog_format=row。配置 server_id 大于 1,即 server_id=某一个大于 1 的整数。如果版本为 5.6,修改 binlog_row_image=full。修改完成后,重启 MySQL 进程。 确认源库的 binlog 格式为 row 模式。 使用上面的命令确认本地 MySQL 的 binlog 格式是否为 ROW,如果查询出来的结果不为 ROW 的话,那么通过如下的参数设置命令将模式修改为 ROW。 当修改完成后,建议将源库上已有的连接 KILL 掉,并且重新连接,否则可能出现其他的连接依然使用 statement 格式记录 binlog 日志。 当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full。 如果查询出来的结果不为 FULL 的话,那么通过如下的参数设置命令将其修改为 FULL。 迁移任务配置当数据库、迁移账号都创建完成后,就可以开始配置迁移任务了。下面详细介绍下具体的配置步骤。 进入 数据传输 DTS 控制台,点击右上角的 创建迁移任务,开始任务配置。本地 MySQL 实例及目标 RDS for MySQL 实例连接信息配置。 在这个步骤中,主要配置迁移任务名称,迁移源实例及目标实例连接信息。其中: 任务名称 默认情况下,DTS 为每个任务自动生成一个任务名称。任务名称没有唯一性要求,您可以修改这个名称,为任务配置一个具有业务意义的名称,便于后续的任务识别。 源实例连接信息 实例类型:选择 有公网 IP 的自建数据库数据库类型:选择 MySQL主机名或 IP 地址:配置本地 MySQL 数据库实例的访问地址,这个地址必须为公网访问方式端口:MySQL 实例监听端口账号:MySQL 实例访问账号密码:上面指定的 MySQL 访问账号对应的密码 目标 RDS for MySQL 实例连接信息。 实例类型:选择 RDS 实例RDS 实例 ID: 配置迁移的目标 RDS 实例的实例 ID。 DTS 支持经典网络、VPC 网络的 RDS for MySQL 实例数据库账号:RDS for MySQL 实例的连接账号数据库密码:上面指定的数据库账号对应的数据库密码 迁移对象及迁移类型配置。 迁移类型 DTS 支持 结构迁移、全量数据迁移、增量数据迁移。 如果需要进行不停机迁移,那么需要选择:结构迁移+全量数据迁移+增量数据迁移。 如果只进行全量迁移,那么需要选择:结构迁移+全量数据迁移。 迁移对象 迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。 默认情况下,对象迁移到 RDS for MySQL 实例后,对象名跟本地 MySQL 实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用 DTS 提供的对象名映射功能,详细使用方式可以参考 库表列映射。 当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤 预检查。 在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。 如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。 启动迁移任务。 当预检查通过后,我们可以启动迁移任务,任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。 增量数据迁移是个动态同步的过程,所以建议在增量迁移达到无延迟状态时,在目标数据库上进行业务验证,如果验证成功,那么可以停掉迁移任务,然后将业务切换到目标数据库。 至此,完成将本地 MySQL 数据库实例到阿里云 RDS for MySQL 的数据迁移任务配置。

2019-12-01 23:09:41 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档使用 数据传输服务 DTS 可以将本地 MySQL 实例的数据迁移到 RDS for MySQL 实例。数据传输服务 DTS (以下简称 DTS) 提供的增量数据同步功能,可以实现在本地应用不停服的情况下,平滑完成 MySQL 数据的迁移工作。 本小节简单介绍使用 DTS 进行本地 MySQL->RDS for MySQL 数据迁移的任务配置流程。 迁移步骤对于本地 MySQL->RDS for MySQL 的数据迁移,DTS 支持结构迁移、全量数据迁移及增量数据迁移,这个迁移类型的功能及限制如下: 结构迁移 数据传输会将迁移对象的结构定义迁移到目标实例。目前 DTS 支持结构迁移的对象有:表、视图、触发器、存储过程、存储函数。 全量数据迁移 全量迁移将本地 MySQL 实例的存量数据全部迁移到目标 RDS for MySQL 实例。 如果用户只进行全量数据迁移,那么迁移过程中本地 MySQL 实例新增的业务写入不会被同步到目标 RDS for MySQL 实例。 增量数据迁移 增量数据迁移会将全量数据迁移过程中,本地 MySQL 实例的增量变更数据同步到目标 RDS for MySQL 实例,增量数据迁移可以实现本地 MySQL 实例在迁移过程中产生的增量数据被实时同步到目标库,最终实现本地 MySQL 实例同目标 RDS for MySQL 实例进入动态数据同步的过程。 迁移限制 迁移过程中,不支持 DDL 操作结构迁移不支持 event 的迁移对于MySQL的浮点型float/double,DTS通过round(column,precision)来读取该列的值,若列类型没有明确定义其精度,对于float,精度为38位,double类型,精度为308,请先确认DTS的迁移精度是否符合业务预期如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败当选择增量迁移时,源端的本地 MySQL 实例需要按照要求开启 binlog当选择增量迁移时,源库的 binlog_format 要为 row当选择增量迁移且源 MySQL 如果为 5.6 及以上版本时,它的 binlog_row_image 必须为 full当选择增量迁移时,增量迁移过程中如果源MySQL实例出现因实例跨机迁移或跨机重建等导致的binlog 文件ID乱序,可能导致增量迁移数据丢失 迁移权限要求当使用 DTS 进行本地 MySQL->RDS for MySQL迁移时,在不同迁移类型,对源端和目标端 MySQL 实例的迁移帐号权限要求如下: 迁移类型 结构迁移 全量迁移 增量迁移 本地 MySQL 实例 select select superselectreplication slavereplication client 目标端 RDS for MySQL 实例 读写权限 读写权限 读写权限 迁移流程DTS 在进行本地 MySQL->RDS for Mysql 数据迁移时,为了解决对象间的依赖关系,提高迁移成功率。结构对象及数据的迁移顺序如下: 结构对象:表、视图的迁移全量数据迁移结构对象:存储过程、函数、触发器、外键的迁移增量数据迁移 如果任务没有选择增量数据迁移,那么当全量数据迁移完成后,任务列表中的迁移进度为:结构迁移 100%,全量迁移 100%,迁移状态为“迁移中”。此时迁移任务正在进行步骤(3) 中的对象的迁移。此时,请勿手动结束任务,否则会造成迁移数据丢失。 迁移任务配置下面详细介绍使用 DTS 将本地 MySQL 实例中的数据迁移到阿里云 RDS for MySQL 实例的任务配置流程。 RDS for MySQL 实例数据库创建在数据迁移过程中,如果待迁移的数据库在目标 RDS 实例中不存在,那么 DTS 自动会创建。但是对于如下两种情况,用户需要在配置迁移任务之前,手动创建数据库。 数据库名称不符合 RDS 定义规范(由小写字母、数字、下划线、中划线组成,字母开头,字母或数字结尾,最长 64 个字符)。待迁移数据库,在源端本地 MySQL 和目标端 RDS for MySQL 实例中名称不同。 对于这两种情况,用户需要在配置迁移任务之前,先在 RDS 控制台完成数据库创建。具体参考 RDS使用手册 - 创建数据库”。 迁移帐号创建迁移任务配置,需要提供本地 MySQL 数据库及目标 RDS for MySQL 实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求 部分。 如果源端 MySQL 实例迁移账号尚未创建,那么您可以参考 Grant 语法说明,创建满足权限要求的迁移账号。 如果目标端 RDS for MySQL 实例迁移账号创建,那么您可以参考 RDS 账号创建流程,创建对待迁移数据库有读写权限的迁移账号。 其他准备工作如果需要进行增量迁移,那么需要确认源库的 binlog 是否开启,格式是否满足要求。具体确认项如下。 确认源库的 binlog 是否开启。 如果这里面查询出来的 log_bin=OFF,则说明源库没有开启 binlog,这个时候如果需要使用增量迁移的话,需要修改本地 MySQL 的 binlog 配置,打开 binlog 日志。 开启二进制日志,修改 log_bin=mysql_bin。设置 binlog 模式为 row,修改 binlog_format=row。配置 server_id 大于 1,即 server_id=某一个大于 1 的整数。如果版本为 5.6,修改 binlog_row_image=full。修改完成后,重启 MySQL 进程。 确认源库的 binlog 格式为 row 模式。 使用上面的命令确认本地 MySQL 的 binlog 格式是否为 ROW,如果查询出来的结果不为 ROW 的话,那么通过如下的参数设置命令将模式修改为 ROW。 当修改完成后,建议将源库上已有的连接 KILL 掉,并且重新连接,否则可能出现其他的连接依然使用 statement 格式记录 binlog 日志。 当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full。 如果查询出来的结果不为 FULL 的话,那么通过如下的参数设置命令将其修改为 FULL。 迁移任务配置当数据库、迁移账号都创建完成后,就可以开始配置迁移任务了。下面详细介绍下具体的配置步骤。 进入 数据传输 DTS 控制台,点击右上角的 创建迁移任务,开始任务配置。本地 MySQL 实例及目标 RDS for MySQL 实例连接信息配置。 在这个步骤中,主要配置迁移任务名称,迁移源实例及目标实例连接信息。其中: 任务名称 默认情况下,DTS 为每个任务自动生成一个任务名称。任务名称没有唯一性要求,您可以修改这个名称,为任务配置一个具有业务意义的名称,便于后续的任务识别。 源实例连接信息 实例类型:选择 有公网 IP 的自建数据库数据库类型:选择 MySQL主机名或 IP 地址:配置本地 MySQL 数据库实例的访问地址,这个地址必须为公网访问方式端口:MySQL 实例监听端口账号:MySQL 实例访问账号密码:上面指定的 MySQL 访问账号对应的密码 目标 RDS for MySQL 实例连接信息。 实例类型:选择 RDS 实例RDS 实例 ID: 配置迁移的目标 RDS 实例的实例 ID。 DTS 支持经典网络、VPC 网络的 RDS for MySQL 实例数据库账号:RDS for MySQL 实例的连接账号数据库密码:上面指定的数据库账号对应的数据库密码 迁移对象及迁移类型配置。 迁移类型 DTS 支持 结构迁移、全量数据迁移、增量数据迁移。 如果需要进行不停机迁移,那么需要选择:结构迁移+全量数据迁移+增量数据迁移。 如果只进行全量迁移,那么需要选择:结构迁移+全量数据迁移。 迁移对象 迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。 默认情况下,对象迁移到 RDS for MySQL 实例后,对象名跟本地 MySQL 实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用 DTS 提供的对象名映射功能,详细使用方式可以参考 库表列映射。 当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤 预检查。 在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。 如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。 启动迁移任务。 当预检查通过后,我们可以启动迁移任务,任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。 增量数据迁移是个动态同步的过程,所以建议在增量迁移达到无延迟状态时,在目标数据库上进行业务验证,如果验证成功,那么可以停掉迁移任务,然后将业务切换到目标数据库。 至此,完成将本地 MySQL 数据库实例到阿里云 RDS for MySQL 的数据迁移任务配置。

2019-12-01 23:09:42 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档使用 数据传输服务 DTS 可以将本地 MySQL 实例的数据迁移到 RDS for MySQL 实例。数据传输服务 DTS (以下简称 DTS) 提供的增量数据同步功能,可以实现在本地应用不停服的情况下,平滑完成 MySQL 数据的迁移工作。 本小节简单介绍使用 DTS 进行本地 MySQL->RDS for MySQL 数据迁移的任务配置流程。 迁移步骤对于本地 MySQL->RDS for MySQL 的数据迁移,DTS 支持结构迁移、全量数据迁移及增量数据迁移,这个迁移类型的功能及限制如下: 结构迁移 数据传输会将迁移对象的结构定义迁移到目标实例。目前 DTS 支持结构迁移的对象有:表、视图、触发器、存储过程、存储函数。 全量数据迁移 全量迁移将本地 MySQL 实例的存量数据全部迁移到目标 RDS for MySQL 实例。 如果用户只进行全量数据迁移,那么迁移过程中本地 MySQL 实例新增的业务写入不会被同步到目标 RDS for MySQL 实例。 增量数据迁移 增量数据迁移会将全量数据迁移过程中,本地 MySQL 实例的增量变更数据同步到目标 RDS for MySQL 实例,增量数据迁移可以实现本地 MySQL 实例在迁移过程中产生的增量数据被实时同步到目标库,最终实现本地 MySQL 实例同目标 RDS for MySQL 实例进入动态数据同步的过程。 迁移限制 迁移过程中,不支持 DDL 操作结构迁移不支持 event 的迁移对于MySQL的浮点型float/double,DTS通过round(column,precision)来读取该列的值,若列类型没有明确定义其精度,对于float,精度为38位,double类型,精度为308,请先确认DTS的迁移精度是否符合业务预期如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败当选择增量迁移时,源端的本地 MySQL 实例需要按照要求开启 binlog当选择增量迁移时,源库的 binlog_format 要为 row当选择增量迁移且源 MySQL 如果为 5.6 及以上版本时,它的 binlog_row_image 必须为 full当选择增量迁移时,增量迁移过程中如果源MySQL实例出现因实例跨机迁移或跨机重建等导致的binlog 文件ID乱序,可能导致增量迁移数据丢失 迁移权限要求当使用 DTS 进行本地 MySQL->RDS for MySQL迁移时,在不同迁移类型,对源端和目标端 MySQL 实例的迁移帐号权限要求如下: 迁移类型 结构迁移 全量迁移 增量迁移 本地 MySQL 实例 select select superselectreplication slavereplication client 目标端 RDS for MySQL 实例 读写权限 读写权限 读写权限 迁移流程DTS 在进行本地 MySQL->RDS for Mysql 数据迁移时,为了解决对象间的依赖关系,提高迁移成功率。结构对象及数据的迁移顺序如下: 结构对象:表、视图的迁移全量数据迁移结构对象:存储过程、函数、触发器、外键的迁移增量数据迁移 如果任务没有选择增量数据迁移,那么当全量数据迁移完成后,任务列表中的迁移进度为:结构迁移 100%,全量迁移 100%,迁移状态为“迁移中”。此时迁移任务正在进行步骤(3) 中的对象的迁移。此时,请勿手动结束任务,否则会造成迁移数据丢失。 迁移任务配置下面详细介绍使用 DTS 将本地 MySQL 实例中的数据迁移到阿里云 RDS for MySQL 实例的任务配置流程。 RDS for MySQL 实例数据库创建在数据迁移过程中,如果待迁移的数据库在目标 RDS 实例中不存在,那么 DTS 自动会创建。但是对于如下两种情况,用户需要在配置迁移任务之前,手动创建数据库。 数据库名称不符合 RDS 定义规范(由小写字母、数字、下划线、中划线组成,字母开头,字母或数字结尾,最长 64 个字符)。待迁移数据库,在源端本地 MySQL 和目标端 RDS for MySQL 实例中名称不同。 对于这两种情况,用户需要在配置迁移任务之前,先在 RDS 控制台完成数据库创建。具体参考 RDS使用手册 - 创建数据库”。 迁移帐号创建迁移任务配置,需要提供本地 MySQL 数据库及目标 RDS for MySQL 实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求 部分。 如果源端 MySQL 实例迁移账号尚未创建,那么您可以参考 Grant 语法说明,创建满足权限要求的迁移账号。 如果目标端 RDS for MySQL 实例迁移账号创建,那么您可以参考 RDS 账号创建流程,创建对待迁移数据库有读写权限的迁移账号。 其他准备工作如果需要进行增量迁移,那么需要确认源库的 binlog 是否开启,格式是否满足要求。具体确认项如下。 确认源库的 binlog 是否开启。 如果这里面查询出来的 log_bin=OFF,则说明源库没有开启 binlog,这个时候如果需要使用增量迁移的话,需要修改本地 MySQL 的 binlog 配置,打开 binlog 日志。 开启二进制日志,修改 log_bin=mysql_bin。设置 binlog 模式为 row,修改 binlog_format=row。配置 server_id 大于 1,即 server_id=某一个大于 1 的整数。如果版本为 5.6,修改 binlog_row_image=full。修改完成后,重启 MySQL 进程。 确认源库的 binlog 格式为 row 模式。 使用上面的命令确认本地 MySQL 的 binlog 格式是否为 ROW,如果查询出来的结果不为 ROW 的话,那么通过如下的参数设置命令将模式修改为 ROW。 当修改完成后,建议将源库上已有的连接 KILL 掉,并且重新连接,否则可能出现其他的连接依然使用 statement 格式记录 binlog 日志。 当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full。 如果查询出来的结果不为 FULL 的话,那么通过如下的参数设置命令将其修改为 FULL。 迁移任务配置当数据库、迁移账号都创建完成后,就可以开始配置迁移任务了。下面详细介绍下具体的配置步骤。 进入 数据传输 DTS 控制台,点击右上角的 创建迁移任务,开始任务配置。本地 MySQL 实例及目标 RDS for MySQL 实例连接信息配置。 在这个步骤中,主要配置迁移任务名称,迁移源实例及目标实例连接信息。其中: 任务名称 默认情况下,DTS 为每个任务自动生成一个任务名称。任务名称没有唯一性要求,您可以修改这个名称,为任务配置一个具有业务意义的名称,便于后续的任务识别。 源实例连接信息 实例类型:选择 有公网 IP 的自建数据库数据库类型:选择 MySQL主机名或 IP 地址:配置本地 MySQL 数据库实例的访问地址,这个地址必须为公网访问方式端口:MySQL 实例监听端口账号:MySQL 实例访问账号密码:上面指定的 MySQL 访问账号对应的密码 目标 RDS for MySQL 实例连接信息。 实例类型:选择 RDS 实例RDS 实例 ID: 配置迁移的目标 RDS 实例的实例 ID。 DTS 支持经典网络、VPC 网络的 RDS for MySQL 实例数据库账号:RDS for MySQL 实例的连接账号数据库密码:上面指定的数据库账号对应的数据库密码 迁移对象及迁移类型配置。 迁移类型 DTS 支持 结构迁移、全量数据迁移、增量数据迁移。 如果需要进行不停机迁移,那么需要选择:结构迁移+全量数据迁移+增量数据迁移。 如果只进行全量迁移,那么需要选择:结构迁移+全量数据迁移。 迁移对象 迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。 默认情况下,对象迁移到 RDS for MySQL 实例后,对象名跟本地 MySQL 实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用 DTS 提供的对象名映射功能,详细使用方式可以参考 库表列映射。 当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤 预检查。 在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。 如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。 启动迁移任务。 当预检查通过后,我们可以启动迁移任务,任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。 增量数据迁移是个动态同步的过程,所以建议在增量迁移达到无延迟状态时,在目标数据库上进行业务验证,如果验证成功,那么可以停掉迁移任务,然后将业务切换到目标数据库。 至此,完成将本地 MySQL 数据库实例到阿里云 RDS for MySQL 的数据迁移任务配置。

2019-12-01 23:09:42 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档使用 数据传输服务 DTS 可以将本地 MySQL 实例的数据迁移到 RDS for MySQL 实例。数据传输服务 DTS (以下简称 DTS) 提供的增量数据同步功能,可以实现在本地应用不停服的情况下,平滑完成 MySQL 数据的迁移工作。 本小节简单介绍使用 DTS 进行本地 MySQL->RDS for MySQL 数据迁移的任务配置流程。 迁移步骤对于本地 MySQL->RDS for MySQL 的数据迁移,DTS 支持结构迁移、全量数据迁移及增量数据迁移,这个迁移类型的功能及限制如下: 结构迁移 数据传输会将迁移对象的结构定义迁移到目标实例。目前 DTS 支持结构迁移的对象有:表、视图、触发器、存储过程、存储函数。 全量数据迁移 全量迁移将本地 MySQL 实例的存量数据全部迁移到目标 RDS for MySQL 实例。 如果用户只进行全量数据迁移,那么迁移过程中本地 MySQL 实例新增的业务写入不会被同步到目标 RDS for MySQL 实例。 增量数据迁移 增量数据迁移会将全量数据迁移过程中,本地 MySQL 实例的增量变更数据同步到目标 RDS for MySQL 实例,增量数据迁移可以实现本地 MySQL 实例在迁移过程中产生的增量数据被实时同步到目标库,最终实现本地 MySQL 实例同目标 RDS for MySQL 实例进入动态数据同步的过程。 迁移限制 迁移过程中,不支持 DDL 操作结构迁移不支持 event 的迁移对于MySQL的浮点型float/double,DTS通过round(column,precision)来读取该列的值,若列类型没有明确定义其精度,对于float,精度为38位,double类型,精度为308,请先确认DTS的迁移精度是否符合业务预期如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败当选择增量迁移时,源端的本地 MySQL 实例需要按照要求开启 binlog当选择增量迁移时,源库的 binlog_format 要为 row当选择增量迁移且源 MySQL 如果为 5.6 及以上版本时,它的 binlog_row_image 必须为 full当选择增量迁移时,增量迁移过程中如果源MySQL实例出现因实例跨机迁移或跨机重建等导致的binlog 文件ID乱序,可能导致增量迁移数据丢失 迁移权限要求当使用 DTS 进行本地 MySQL->RDS for MySQL迁移时,在不同迁移类型,对源端和目标端 MySQL 实例的迁移帐号权限要求如下: 迁移类型 结构迁移 全量迁移 增量迁移 本地 MySQL 实例 select select superselectreplication slavereplication client 目标端 RDS for MySQL 实例 读写权限 读写权限 读写权限 迁移流程DTS 在进行本地 MySQL->RDS for Mysql 数据迁移时,为了解决对象间的依赖关系,提高迁移成功率。结构对象及数据的迁移顺序如下: 结构对象:表、视图的迁移全量数据迁移结构对象:存储过程、函数、触发器、外键的迁移增量数据迁移 如果任务没有选择增量数据迁移,那么当全量数据迁移完成后,任务列表中的迁移进度为:结构迁移 100%,全量迁移 100%,迁移状态为“迁移中”。此时迁移任务正在进行步骤(3) 中的对象的迁移。此时,请勿手动结束任务,否则会造成迁移数据丢失。 迁移任务配置下面详细介绍使用 DTS 将本地 MySQL 实例中的数据迁移到阿里云 RDS for MySQL 实例的任务配置流程。 RDS for MySQL 实例数据库创建在数据迁移过程中,如果待迁移的数据库在目标 RDS 实例中不存在,那么 DTS 自动会创建。但是对于如下两种情况,用户需要在配置迁移任务之前,手动创建数据库。 数据库名称不符合 RDS 定义规范(由小写字母、数字、下划线、中划线组成,字母开头,字母或数字结尾,最长 64 个字符)。待迁移数据库,在源端本地 MySQL 和目标端 RDS for MySQL 实例中名称不同。 对于这两种情况,用户需要在配置迁移任务之前,先在 RDS 控制台完成数据库创建。具体参考 RDS使用手册 - 创建数据库”。 迁移帐号创建迁移任务配置,需要提供本地 MySQL 数据库及目标 RDS for MySQL 实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求 部分。 如果源端 MySQL 实例迁移账号尚未创建,那么您可以参考 Grant 语法说明,创建满足权限要求的迁移账号。 如果目标端 RDS for MySQL 实例迁移账号创建,那么您可以参考 RDS 账号创建流程,创建对待迁移数据库有读写权限的迁移账号。 其他准备工作如果需要进行增量迁移,那么需要确认源库的 binlog 是否开启,格式是否满足要求。具体确认项如下。 确认源库的 binlog 是否开启。 如果这里面查询出来的 log_bin=OFF,则说明源库没有开启 binlog,这个时候如果需要使用增量迁移的话,需要修改本地 MySQL 的 binlog 配置,打开 binlog 日志。 开启二进制日志,修改 log_bin=mysql_bin。设置 binlog 模式为 row,修改 binlog_format=row。配置 server_id 大于 1,即 server_id=某一个大于 1 的整数。如果版本为 5.6,修改 binlog_row_image=full。修改完成后,重启 MySQL 进程。 确认源库的 binlog 格式为 row 模式。 使用上面的命令确认本地 MySQL 的 binlog 格式是否为 ROW,如果查询出来的结果不为 ROW 的话,那么通过如下的参数设置命令将模式修改为 ROW。 当修改完成后,建议将源库上已有的连接 KILL 掉,并且重新连接,否则可能出现其他的连接依然使用 statement 格式记录 binlog 日志。 当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full。 如果查询出来的结果不为 FULL 的话,那么通过如下的参数设置命令将其修改为 FULL。 迁移任务配置当数据库、迁移账号都创建完成后,就可以开始配置迁移任务了。下面详细介绍下具体的配置步骤。 进入 数据传输 DTS 控制台,点击右上角的 创建迁移任务,开始任务配置。本地 MySQL 实例及目标 RDS for MySQL 实例连接信息配置。 在这个步骤中,主要配置迁移任务名称,迁移源实例及目标实例连接信息。其中: 任务名称 默认情况下,DTS 为每个任务自动生成一个任务名称。任务名称没有唯一性要求,您可以修改这个名称,为任务配置一个具有业务意义的名称,便于后续的任务识别。 源实例连接信息 实例类型:选择 有公网 IP 的自建数据库数据库类型:选择 MySQL主机名或 IP 地址:配置本地 MySQL 数据库实例的访问地址,这个地址必须为公网访问方式端口:MySQL 实例监听端口账号:MySQL 实例访问账号密码:上面指定的 MySQL 访问账号对应的密码 目标 RDS for MySQL 实例连接信息。 实例类型:选择 RDS 实例RDS 实例 ID: 配置迁移的目标 RDS 实例的实例 ID。 DTS 支持经典网络、VPC 网络的 RDS for MySQL 实例数据库账号:RDS for MySQL 实例的连接账号数据库密码:上面指定的数据库账号对应的数据库密码 迁移对象及迁移类型配置。 迁移类型 DTS 支持 结构迁移、全量数据迁移、增量数据迁移。 如果需要进行不停机迁移,那么需要选择:结构迁移+全量数据迁移+增量数据迁移。 如果只进行全量迁移,那么需要选择:结构迁移+全量数据迁移。 迁移对象 迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。 默认情况下,对象迁移到 RDS for MySQL 实例后,对象名跟本地 MySQL 实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用 DTS 提供的对象名映射功能,详细使用方式可以参考 库表列映射。 当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤 预检查。 在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。 如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。 启动迁移任务。 当预检查通过后,我们可以启动迁移任务,任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。 增量数据迁移是个动态同步的过程,所以建议在增量迁移达到无延迟状态时,在目标数据库上进行业务验证,如果验证成功,那么可以停掉迁移任务,然后将业务切换到目标数据库。 至此,完成将本地 MySQL 数据库实例到阿里云 RDS for MySQL 的数据迁移任务配置。

2019-12-01 23:09:41 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档使用 数据传输服务 DTS 可以将本地 MySQL 实例的数据迁移到 RDS for MySQL 实例。数据传输服务 DTS (以下简称 DTS) 提供的增量数据同步功能,可以实现在本地应用不停服的情况下,平滑完成 MySQL 数据的迁移工作。 本小节简单介绍使用 DTS 进行本地 MySQL->RDS for MySQL 数据迁移的任务配置流程。 迁移步骤对于本地 MySQL->RDS for MySQL 的数据迁移,DTS 支持结构迁移、全量数据迁移及增量数据迁移,这个迁移类型的功能及限制如下: 结构迁移 数据传输会将迁移对象的结构定义迁移到目标实例。目前 DTS 支持结构迁移的对象有:表、视图、触发器、存储过程、存储函数。 全量数据迁移 全量迁移将本地 MySQL 实例的存量数据全部迁移到目标 RDS for MySQL 实例。 如果用户只进行全量数据迁移,那么迁移过程中本地 MySQL 实例新增的业务写入不会被同步到目标 RDS for MySQL 实例。 增量数据迁移 增量数据迁移会将全量数据迁移过程中,本地 MySQL 实例的增量变更数据同步到目标 RDS for MySQL 实例,增量数据迁移可以实现本地 MySQL 实例在迁移过程中产生的增量数据被实时同步到目标库,最终实现本地 MySQL 实例同目标 RDS for MySQL 实例进入动态数据同步的过程。 迁移限制 迁移过程中,不支持 DDL 操作结构迁移不支持 event 的迁移对于MySQL的浮点型float/double,DTS通过round(column,precision)来读取该列的值,若列类型没有明确定义其精度,对于float,精度为38位,double类型,精度为308,请先确认DTS的迁移精度是否符合业务预期如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败当选择增量迁移时,源端的本地 MySQL 实例需要按照要求开启 binlog当选择增量迁移时,源库的 binlog_format 要为 row当选择增量迁移且源 MySQL 如果为 5.6 及以上版本时,它的 binlog_row_image 必须为 full当选择增量迁移时,增量迁移过程中如果源MySQL实例出现因实例跨机迁移或跨机重建等导致的binlog 文件ID乱序,可能导致增量迁移数据丢失 迁移权限要求当使用 DTS 进行本地 MySQL->RDS for MySQL迁移时,在不同迁移类型,对源端和目标端 MySQL 实例的迁移帐号权限要求如下: 迁移类型 结构迁移 全量迁移 增量迁移 本地 MySQL 实例 select select superselectreplication slavereplication client 目标端 RDS for MySQL 实例 读写权限 读写权限 读写权限 迁移流程DTS 在进行本地 MySQL->RDS for Mysql 数据迁移时,为了解决对象间的依赖关系,提高迁移成功率。结构对象及数据的迁移顺序如下: 结构对象:表、视图的迁移全量数据迁移结构对象:存储过程、函数、触发器、外键的迁移增量数据迁移 如果任务没有选择增量数据迁移,那么当全量数据迁移完成后,任务列表中的迁移进度为:结构迁移 100%,全量迁移 100%,迁移状态为“迁移中”。此时迁移任务正在进行步骤(3) 中的对象的迁移。此时,请勿手动结束任务,否则会造成迁移数据丢失。 迁移任务配置下面详细介绍使用 DTS 将本地 MySQL 实例中的数据迁移到阿里云 RDS for MySQL 实例的任务配置流程。 RDS for MySQL 实例数据库创建在数据迁移过程中,如果待迁移的数据库在目标 RDS 实例中不存在,那么 DTS 自动会创建。但是对于如下两种情况,用户需要在配置迁移任务之前,手动创建数据库。 数据库名称不符合 RDS 定义规范(由小写字母、数字、下划线、中划线组成,字母开头,字母或数字结尾,最长 64 个字符)。待迁移数据库,在源端本地 MySQL 和目标端 RDS for MySQL 实例中名称不同。 对于这两种情况,用户需要在配置迁移任务之前,先在 RDS 控制台完成数据库创建。具体参考 RDS使用手册 - 创建数据库”。 迁移帐号创建迁移任务配置,需要提供本地 MySQL 数据库及目标 RDS for MySQL 实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求 部分。 如果源端 MySQL 实例迁移账号尚未创建,那么您可以参考 Grant 语法说明,创建满足权限要求的迁移账号。 如果目标端 RDS for MySQL 实例迁移账号创建,那么您可以参考 RDS 账号创建流程,创建对待迁移数据库有读写权限的迁移账号。 其他准备工作如果需要进行增量迁移,那么需要确认源库的 binlog 是否开启,格式是否满足要求。具体确认项如下。 确认源库的 binlog 是否开启。 如果这里面查询出来的 log_bin=OFF,则说明源库没有开启 binlog,这个时候如果需要使用增量迁移的话,需要修改本地 MySQL 的 binlog 配置,打开 binlog 日志。 开启二进制日志,修改 log_bin=mysql_bin。设置 binlog 模式为 row,修改 binlog_format=row。配置 server_id 大于 1,即 server_id=某一个大于 1 的整数。如果版本为 5.6,修改 binlog_row_image=full。修改完成后,重启 MySQL 进程。 确认源库的 binlog 格式为 row 模式。 使用上面的命令确认本地 MySQL 的 binlog 格式是否为 ROW,如果查询出来的结果不为 ROW 的话,那么通过如下的参数设置命令将模式修改为 ROW。 当修改完成后,建议将源库上已有的连接 KILL 掉,并且重新连接,否则可能出现其他的连接依然使用 statement 格式记录 binlog 日志。 当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full。 如果查询出来的结果不为 FULL 的话,那么通过如下的参数设置命令将其修改为 FULL。 迁移任务配置当数据库、迁移账号都创建完成后,就可以开始配置迁移任务了。下面详细介绍下具体的配置步骤。 进入 数据传输 DTS 控制台,点击右上角的 创建迁移任务,开始任务配置。本地 MySQL 实例及目标 RDS for MySQL 实例连接信息配置。 在这个步骤中,主要配置迁移任务名称,迁移源实例及目标实例连接信息。其中: 任务名称 默认情况下,DTS 为每个任务自动生成一个任务名称。任务名称没有唯一性要求,您可以修改这个名称,为任务配置一个具有业务意义的名称,便于后续的任务识别。 源实例连接信息 实例类型:选择 有公网 IP 的自建数据库数据库类型:选择 MySQL主机名或 IP 地址:配置本地 MySQL 数据库实例的访问地址,这个地址必须为公网访问方式端口:MySQL 实例监听端口账号:MySQL 实例访问账号密码:上面指定的 MySQL 访问账号对应的密码 目标 RDS for MySQL 实例连接信息。 实例类型:选择 RDS 实例RDS 实例 ID: 配置迁移的目标 RDS 实例的实例 ID。 DTS 支持经典网络、VPC 网络的 RDS for MySQL 实例数据库账号:RDS for MySQL 实例的连接账号数据库密码:上面指定的数据库账号对应的数据库密码 迁移对象及迁移类型配置。 迁移类型 DTS 支持 结构迁移、全量数据迁移、增量数据迁移。 如果需要进行不停机迁移,那么需要选择:结构迁移+全量数据迁移+增量数据迁移。 如果只进行全量迁移,那么需要选择:结构迁移+全量数据迁移。 迁移对象 迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。 默认情况下,对象迁移到 RDS for MySQL 实例后,对象名跟本地 MySQL 实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用 DTS 提供的对象名映射功能,详细使用方式可以参考 库表列映射。 当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤 预检查。 在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。 如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。 启动迁移任务。 当预检查通过后,我们可以启动迁移任务,任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。 增量数据迁移是个动态同步的过程,所以建议在增量迁移达到无延迟状态时,在目标数据库上进行业务验证,如果验证成功,那么可以停掉迁移任务,然后将业务切换到目标数据库。 至此,完成将本地 MySQL 数据库实例到阿里云 RDS for MySQL 的数据迁移任务配置。

2019-12-01 23:09:41 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档使用 数据传输服务 DTS 可以将本地 MySQL 实例的数据迁移到 RDS for MySQL 实例。数据传输服务 DTS (以下简称 DTS) 提供的增量数据同步功能,可以实现在本地应用不停服的情况下,平滑完成 MySQL 数据的迁移工作。 本小节简单介绍使用 DTS 进行本地 MySQL->RDS for MySQL 数据迁移的任务配置流程。 迁移步骤对于本地 MySQL->RDS for MySQL 的数据迁移,DTS 支持结构迁移、全量数据迁移及增量数据迁移,这个迁移类型的功能及限制如下: 结构迁移 数据传输会将迁移对象的结构定义迁移到目标实例。目前 DTS 支持结构迁移的对象有:表、视图、触发器、存储过程、存储函数。 全量数据迁移 全量迁移将本地 MySQL 实例的存量数据全部迁移到目标 RDS for MySQL 实例。 如果用户只进行全量数据迁移,那么迁移过程中本地 MySQL 实例新增的业务写入不会被同步到目标 RDS for MySQL 实例。 增量数据迁移 增量数据迁移会将全量数据迁移过程中,本地 MySQL 实例的增量变更数据同步到目标 RDS for MySQL 实例,增量数据迁移可以实现本地 MySQL 实例在迁移过程中产生的增量数据被实时同步到目标库,最终实现本地 MySQL 实例同目标 RDS for MySQL 实例进入动态数据同步的过程。 迁移限制 迁移过程中,不支持 DDL 操作结构迁移不支持 event 的迁移对于MySQL的浮点型float/double,DTS通过round(column,precision)来读取该列的值,若列类型没有明确定义其精度,对于float,精度为38位,double类型,精度为308,请先确认DTS的迁移精度是否符合业务预期如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败当选择增量迁移时,源端的本地 MySQL 实例需要按照要求开启 binlog当选择增量迁移时,源库的 binlog_format 要为 row当选择增量迁移且源 MySQL 如果为 5.6 及以上版本时,它的 binlog_row_image 必须为 full当选择增量迁移时,增量迁移过程中如果源MySQL实例出现因实例跨机迁移或跨机重建等导致的binlog 文件ID乱序,可能导致增量迁移数据丢失 迁移权限要求当使用 DTS 进行本地 MySQL->RDS for MySQL迁移时,在不同迁移类型,对源端和目标端 MySQL 实例的迁移帐号权限要求如下: 迁移类型 结构迁移 全量迁移 增量迁移 本地 MySQL 实例 select select superselectreplication slavereplication client 目标端 RDS for MySQL 实例 读写权限 读写权限 读写权限 迁移流程DTS 在进行本地 MySQL->RDS for Mysql 数据迁移时,为了解决对象间的依赖关系,提高迁移成功率。结构对象及数据的迁移顺序如下: 结构对象:表、视图的迁移全量数据迁移结构对象:存储过程、函数、触发器、外键的迁移增量数据迁移 如果任务没有选择增量数据迁移,那么当全量数据迁移完成后,任务列表中的迁移进度为:结构迁移 100%,全量迁移 100%,迁移状态为“迁移中”。此时迁移任务正在进行步骤(3) 中的对象的迁移。此时,请勿手动结束任务,否则会造成迁移数据丢失。 迁移任务配置下面详细介绍使用 DTS 将本地 MySQL 实例中的数据迁移到阿里云 RDS for MySQL 实例的任务配置流程。 RDS for MySQL 实例数据库创建在数据迁移过程中,如果待迁移的数据库在目标 RDS 实例中不存在,那么 DTS 自动会创建。但是对于如下两种情况,用户需要在配置迁移任务之前,手动创建数据库。 数据库名称不符合 RDS 定义规范(由小写字母、数字、下划线、中划线组成,字母开头,字母或数字结尾,最长 64 个字符)。待迁移数据库,在源端本地 MySQL 和目标端 RDS for MySQL 实例中名称不同。 对于这两种情况,用户需要在配置迁移任务之前,先在 RDS 控制台完成数据库创建。具体参考 RDS使用手册 - 创建数据库”。 迁移帐号创建迁移任务配置,需要提供本地 MySQL 数据库及目标 RDS for MySQL 实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求 部分。 如果源端 MySQL 实例迁移账号尚未创建,那么您可以参考 Grant 语法说明,创建满足权限要求的迁移账号。 如果目标端 RDS for MySQL 实例迁移账号创建,那么您可以参考 RDS 账号创建流程,创建对待迁移数据库有读写权限的迁移账号。 其他准备工作如果需要进行增量迁移,那么需要确认源库的 binlog 是否开启,格式是否满足要求。具体确认项如下。 确认源库的 binlog 是否开启。 如果这里面查询出来的 log_bin=OFF,则说明源库没有开启 binlog,这个时候如果需要使用增量迁移的话,需要修改本地 MySQL 的 binlog 配置,打开 binlog 日志。 开启二进制日志,修改 log_bin=mysql_bin。设置 binlog 模式为 row,修改 binlog_format=row。配置 server_id 大于 1,即 server_id=某一个大于 1 的整数。如果版本为 5.6,修改 binlog_row_image=full。修改完成后,重启 MySQL 进程。 确认源库的 binlog 格式为 row 模式。 使用上面的命令确认本地 MySQL 的 binlog 格式是否为 ROW,如果查询出来的结果不为 ROW 的话,那么通过如下的参数设置命令将模式修改为 ROW。 当修改完成后,建议将源库上已有的连接 KILL 掉,并且重新连接,否则可能出现其他的连接依然使用 statement 格式记录 binlog 日志。 当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full。 如果查询出来的结果不为 FULL 的话,那么通过如下的参数设置命令将其修改为 FULL。 迁移任务配置当数据库、迁移账号都创建完成后,就可以开始配置迁移任务了。下面详细介绍下具体的配置步骤。 进入 数据传输 DTS 控制台,点击右上角的 创建迁移任务,开始任务配置。本地 MySQL 实例及目标 RDS for MySQL 实例连接信息配置。 在这个步骤中,主要配置迁移任务名称,迁移源实例及目标实例连接信息。其中: 任务名称 默认情况下,DTS 为每个任务自动生成一个任务名称。任务名称没有唯一性要求,您可以修改这个名称,为任务配置一个具有业务意义的名称,便于后续的任务识别。 源实例连接信息 实例类型:选择 有公网 IP 的自建数据库数据库类型:选择 MySQL主机名或 IP 地址:配置本地 MySQL 数据库实例的访问地址,这个地址必须为公网访问方式端口:MySQL 实例监听端口账号:MySQL 实例访问账号密码:上面指定的 MySQL 访问账号对应的密码 目标 RDS for MySQL 实例连接信息。 实例类型:选择 RDS 实例RDS 实例 ID: 配置迁移的目标 RDS 实例的实例 ID。 DTS 支持经典网络、VPC 网络的 RDS for MySQL 实例数据库账号:RDS for MySQL 实例的连接账号数据库密码:上面指定的数据库账号对应的数据库密码 迁移对象及迁移类型配置。 迁移类型 DTS 支持 结构迁移、全量数据迁移、增量数据迁移。 如果需要进行不停机迁移,那么需要选择:结构迁移+全量数据迁移+增量数据迁移。 如果只进行全量迁移,那么需要选择:结构迁移+全量数据迁移。 迁移对象 迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。 默认情况下,对象迁移到 RDS for MySQL 实例后,对象名跟本地 MySQL 实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用 DTS 提供的对象名映射功能,详细使用方式可以参考 库表列映射。 当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤 预检查。 在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。 如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。 启动迁移任务。 当预检查通过后,我们可以启动迁移任务,任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。 增量数据迁移是个动态同步的过程,所以建议在增量迁移达到无延迟状态时,在目标数据库上进行业务验证,如果验证成功,那么可以停掉迁移任务,然后将业务切换到目标数据库。 至此,完成将本地 MySQL 数据库实例到阿里云 RDS for MySQL 的数据迁移任务配置。

2019-12-01 23:09:41 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档使用 数据传输服务 DTS 可以将本地 MySQL 实例的数据迁移到 RDS for MySQL 实例。数据传输服务 DTS (以下简称 DTS) 提供的增量数据同步功能,可以实现在本地应用不停服的情况下,平滑完成 MySQL 数据的迁移工作。 本小节简单介绍使用 DTS 进行本地 MySQL->RDS for MySQL 数据迁移的任务配置流程。 迁移步骤对于本地 MySQL->RDS for MySQL 的数据迁移,DTS 支持结构迁移、全量数据迁移及增量数据迁移,这个迁移类型的功能及限制如下: 结构迁移 数据传输会将迁移对象的结构定义迁移到目标实例。目前 DTS 支持结构迁移的对象有:表、视图、触发器、存储过程、存储函数。 全量数据迁移 全量迁移将本地 MySQL 实例的存量数据全部迁移到目标 RDS for MySQL 实例。 如果用户只进行全量数据迁移,那么迁移过程中本地 MySQL 实例新增的业务写入不会被同步到目标 RDS for MySQL 实例。 增量数据迁移 增量数据迁移会将全量数据迁移过程中,本地 MySQL 实例的增量变更数据同步到目标 RDS for MySQL 实例,增量数据迁移可以实现本地 MySQL 实例在迁移过程中产生的增量数据被实时同步到目标库,最终实现本地 MySQL 实例同目标 RDS for MySQL 实例进入动态数据同步的过程。 迁移限制 迁移过程中,不支持 DDL 操作结构迁移不支持 event 的迁移对于MySQL的浮点型float/double,DTS通过round(column,precision)来读取该列的值,若列类型没有明确定义其精度,对于float,精度为38位,double类型,精度为308,请先确认DTS的迁移精度是否符合业务预期如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败当选择增量迁移时,源端的本地 MySQL 实例需要按照要求开启 binlog当选择增量迁移时,源库的 binlog_format 要为 row当选择增量迁移且源 MySQL 如果为 5.6 及以上版本时,它的 binlog_row_image 必须为 full当选择增量迁移时,增量迁移过程中如果源MySQL实例出现因实例跨机迁移或跨机重建等导致的binlog 文件ID乱序,可能导致增量迁移数据丢失 迁移权限要求当使用 DTS 进行本地 MySQL->RDS for MySQL迁移时,在不同迁移类型,对源端和目标端 MySQL 实例的迁移帐号权限要求如下: 迁移类型 结构迁移 全量迁移 增量迁移 本地 MySQL 实例 select select superselectreplication slavereplication client 目标端 RDS for MySQL 实例 读写权限 读写权限 读写权限 迁移流程DTS 在进行本地 MySQL->RDS for Mysql 数据迁移时,为了解决对象间的依赖关系,提高迁移成功率。结构对象及数据的迁移顺序如下: 结构对象:表、视图的迁移全量数据迁移结构对象:存储过程、函数、触发器、外键的迁移增量数据迁移 如果任务没有选择增量数据迁移,那么当全量数据迁移完成后,任务列表中的迁移进度为:结构迁移 100%,全量迁移 100%,迁移状态为“迁移中”。此时迁移任务正在进行步骤(3) 中的对象的迁移。此时,请勿手动结束任务,否则会造成迁移数据丢失。 迁移任务配置下面详细介绍使用 DTS 将本地 MySQL 实例中的数据迁移到阿里云 RDS for MySQL 实例的任务配置流程。 RDS for MySQL 实例数据库创建在数据迁移过程中,如果待迁移的数据库在目标 RDS 实例中不存在,那么 DTS 自动会创建。但是对于如下两种情况,用户需要在配置迁移任务之前,手动创建数据库。 数据库名称不符合 RDS 定义规范(由小写字母、数字、下划线、中划线组成,字母开头,字母或数字结尾,最长 64 个字符)。待迁移数据库,在源端本地 MySQL 和目标端 RDS for MySQL 实例中名称不同。 对于这两种情况,用户需要在配置迁移任务之前,先在 RDS 控制台完成数据库创建。具体参考 RDS使用手册 - 创建数据库”。 迁移帐号创建迁移任务配置,需要提供本地 MySQL 数据库及目标 RDS for MySQL 实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求 部分。 如果源端 MySQL 实例迁移账号尚未创建,那么您可以参考 Grant 语法说明,创建满足权限要求的迁移账号。 如果目标端 RDS for MySQL 实例迁移账号创建,那么您可以参考 RDS 账号创建流程,创建对待迁移数据库有读写权限的迁移账号。 其他准备工作如果需要进行增量迁移,那么需要确认源库的 binlog 是否开启,格式是否满足要求。具体确认项如下。 确认源库的 binlog 是否开启。 如果这里面查询出来的 log_bin=OFF,则说明源库没有开启 binlog,这个时候如果需要使用增量迁移的话,需要修改本地 MySQL 的 binlog 配置,打开 binlog 日志。 开启二进制日志,修改 log_bin=mysql_bin。设置 binlog 模式为 row,修改 binlog_format=row。配置 server_id 大于 1,即 server_id=某一个大于 1 的整数。如果版本为 5.6,修改 binlog_row_image=full。修改完成后,重启 MySQL 进程。 确认源库的 binlog 格式为 row 模式。 使用上面的命令确认本地 MySQL 的 binlog 格式是否为 ROW,如果查询出来的结果不为 ROW 的话,那么通过如下的参数设置命令将模式修改为 ROW。 当修改完成后,建议将源库上已有的连接 KILL 掉,并且重新连接,否则可能出现其他的连接依然使用 statement 格式记录 binlog 日志。 当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full。 如果查询出来的结果不为 FULL 的话,那么通过如下的参数设置命令将其修改为 FULL。 迁移任务配置当数据库、迁移账号都创建完成后,就可以开始配置迁移任务了。下面详细介绍下具体的配置步骤。 进入 数据传输 DTS 控制台,点击右上角的 创建迁移任务,开始任务配置。本地 MySQL 实例及目标 RDS for MySQL 实例连接信息配置。 在这个步骤中,主要配置迁移任务名称,迁移源实例及目标实例连接信息。其中: 任务名称 默认情况下,DTS 为每个任务自动生成一个任务名称。任务名称没有唯一性要求,您可以修改这个名称,为任务配置一个具有业务意义的名称,便于后续的任务识别。 源实例连接信息 实例类型:选择 有公网 IP 的自建数据库数据库类型:选择 MySQL主机名或 IP 地址:配置本地 MySQL 数据库实例的访问地址,这个地址必须为公网访问方式端口:MySQL 实例监听端口账号:MySQL 实例访问账号密码:上面指定的 MySQL 访问账号对应的密码 目标 RDS for MySQL 实例连接信息。 实例类型:选择 RDS 实例RDS 实例 ID: 配置迁移的目标 RDS 实例的实例 ID。 DTS 支持经典网络、VPC 网络的 RDS for MySQL 实例数据库账号:RDS for MySQL 实例的连接账号数据库密码:上面指定的数据库账号对应的数据库密码 迁移对象及迁移类型配置。 迁移类型 DTS 支持 结构迁移、全量数据迁移、增量数据迁移。 如果需要进行不停机迁移,那么需要选择:结构迁移+全量数据迁移+增量数据迁移。 如果只进行全量迁移,那么需要选择:结构迁移+全量数据迁移。 迁移对象 迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。 默认情况下,对象迁移到 RDS for MySQL 实例后,对象名跟本地 MySQL 实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用 DTS 提供的对象名映射功能,详细使用方式可以参考 库表列映射。 当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤 预检查。 在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。 如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。 启动迁移任务。 当预检查通过后,我们可以启动迁移任务,任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。 增量数据迁移是个动态同步的过程,所以建议在增量迁移达到无延迟状态时,在目标数据库上进行业务验证,如果验证成功,那么可以停掉迁移任务,然后将业务切换到目标数据库。 至此,完成将本地 MySQL 数据库实例到阿里云 RDS for MySQL 的数据迁移任务配置。

2019-12-01 23:09:42 0 浏览量 回答数 0

问题

OSS-介绍

青衫无名 2019-12-01 21:34:35 867 浏览量 回答数 0

回答

对于一个简单的数据库应用,由于对于数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能,因为对于连接的使用成了系统性能的瓶颈。连接复用。通过建立一个数据库连接池以及一套连接使用管理策略,使得一个数据库连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。对于共享资源,有一个很著名的设计模式:资源池。该模式正是为了解决资源频繁分配、释放所造成的问题的。把该模式应用到数据库连接管理领域,就是建立一个数据库连接池,提供一套高效的连接分配、使用策略,最终目标是实现连接的高效、安全的复用。数据库连接池的基本原理是在内部对象池中维护一定数量的数据库连接,并对外暴露数据库连接获取和返回方法。如:外部使用者可通过getConnection 方法获取连接,使用完毕后再通过releaseConnection 方法将连接返回,注意此时连接并没有关闭,而是由连接池管理器回收,并为下一次使用做好准备。

huanhuanming 2019-12-02 01:50:31 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档DTS在启动迁移之前,会进行前置预检查,本小节简单介绍Oracle->RDS For PPAS的预检查内容: 预检查项 检查内容 备注 源库连接性检查 检查DTS服务同Oracle实例的连通性 (1) 填写信息是否有误?如果填写信息有误,请修改后重新预检查(2) 检查Oracle是否开启监听端口 目的库连接性检查 检查DTS服务同目的RDS For PPAS实例的连通性 检查填写信息是否有误,如果有误请先修改后重新预检查 源库版本检查 检查Oracle实例的版本,DTS是否支持 DTS目前只支持10g,11g,12c三个版本 源库权限检查 检查Oracle实例访问账号的权限是否满足要求 如果权限不足,请参照上面的权限要求一节授权后,重新预检查 目的库权限检查 检查RDS For PPAS实例访问账号的权限是否满足要求 如果权限不足,请参照上面的权限要求一节授权后,重新预检查 同名对象存在性检查 检查待迁移对象在目标RDS For PPAS是否已经存在 如果检查失败,请将目标库中这些已经存在的对象删除后,重新进行预检查 源端同名对象存在性检查 检查待迁移对象中,要迁入目标同一个schema的对象是否同名 如果检查失败,可以参考 库表列映射 将重名对象进行重命名 源库日志模式检查 检查源库是否开启archive log 如果未开启,请启用后,重新预检查 约束完整性检查 检查待迁移对象依赖的父对象是否迁移 如果检查失败,那么可以修改迁移对象,同时迁移依赖的父对象后,重新预检查 DBLINK存在性检查 检查源库是否存在DBLINK 如果存在,那么需要修改迁移对象,不选择DBLINK 增量拓扑冲突检查 检查同一个迁移对象是否已经存在迁移链路 如果存在冲突链路,那么需要删除掉冲突链路后,重新预检查 字段类型检查 检查待迁移表的是否存在数据类型为long类型的字段 如果存在那么对应的表只能进行全量数据迁移,不能选择增量数据迁移 表是否存在主键或者唯一性非空索引检查 检查待迁移表是否包含主键或非空唯一键 如果存在那么对应的表只能进行全量数据迁移,不能选择增量数据迁移 补偿日志开启检查 检查是否开启supplemental_log 如果未开启,请启用后,重新预检查

2019-12-01 23:09:43 0 浏览量 回答数 0

回答

本文介绍阿里云文件存储NAS与阿里云对象存储OSS、阿里云块存储EBS的区别,帮助您更好地选用阿里云文件存储NAS。 文件存储NAS提供简单、可伸缩弹性的共享文件存储,配合云服务器ECS弹性计算服务构建业务系统。 当您选择使用文件存储NAS、对象存储OSS或块存储EBS部署应用程序时,需要考虑诸多因素。本文介绍文件存储NAS与对象存储OSS、块存储EBS的区别,帮助您更好地进行选择。 架构图 文件存储NAS和对象存储OSS有什么不同? 文件存储NAS和对象存储OSS的主要区别:您无需修改应用,即可直接像访问本地文件系统一样访问文件存储NAS。文件存储NAS提供高吞吐和高IOPS的同时支持文件的随机读写和在线修改。 对象存储OSS是比较新的存储类型,相对于文件存储目录树的组织形式,对象存储OSS采用扁平的文件组织形式,采用RESTFul API接口访问,不支持文件随机读写,主要适用于互联网架构的海量数据的上传下载和分发。 文件存储NAS和块存储EBS有什么不同? 文件存储NAS相对于块存储EBS的主要区别:文件存储NAS可以同时支持上千个ECS客户端同时共享访问,提供高吞吐量。 块存储EBS是裸磁盘,挂载到ECS后不能被操作系统应用直接访问,需要格式化成文件系统(ext3、ext4、NTFS等)后才能被访问。块存储EBS的优势是性能高、时延低,适合于OLTP数据库、NoSQL数据库等IO密集型的高性能、低时延应用工作负载。但是块存储EBS无法容量弹性扩展,单盘最大只能32TB,并且对共享访问的支持有限,需要配合类Oracle RAC、WSFC Windows故障转移集群等集群管理软件才能进行共享访问。因此,块存储EBS主要还是针对单ECS的高性能,低时延的存储产品。 存储产品 时延 吞吐 访问模式 文件存储NAS 低时延(毫秒级) 数百Gbps 上千个ECS通过POSIX接口并发访问,随机读写 对象存储OSS 较低时延(几十毫秒级) 数百Gbps 数百万客户端通过WEB并发,追加写 块存储EBS 极低时延(微秒级) 数十Gbps 单ECS通过POSIX接口访问,随机读写

1934890530796658 2020-03-31 03:14:51 0 浏览量 回答数 0

问题

php中有什么好用的设计模式?

小旋风柴进 2019-12-01 19:50:26 898 浏览量 回答数 1

回答

实现mvvm的双向绑定,是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。就必须要实现以下几点: 1、实现一个数据监听器Observer,能够对数据对象的所有属性进行监听,如有变动可拿到最新值并通知订阅者 2、实现一个指令解析器Compile,对每个元素节点的指令进行扫描和解析,根据指令模板替换数据,以及绑定相应的更新函数 3、实现一个Watcher,作为连接Observer和Compile的桥梁,能够订阅并收到每个属性变动的通知,执行指令绑定的相应回调函数,从而更新视图 4、mvvm入口函数,整合以上三者 一共分四步, 每一步都有大堆解释和一大堆的代码, 然而我真的只是一个名副其实的理工科生, 看到了文中的发布者-订阅者模式, 于是乎我去网上各种百度, 个人理解就是getter函数里面执行的任务就是watcher订阅者, 而setter函数执行的任务就是发布者; 相信很多人看过了这个也是一知半解, 下面我来解释一波: ECMAScript中有两种属性: 数据属性和访问器属性, 数据属性一般用于存储数据数值, 访问器属性对应的是set/get操作, 不能直接存储数据值, 每种属性下面又都含有四个特性.下面介绍一下: 数据属性 1.[[Configurable]]: 表示能否通过delete将属性删除,能否把属性修改为访问器属性, 默认为false。当把属性Configurable设置为false后,该属性不能通过delete删除,并且也无法再将该属性的Configurable设置回true 2.[[Enumerable]]: 表示属性可否被枚举(即是否可以通过for in循环返回),默认false 3.[[Writable]]: 表示属性是否可写(即是否可以修改属性的值),默认false 4.[[Value]]: 该属性的数据值, 默认是undefined 访问器属性 1.[[Configurable]]: 表示能否通过delete将属性删除,能否把属性修改为数据属性, 默认为false。当把属性Configurable设置为false后,该属性不能通过delete删除,并且也无法再将该属性的Configurable设置回true 2.[[Enumerable]]: 表示属性可否被枚举(即是否可以通过for in循环返回),默认false 3.[[Get]]: 读取属性时调用的函数, 默认为undefined 4.[[Set]]: 写入属性时调用的函数, 默认是undefined 在修改属性的特性或者定义访问器属性的时候, 需要借助ECMAScript 5中的一个方法: Object.defineProperty(), 这个方法接收三个参数: 属性所在对象, 属性的名字, 描述符对象; 为对象定义多个属性的话, 就用函数的复数写法:Object.defineProperties(); 那么通过这个ES5的方法就可以直接很简单粗暴的说明双向绑定的原理:

景凌凯 2020-04-06 21:08:58 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档数据传输DTS提供的数据实时同步功能,简单易用。只需3个步骤,即可完成整个同步链路的配置。本小节介绍如何使用数据传输服务快速创建两个RDS(MySQL)实例之间的实时同步作业,实现RDS增量数据的实时同步。 同步限制 数据源 目前实时同步只能支持RDS MySQL实例,暂不支持其他数据源类型目标实例不支持访问模式为标准模式且只有外网连接地址的RDS实例不支持香港可用区A的RDS实例的实时同步 同步架构 目前数据传输服务提供的实时同步功能支持的同步架构有限,其仅能支持如下三种架构: A->B 即两个实例之间的单向同步。且要求B中同步的对象必须为只读,否则可能导致同步链路异常。 A->B/C/D 即1对多的分发式同步架构,这个架构对目标RDS实例个数没有限制,但是要求目标实例中的同步对象必须为只读,否则可能导致同步链路异常。 B/C/D->A 即多对1的数据汇总架构。对于多对1的同步架构,要求每个同步链路的同步对象不相同,保证同步完整性。 对于下面几种同步架构,暂时不支持: A->B->C 即级联架构。 A->B->A 即实例A和实例B之间的双向同步架构。 如果用户配置同步链路过程中,配置了这些不支持的同步架构,那么预检查中的复杂拓扑检查项会检查失败。 不兼容触发器 如果同步对象为整个库且这个库中包含了会更新同步表内容的触发器,那么可能导致同步数据不一致。 触发器内容为在insert一条数据到a之后,在b中插入一条数据。这种情况下,在同步过程中,如果源实例有a上的insert操作,就会导致b表在源实例跟目标实例数据不一致。 为了解决这个问题,只能将目标实例中的对应触发器删除掉。b表的数据由源实例同步过去。具体解决方案详见最佳实践中的,触发器存在情况下如何配置同步链路。 前提条件在配置同步作业前,要确保同步作业的源及目标RDS实例都已经存在。如果不存在,那么请先购买RDS实例购买RDS实例。 操作步骤下面我们详细介绍下创建任意两个RDS实例之间的同步链路的具体步骤。 购买同步链路。 进入数据传输服务控制台,进入数据同步页面。点击控制台右上角“创建同步作业” 开始作业配置。在链路配置之前需要购买一个同步链路。同步链路目前支持包年包月及按量付费两种付费模式,可以根据需要选择不同的付费模式。 在购买页面需要配置的参数包括: 源地域 源地域为同步链路源RDS实例所在地域。 目标地域 目标地域为同步链路目标RDS实例所在地域。 实例规格 实例规格影响了链路的同步性能,实例规格跟性能之间的对应关系详见 数据同步规格说明。 数量 数量为一次性购买的同步链路的数量,如果购买的是按量付费实例,一次最多购买99条链路。 当购买完同步实例,返回数据传输控制台,点击新购链路右侧的“配置同步作业” 开始链路配置。 同步链路连接信息配置。 在这一步主要配置: 同步作业名称同步作业名称没有唯一性要求,主要为了更方便识别具体的作业,建议选择一个有业务意义的作业名称,方便后续的链路查找及管理。同步链路的RDS实例ID源跟目标RDS实例必须为两个不同的实例,选择RDS实例ID时,下拉菜单中只列出对应阿里云账号下的RDS For MySQL实例。 当这些内容配置完成后,可以点击“授权白名单并进入下一步”。 授权RDS实例白名单。 这个步骤,主要是将数据传输服务器IP添加到同步RDS实例的白名单中。避免因为RDS设置了白名单,数据传输服务器连接不上RDS导致同步作业创建失败。 为了保证同步作业的稳定性,在同步过程中,请勿将这些服务器IP从RDS实例的白名单中删除。 当白名单授权后,点击下一步,进入同步账号创建。 创建目标库上的同步账号。 这个步骤主要是在目标RDS实例上创建一个同步账号,账号名字为:dtssyncwriter,在同步过程中,不能删除这个账号,否则会导致同步链路中断。 选择同步对象。 当创建完目标RDS实例的同步账号后,即进入同步对象的选择步骤。实时同步的同步对象的选择粒度可以支持到表级别,即用户可以选择同步某些库或是同步某几张表。 如果选择的同步对象为整个库,那么这个库中所有对象的结构变更操作(例如create table,drop view 等),都会同步到目标库。 如果选择的某张表,那么只有这个表的drop/alter/truncate/rename table,create/drop index 的操作会同步到目标库。 需要注意的是rename table操作可能导致同步数据不一致。例如同步对象只包含表A,不包含表B,如果同步过程中源实例执行了rename A to B的操作,那么改名后的B表的操作不会被同步到目标库。为了解决这个问题,可以选择同步表A、B对应的整个数据库。 当选择完同步对象后,即进入同步初始化选择。 同步初始化配置。 同步初始化配置,初始化是同步链路启动的第一步,它会将源实例中已经存在同步对象的结构及数据在目标实例中初始化,作为后续增量同步数据的基线数据。 同步初始化类型细分为:结构初始化,全量数据初始化。默认情况下,需要选择结构初始化及全量初始化。 预检查。 当上面所有选项配置完成后,即进入启动之前的预检查。 当同步作业配置完成后,数据传输服务会进行限制预检查,当预检查通过后,可以点击 启动 按钮,启动同步作业。 当同步作业启动之后,即进入同步作业列表。此时刚启动的作业处于同步初始化状态。初始化的时间长度依赖于源实例中同步对象的数据量大小。当初始化完成后同步链路即进入同步中的状态,此时源跟目标实例的同步链路才真正建立完成。

2019-12-01 23:09:39 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档数据传输DTS提供的数据实时同步功能,简单易用。只需3个步骤,即可完成整个同步链路的配置。本小节介绍如何使用数据传输服务快速创建两个RDS(MySQL)实例之间的实时同步作业,实现RDS增量数据的实时同步。 同步限制 数据源 目前实时同步只能支持RDS MySQL实例,暂不支持其他数据源类型目标实例不支持访问模式为标准模式且只有外网连接地址的RDS实例不支持香港可用区A的RDS实例的实时同步 同步架构 目前数据传输服务提供的实时同步功能支持的同步架构有限,其仅能支持如下三种架构: A->B 即两个实例之间的单向同步。且要求B中同步的对象必须为只读,否则可能导致同步链路异常。 A->B/C/D 即1对多的分发式同步架构,这个架构对目标RDS实例个数没有限制,但是要求目标实例中的同步对象必须为只读,否则可能导致同步链路异常。 B/C/D->A 即多对1的数据汇总架构。对于多对1的同步架构,要求每个同步链路的同步对象不相同,保证同步完整性。 对于下面几种同步架构,暂时不支持: A->B->C 即级联架构。 A->B->A 即实例A和实例B之间的双向同步架构。 如果用户配置同步链路过程中,配置了这些不支持的同步架构,那么预检查中的复杂拓扑检查项会检查失败。 不兼容触发器 如果同步对象为整个库且这个库中包含了会更新同步表内容的触发器,那么可能导致同步数据不一致。 触发器内容为在insert一条数据到a之后,在b中插入一条数据。这种情况下,在同步过程中,如果源实例有a上的insert操作,就会导致b表在源实例跟目标实例数据不一致。 为了解决这个问题,只能将目标实例中的对应触发器删除掉。b表的数据由源实例同步过去。具体解决方案详见最佳实践中的,触发器存在情况下如何配置同步链路。 前提条件在配置同步作业前,要确保同步作业的源及目标RDS实例都已经存在。如果不存在,那么请先购买RDS实例购买RDS实例。 操作步骤下面我们详细介绍下创建任意两个RDS实例之间的同步链路的具体步骤。 购买同步链路。 进入数据传输服务控制台,进入数据同步页面。点击控制台右上角“创建同步作业” 开始作业配置。在链路配置之前需要购买一个同步链路。同步链路目前支持包年包月及按量付费两种付费模式,可以根据需要选择不同的付费模式。 在购买页面需要配置的参数包括: 源地域 源地域为同步链路源RDS实例所在地域。 目标地域 目标地域为同步链路目标RDS实例所在地域。 实例规格 实例规格影响了链路的同步性能,实例规格跟性能之间的对应关系详见 数据同步规格说明。 数量 数量为一次性购买的同步链路的数量,如果购买的是按量付费实例,一次最多购买99条链路。 当购买完同步实例,返回数据传输控制台,点击新购链路右侧的“配置同步作业” 开始链路配置。 同步链路连接信息配置。 在这一步主要配置: 同步作业名称同步作业名称没有唯一性要求,主要为了更方便识别具体的作业,建议选择一个有业务意义的作业名称,方便后续的链路查找及管理。同步链路的RDS实例ID源跟目标RDS实例必须为两个不同的实例,选择RDS实例ID时,下拉菜单中只列出对应阿里云账号下的RDS For MySQL实例。 当这些内容配置完成后,可以点击“授权白名单并进入下一步”。 授权RDS实例白名单。 这个步骤,主要是将数据传输服务器IP添加到同步RDS实例的白名单中。避免因为RDS设置了白名单,数据传输服务器连接不上RDS导致同步作业创建失败。 为了保证同步作业的稳定性,在同步过程中,请勿将这些服务器IP从RDS实例的白名单中删除。 当白名单授权后,点击下一步,进入同步账号创建。 创建目标库上的同步账号。 这个步骤主要是在目标RDS实例上创建一个同步账号,账号名字为:dtssyncwriter,在同步过程中,不能删除这个账号,否则会导致同步链路中断。 选择同步对象。 当创建完目标RDS实例的同步账号后,即进入同步对象的选择步骤。实时同步的同步对象的选择粒度可以支持到表级别,即用户可以选择同步某些库或是同步某几张表。 如果选择的同步对象为整个库,那么这个库中所有对象的结构变更操作(例如create table,drop view 等),都会同步到目标库。 如果选择的某张表,那么只有这个表的drop/alter/truncate/rename table,create/drop index 的操作会同步到目标库。 需要注意的是rename table操作可能导致同步数据不一致。例如同步对象只包含表A,不包含表B,如果同步过程中源实例执行了rename A to B的操作,那么改名后的B表的操作不会被同步到目标库。为了解决这个问题,可以选择同步表A、B对应的整个数据库。 当选择完同步对象后,即进入同步初始化选择。 同步初始化配置。 同步初始化配置,初始化是同步链路启动的第一步,它会将源实例中已经存在同步对象的结构及数据在目标实例中初始化,作为后续增量同步数据的基线数据。 同步初始化类型细分为:结构初始化,全量数据初始化。默认情况下,需要选择结构初始化及全量初始化。 预检查。 当上面所有选项配置完成后,即进入启动之前的预检查。 当同步作业配置完成后,数据传输服务会进行限制预检查,当预检查通过后,可以点击 启动 按钮,启动同步作业。 当同步作业启动之后,即进入同步作业列表。此时刚启动的作业处于同步初始化状态。初始化的时间长度依赖于源实例中同步对象的数据量大小。当初始化完成后同步链路即进入同步中的状态,此时源跟目标实例的同步链路才真正建立完成。

2019-12-01 23:09:39 0 浏览量 回答数 0

问题

实现访问者模式

哦哦喔 2020-04-17 15:09:04 0 浏览量 回答数 1

回答

详细解答可以参考官方帮助文档本小节介绍如何使用数据传输服务快速创建两个 RDS for MySQL 实例之间的实时同步作业,实现 RDS for MySQL 增量数据的实时同步。 支持功能 支持阿里云账号下两个 RDS for MySQL 实例间的实时同步。支持不同阿里云账号下的 RDS for MySQL 实例间的实时同步。暂不支持不同阿里云账号下的 RDS for MySQL 实例间的双向同步,具体支持时间将另行通知。 同步限制数据源 目前实时同步只能支持 RDS for MySQL 实例,暂不支持其他数据源类型。目标实例不支持访问模式为标准模式且只有外网连接地址的 RDS for MySQL 实例。不支持香港可用区 A 的 RDS for MySQL 实例的实时同步。对于 rename table tbl_name to new_tbl_name、create table tbl_name like new_tbl_name、 create…select…from new_tbl_name、alter table tbl_name rename to new_tbl_name,如果 new_tbl_name 不在指定的同步对象中,则不支持对此 DDL 进行复制。 同步架构目前数据传输服务提供的实时同步功能支持的同步架构有限,其仅能支持如下架构: A->B 即两个实例之间的单向同步。且要求实例 B 中同步的对象必须为只读,否则会导致同步链路异常,出现数据不一致的情况。 A->B/C/D 即一对多的分发式同步架构,这个架构对目标 RDS for MySQL 实例个数没有限制,但是要求目标实例中的同步对象必须为只读,否则会导致同步链路异常,出现数据不一致的情况。 B/C/D->A 即多对一的数据汇总架构。对于这种多对一的同步架构,为了保证同步数据一致性,要求每条同步链路同步的对象不相同。 A->B->C 即级联架构。 A->B->A 即实例A和实例B之间的双向同步架构。 注意:如果需要使用双向同步,需要在购买同步链路时,选择双向同步,并在 数据传输 DTS 控制台 中根据指引进行配置。 如果用户配置同步链路过程中,配置不在上述支持范围内的的同步架构,那么预检查中的复杂拓扑检查项会检查失败。 功能限制 不兼容触发器 如果同步对象为整个库且这个库中包含了会更新同步表内容的触发器,会导致同步数据不一致。 例如同步库为A,这个库中存在了两个表 A, B。表 A 上有一个触发器,触发器内容为在 insert 一条数据到表 A 之后,在表 B 中插入一条数据。这种情况下,在同步过程中,如果源实例有表 A 上的 insert 操作,就会导致表 B 在源实例跟目标实例数据不一致。 为了解决这个问题,只能将目标实例中的对应触发器删除掉。表 B 的数据由源实例同步过去。具体解决方案详见最佳实践中的,触发器存在情况下如何配置同步链路。 rename table 限制 rename table 操作需要满足限制条件方可正常同步,否则会导致同步数据不一致。例如同步对象只包含表 A,不包含表 B,如果同步过程中源实例执行了 rename A to B 的操作,那么改名后的表 B 的操作不会被同步到目标库。为了解决这个问题,可以选择同步表 A、B 对应的整个数据库。 准备事项在配置同步作业前,要确保同步作业的源及目标RDS实例都已经存在。如果不存在,那么请先购买RDS实例 购买 RDS 实例。 配置步骤下面我们详细介绍下创建任意两个 RDS 实例之间的同步链路的具体步骤。 购买同步链路。 进入数据传输 DTS 控制台,进入数据同步页面,点击控制台右上角 “创建同步作业” 开始作业配置。 在链路配置之前需要购买一个同步链路。同步链路目前支持包年包月及按量付费两种付费模式,可以根据需要选择不同的付费模式。 在购买页面需要配置的参数包括: 源地域 源地域为同步链路源实例所在地域。 目标地域 目标地域为同步链路目标实例所在地域。 实例规格 实例规格影响了链路的同步性能,实例规格跟性能之间的对应关系详见 数据同步规格说明。 数量 数量为一次性购买的同步链路的数量,如果购买的是按量付费实例,一次最多购买 99 条链路。 当购买完同步实例,返回数据传输控制台,点击新购链路右侧的“配置同步作业” 开始链路配置。 同步链路连接信息配置。 在这一步主要配置: 同步作业名称 同步作业名称没有唯一性要求,主要为了更方便识别具体的作业,建议选择一个有业务意义的作业名称,方便后续的链路查找及管理。 同步链路的 RDS 实例 ID 源跟目标 RDS 实例必须为两个不同的实例,选择 RDS 实例 ID 时,下拉菜单中只列出对应阿里云账号下的 RDS for MySQL 实例。 当这些内容配置完成后,可以点击授权白名单并进入下一步。 授权RDS实例白名单。 这个步骤,主要是将数据传输服务器 IP 添加到同步 RDS 实例的白名单中。避免因为 RDS 设置了白名单,数据传输服务器连接不上 RDS 导致同步作业创建失败。 为了保证同步作业的稳定性,在同步过程中,请勿将这些服务器 IP 从 RDS 实例的白名单中删除。 当白名单授权后,点击下一步,进入同步账号创建。 创建目标库上的同步账号。 这个步骤主要是在目标 RDS 实例上创建一个同步账号,账号名字为:dtssyncwriter,在同步过程中,不能删除这个账号,否则会导致同步链路中断。 选择同步对象。 当创建完目标 RDS 实例的同步账号后,即进入同步对象的选择步骤。实时同步的同步对象的选择粒度可以支持到表级别,即用户可以选择同步某些库或是同步某几张表。 如果选择的同步对象为整个库,那么这个库中所有对象的结构变更操作(例如 create table,drop view 等),都会同步到目标库。 如果选择的某张表,那么只有这个表的 drop/alter/truncate/rename table,create/drop index 的操作会同步到目标库。 当配置完同步对象后,进入同步初始化配置。 同步初始化配置。 同步初始化配置,初始化是同步链路启动的第一步,它会将源实例中已经存在同步对象的结构及数据在目标实例中初始化,作为后续增量同步数据的基线数据。 同步初始化类型细分为:结构初始化,全量数据初始化。默认情况下,需要选择结构初始化及全量初始化。 预检查。 当上面所有选项配置完成后,即进入启动之前的预检查。 当同步作业配置完成后,数据传输服务会进行限制预检查,当预检查通过后,可以点击 启动 按钮,启动同步作业。 当同步作业启动之后,即进入同步作业列表。此时刚启动的作业处于同步初始化状态。初始化的时间长度依赖于源实例中同步对象的数据量大小。当初始化完成后同步链路即进入同步中的状态,此时源跟目标实例的同步链路才真正建立完成。

2019-12-01 23:09:47 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档本小节介绍如何使用数据传输服务快速创建两个 RDS for MySQL 实例之间的实时同步作业,实现 RDS for MySQL 增量数据的实时同步。 支持功能 支持阿里云账号下两个 RDS for MySQL 实例间的实时同步。支持不同阿里云账号下的 RDS for MySQL 实例间的实时同步。暂不支持不同阿里云账号下的 RDS for MySQL 实例间的双向同步,具体支持时间将另行通知。 同步限制数据源 目前实时同步只能支持 RDS for MySQL 实例,暂不支持其他数据源类型。目标实例不支持访问模式为标准模式且只有外网连接地址的 RDS for MySQL 实例。不支持香港可用区 A 的 RDS for MySQL 实例的实时同步。对于 rename table tbl_name to new_tbl_name、create table tbl_name like new_tbl_name、 create…select…from new_tbl_name、alter table tbl_name rename to new_tbl_name,如果 new_tbl_name 不在指定的同步对象中,则不支持对此 DDL 进行复制。 同步架构目前数据传输服务提供的实时同步功能支持的同步架构有限,其仅能支持如下架构: A->B 即两个实例之间的单向同步。且要求实例 B 中同步的对象必须为只读,否则会导致同步链路异常,出现数据不一致的情况。 A->B/C/D 即一对多的分发式同步架构,这个架构对目标 RDS for MySQL 实例个数没有限制,但是要求目标实例中的同步对象必须为只读,否则会导致同步链路异常,出现数据不一致的情况。 B/C/D->A 即多对一的数据汇总架构。对于这种多对一的同步架构,为了保证同步数据一致性,要求每条同步链路同步的对象不相同。 A->B->C 即级联架构。 A->B->A 即实例A和实例B之间的双向同步架构。 注意:如果需要使用双向同步,需要在购买同步链路时,选择双向同步,并在 数据传输 DTS 控制台 中根据指引进行配置。 如果用户配置同步链路过程中,配置不在上述支持范围内的的同步架构,那么预检查中的复杂拓扑检查项会检查失败。 功能限制 不兼容触发器 如果同步对象为整个库且这个库中包含了会更新同步表内容的触发器,会导致同步数据不一致。 例如同步库为A,这个库中存在了两个表 A, B。表 A 上有一个触发器,触发器内容为在 insert 一条数据到表 A 之后,在表 B 中插入一条数据。这种情况下,在同步过程中,如果源实例有表 A 上的 insert 操作,就会导致表 B 在源实例跟目标实例数据不一致。 为了解决这个问题,只能将目标实例中的对应触发器删除掉。表 B 的数据由源实例同步过去。具体解决方案详见最佳实践中的,触发器存在情况下如何配置同步链路。 rename table 限制 rename table 操作需要满足限制条件方可正常同步,否则会导致同步数据不一致。例如同步对象只包含表 A,不包含表 B,如果同步过程中源实例执行了 rename A to B 的操作,那么改名后的表 B 的操作不会被同步到目标库。为了解决这个问题,可以选择同步表 A、B 对应的整个数据库。 准备事项在配置同步作业前,要确保同步作业的源及目标RDS实例都已经存在。如果不存在,那么请先购买RDS实例 购买 RDS 实例。 配置步骤下面我们详细介绍下创建任意两个 RDS 实例之间的同步链路的具体步骤。 购买同步链路。 进入数据传输 DTS 控制台,进入数据同步页面,点击控制台右上角 “创建同步作业” 开始作业配置。 在链路配置之前需要购买一个同步链路。同步链路目前支持包年包月及按量付费两种付费模式,可以根据需要选择不同的付费模式。 在购买页面需要配置的参数包括: 源地域 源地域为同步链路源实例所在地域。 目标地域 目标地域为同步链路目标实例所在地域。 实例规格 实例规格影响了链路的同步性能,实例规格跟性能之间的对应关系详见 数据同步规格说明。 数量 数量为一次性购买的同步链路的数量,如果购买的是按量付费实例,一次最多购买 99 条链路。 当购买完同步实例,返回数据传输控制台,点击新购链路右侧的“配置同步作业” 开始链路配置。 同步链路连接信息配置。 在这一步主要配置: 同步作业名称 同步作业名称没有唯一性要求,主要为了更方便识别具体的作业,建议选择一个有业务意义的作业名称,方便后续的链路查找及管理。 同步链路的 RDS 实例 ID 源跟目标 RDS 实例必须为两个不同的实例,选择 RDS 实例 ID 时,下拉菜单中只列出对应阿里云账号下的 RDS for MySQL 实例。 当这些内容配置完成后,可以点击授权白名单并进入下一步。 授权RDS实例白名单。 这个步骤,主要是将数据传输服务器 IP 添加到同步 RDS 实例的白名单中。避免因为 RDS 设置了白名单,数据传输服务器连接不上 RDS 导致同步作业创建失败。 为了保证同步作业的稳定性,在同步过程中,请勿将这些服务器 IP 从 RDS 实例的白名单中删除。 当白名单授权后,点击下一步,进入同步账号创建。 创建目标库上的同步账号。 这个步骤主要是在目标 RDS 实例上创建一个同步账号,账号名字为:dtssyncwriter,在同步过程中,不能删除这个账号,否则会导致同步链路中断。 选择同步对象。 当创建完目标 RDS 实例的同步账号后,即进入同步对象的选择步骤。实时同步的同步对象的选择粒度可以支持到表级别,即用户可以选择同步某些库或是同步某几张表。 如果选择的同步对象为整个库,那么这个库中所有对象的结构变更操作(例如 create table,drop view 等),都会同步到目标库。 如果选择的某张表,那么只有这个表的 drop/alter/truncate/rename table,create/drop index 的操作会同步到目标库。 当配置完同步对象后,进入同步初始化配置。 同步初始化配置。 同步初始化配置,初始化是同步链路启动的第一步,它会将源实例中已经存在同步对象的结构及数据在目标实例中初始化,作为后续增量同步数据的基线数据。 同步初始化类型细分为:结构初始化,全量数据初始化。默认情况下,需要选择结构初始化及全量初始化。 预检查。 当上面所有选项配置完成后,即进入启动之前的预检查。 当同步作业配置完成后,数据传输服务会进行限制预检查,当预检查通过后,可以点击 启动 按钮,启动同步作业。 当同步作业启动之后,即进入同步作业列表。此时刚启动的作业处于同步初始化状态。初始化的时间长度依赖于源实例中同步对象的数据量大小。当初始化完成后同步链路即进入同步中的状态,此时源跟目标实例的同步链路才真正建立完成。

2019-12-01 23:09:47 0 浏览量 回答数 0

回答

不变性:String 是只读字符串,是一个典型的 immutable 对象,对它进行任何操作,其实都是创建一个新的对象,再把引用指向该对象。不变模式的主要作用在于当一个对象需要被多线程共享并频繁访问时,可以保证数据的一致性。 常量池优化:String 对象创建之后,会在字符串常量池中进行缓存,如果下次创建同样的对象时,会直接返回缓存的引用。 final:使用 final 来定义 String 类,表示 String 类不能被继承,提高了系统的安全性。

剑曼红尘 2020-03-27 16:22:01 0 浏览量 回答数 0

回答

      先假controller定采用单例模式,通常两种设计方式来存放 HttpServletRequest、HttpServletResponse 等对象,一是利用一个类似于 ActionContext 的对象然后用 ThreadLocal 绑定到当前线程,这种方式仍然要创建 ActionContext 对象,空间消耗并不比jfinal现在的controler模式少;二是不将 ActionContext 实例化,而是在 ActionContext 中使用多个 ThreadLocal 分别存放  HttpServletRequest、HttpServletResponse 等等请求上下文对象,采用多个 ThreadLocal 存放和读取 request、response 等对象的性能远不如 jfinal controller中的 getRequest()、getResponse(),并且通常这些对象是需要多次获取,所以需要多次从 ThreadLocal 中获取,并且在本次请求结束后需要在 finally 块中使用 threadLocal.remove() 掉这些对象,这也会消耗性能。      所以 Controller 做成单例,一是仍然无法避免 new 出对象来,二是从threadLocal中取数据性能远不如getter 方法,现在的服务器都是大内存,用空间换时间已成为更好的选择。      再假设 Controller 采用非单例模式,如果在 controller 定义了属性值,天然就可以避免线程安全问题。至于内存空间消耗可以精确地计算出来,Controller 类共有八个属性,其中三个是 static 全局共享的那么 Controller 对象占用内存情况:        Controller对象占用内存 = 对象头 + 属性指针 + 对齐填充 = 8 + 4*5 +  4 = 32Bytes       JVM存放每个字符使用 2个字节,那么一个controller对象仅相当于一个 16 个字符的String而已。       假定你的服务器每天接受 1亿次请求,创建 controller 需要的内存为:32Bytes * 1亿 = 2.98GB,一亿次请求创建Controller对象只需要 2.89GB内存,并且JVM 有自动回收内存的机制。相对于整个调用堆栈 controller 所占内存可以忽略不计,例如通常一次数据库访问 find(sql) 出来的数据所占内存远比多次创建 controller 对象要占用内存多得多。 ######赞,不明觉厉######刚才公司技术人员看了源码想要讨论这个问题,正好让他们看看######赞 又涨姿势了... 其实以前我就想问这个问题...######赞!![30]不明觉厉###### 不明觉厉啊!######涨知识了###### 我说一句啊,这个 单例模式 ,除了节省内存,还节省了cpu开支,每次请求创建一次对象,不但消耗,而且cpu创建对象要消耗很多时间,远大于get set,根本不可能有什么空间换时间的说法,自己建个spring mvc controller 和jfinal controller,都不用什么测试,自己页面上f5就知道优劣了

爱吃鱼的程序员 2020-05-30 23:35:44 0 浏览量 回答数 0

问题

CANopen通信之PDO通信

优惠券发放 2019-12-01 21:39:32 3549 浏览量 回答数 0

回答

首先,我们先来聊聊各类数据模型。下列相关信息参考自Emil Eifrem的博文及NoSQL数据库说明。文档类数据库传承:受Lotus Notes启发而来。数据模型:文档汇总,包括键-值汇总。实例: CouchDB, MongoDB优势: 数据建模自然、程序员易于上手、开发流程短、兼容网页模式、便于达成CRUD(即添加、查询、更新及删除的简称)。图形类数据库传承:来自 Euler 及图形理论。数据模型:节点及关系,二者结合能够保持键-值间的成对状态实例: AllegroGraph, InfoGrid, Neo4j优势:轻松玩转复杂的图形问题、处理速度快关系类数据库传承:源自 E. F. Codd在大型共享数据库中所提出的数据关系模型理论数据模型:以关系组为基础实例: VoltDB, Clustrix, MySQL优势:性能强大、联机事务处理系统扩展性好、支持SQL访问、视图直观、擅长处理交易关系、与程序员间的交互效果优异面向对象类数据库传承:源自图形数据库方面的研究成果数据模型: 对象实例: Objectivity, Gemstone优势:擅长处理复杂的对象模型、快速的键-值访问及键-功能访问并且兼具图形数据库的各类功能键-值存储传承: Amazon Dynamo中的paper概念及分布式hash表数据模型:对成对键-值的全局化汇总实例: Membase, Riak优势:尺寸掌控得当、擅长处理持续的小规模读写需求、速度快、程序员易于上手BigTable Clones传承自:谷歌BigTable中的paper概念数据模型:纵列群,即在某个表格模型中,每行在理论上至少可以有一套单独的纵列配置实例: HBase, Hypertable, Cassandra优势:尺寸掌控得当、擅长应对大规模写入负载、可用性高、支持多数据中心、支持映射简化数据结构类服务传承: 不明实例: Redis数据模型: 执行过程基于索引、列表、集合及字符串值优势:为数据库应用引入前所未有的新鲜血液网格类数据库传承:源自数据网格及元组空间研究数据模型:基于空间的构架实例: GigaSpaces, Coherence优势:优良的性能表现及上佳的交易处理扩展性我们该为自己的应用程序选择哪套方案?选择的关键在于重新思考我们的应用程序如何依据不同数据模型及不同产品进行有针对性的协同工作。即用正确的数据模型处理对应的现实任务、用正确的产品解决对应的现实问题。要探究哪类数据模型能够切实为我们的应用程序提供帮助,可以参考“到底NoSQL能在我们的工作中发挥什么作用?”一文。在这篇文章中,我试着将各种不同特性、不同功能的常用创建系统中的那些非常规的应用实例综合起来。将应用实例中的客观需求与我们的选择联系起来。这样大家就能够逆向分析出我们的基础架构中适合引入哪些产品。至于具体结论是NoSQL还是SQL,这已经不重要了。关注数据模型、产品特性以及自身需要。产品总是将各种不同的功能集中起来,因此我们很难单纯从某一类数据模型构成方式的角度直接找到最合用的那款。对功能及特性的需求存在优先级,只要对这种优先级具备较为清晰的了解,我们就能够做出最佳选择。如果我们的应用程序需要…复杂的交易:因为没人愿意承受数据丢失,或者大家更倾向于一套简单易用的交易编程模式,那么请考虑使用关系类或网格类数据库。例如:一套库存系统可能需要完整的ACID(即数据库事务执行四要素:原子性、一致性、隔离性及持久性)。顾客选中了一件产品却被告知没有库存了,这类情况显然容易引起麻烦。因为大多数时候,我们想要的并不是额外补偿、而只是选中的那件货品。若是以扩展性为优先,那么NoSQL或SQL都能应对自如。这种情况下我们需要关注那些支持向外扩展、分类处理、实时添加及移除设备、负载平衡、自动分类及整理并且容错率较高的系统。要求持续保有数据库写入功能,则需要较高的可用性。在这种情况下不妨关注BigTable类产品,其在一致性方面表现出众。如有大量的小规模持续读写要求,也就是说工作负载处于波动状态,可以关注文档类、键-值类或是那些提供快速内存访问功能的数据库。引入固态硬盘作为存储媒介也是不错的选择。以社交网络为实施重点的话,我们首先想到的就是图形类数据库;其次则是Riak这种关系类数据库。具备简单SQL功能的常驻内存式关系数据库基本上就可以满足小型数据集合的需求。Redis的集合及列表操作也能发挥作用。如果我们的应用程序需要…在访问模式及数据类型多种多样的情况下,文档类数据库比较值得考虑。这类数据库不仅灵活性好,性能表现也可圈可点。需要完备的脱机报告与大型数据集的话,首选产品是Hadoop,其次则是支持映射简化的其它产品。不过仅仅支持映射简化还不足以提供如Hadoop一样上佳的处理能力。如果业务跨越数个数据中心,Bigtable Clone及其它提供分布式选项的产品能够应对由地域距离引起的延迟现象,并具备较好的分区兼容性。要建立CRUD应用程序,首选文档类数据库。这类产品简化了从外部访问复杂数据的过程。需要内置搜索功能的话,推荐Riak。要对数据结构中的诸如列表、集合、队列及发布/订阅信息进行操作,Redis是不二之选。其具备的分布式锁定、覆盖式日志及其它各种功能都会在这类应用状态下大放异彩。将数据以便于处理的形式反馈给程序员(例如以JSON、HTTP、REST、Javascript这类形式),文档类数据库能够满足这类诉求,键-值类数据库效果次之。如果我们的应用程序需要…以直观视图的形式进行同步交易,并且具备实时数据反馈功能,VoltDB算得上一把好手。其数据汇总以及时间窗口化的表现都非常抢眼。若是需要企业级的支持及服务水平协议,我们需要着眼于特殊市场。Membase就是这样一个例子。要记录持续的数据流,却找不到必要的一致性保障?BigTable Clone交出了令人满意的答卷,因为其工作基于分布式文件系统,所以可以应对大量的写入操作。要让操作过程变得尽可能简单,答案一定在托管或平台即服务类方案之中。它们存在的目的正是处理这类要求。要向企业级客户做出推荐?不妨考虑关系类数据库,因为它们的长项就是具备解决繁杂关系问题的技术。如果需要利用动态方式建立对象之间的关系以使其具有动态特性,图形类数据库能帮上大忙。这类产品往往不需要特定的模式及模型,因此可以通过编程逐步建立。S3这类存储服务则是为支持大型媒体信息而生。相比之下NoSQL系统则往往无法处理大型二进制数据块,尽管MongoDB本身具备文件服务功能。如果我们的应用程序需要…有高效批量上传大量数据的需求?我们还是得找点有对应功能的产品。大多数产品都无法胜任,因为它们不支持批量操作。文档类数据库或是键-值类数据库能够利用流畅的模式化系统提供便捷的上传途径,因为这两类产品不仅支持可选区域、添加区域及删除区域,而且无需建立完整的模式迁移框架。要实现完整性限制,就得选择一款支持SQL DLL的产品,并在存储过程或是应用程序代码中加以运行。对于协同工作极为依赖的时候就要选择图形类数据库,因为这类产品支持在不同实体间的迅速切换。数据的移动距离较短且不必经过网络时,可以在预存程序中做出选择。预存程序在关系类、网格类、文档类甚至是键-值类数据库中都能找到。如果我们的应用程序需要…键-值存储体系擅长处理BLOB类数据的缓存及存储问题。缓存可以用于应对网页或复杂对象的存储,这种方案能够降低延迟、并且比起使用关系类数据库来说成本也较低。对于数据安全及工作状态要求较高的话可以尝试使用定制产品,并且在普遍的工作范畴(例如向上扩展、调整、分布式缓存、分区及反规范化等等)之外一定要为扩展性(或其它方面)准备解决方案。多样化的数据类型意味着我们的数据不能简单用表格来管理或是用纵列来划分,其复杂的结构及用户组成(也可能还有其它各种因素)只有文档类、键-值类以及Bigtable Clone这些数据库才能应付。上述各类数据库都具备极为灵活的数据类型处理能力。有时其它业务部门会需要进行快速关系查询,引入这种查询方式可以使我们不必为了偶尔的查看而重建一切信息。任何支持SQL的数据库都能实现这类查询。至于在云平台上运行并自动充分利用云平台的功能——这种美好的愿望目前还只能是愿望。如果我们的应用程序需要…支持辅助索引,以便通过不同的关键词查找数据,这要由关系类数据库及Cassandra推出的新辅助索引系统共同支持才能实现。创建一套处于不断增长中的数据集合(真正天文数量级的数据)然而访问量却并不大,那么Bigtable Clone是最佳选择,因为它会将数据妥善安排在分布式文件系统当中。需要整合其它类型的服务并确保数据库提供延后写入同步功能?那最好的实现方式是捕捉数据库的各种变化并将其反馈到其它系统中以保障运作的一致性。通过容错性检查了解系统对供电中断、隔离及其它故障情况的适应程度。若是当前的某项技术尚无人问津、自己却感觉大有潜力可挖,不妨在这条路上坚持走下去。这种情况有时会带来意料之外的美好前景。尝试在移动平台上工作并关注CouchDB及移动版couchbase。哪种方案更好?25%的状态改善尚不足以让我们下决心选择NoSQL。选择标准是否恰当取决于实际情况。这类标准对你的方案有指导意义吗?如果你的公司尚处于起步阶段,并且需要尽快推出自己的产品,这时不要再犹豫不决了。无论是SQL还是NoSQL都可以作为参考。

a123456678 2019-12-02 03:00:14 0 浏览量 回答数 0

回答

vue 通过使用双向数据绑定,来实现了 View 和 Model 的同步更新。vue 的双向数据绑定主要是通过使用数据劫持和发布订阅者模式来实现的。 首先我们通过 Object.defineProperty() 方法来对 Model 数据各个属性添加访问器属性,以此来实现数据的劫持,因此当 Model 中的数据发生变化的时候,我们可以通过配置的 setter 和 getter 方法来实现对 View 层数据更新的通知。 数据在 html 模板中一共有两种绑定情况,一种是使用 v-model 来对 value 值进行绑定,一种是作为文本绑定,在对模板引擎进行解析的过程中。 如果遇到元素节点,并且属性值包含 v-model 的话,我们就从 Model 中去获取 v-model 所对应的属性的值,并赋值给元素的 value 值。然后给这个元素设置一个监听事件,当 View 中元素的数据发生变化的时候触发该事件,通知 Model 中的对应的属性的值进行更新。 如果遇到了绑定的文本节点,我们使用 Model 中对应的属性的值来替换这个文本。对于文本节点的更新,我们使用了发布订阅者模式,属性作为一个主题,我们为这个节点设置一个订阅者对象,将这个订阅者对象加入这个属性主题的订阅者列表中。当 Model 层数据发生改变的时候,Model 作为发布者向主题发出通知,主题收到通知再向它的所有订阅者推送,订阅者收到通知后更改自己的数 据。

剑曼红尘 2020-04-06 21:09:13 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播