OTTER让MSSQL数据同步变得轻而易举

OTTER让MSSQL数据同步变得轻而易举

OTTER是一套开源的数据同步工具,能够实现不同数据库之间的数据同步,包括MSSQL、MySQL、Oracle等主流数据库。本文将从OTTER的基本特点、优点、配置及实现数据同步等方面,详细介绍如何使用OTTER进行MSSQL数据同步。

一、OTTER的基本特点

1. 支持多种数据库

OTTER不仅支持多种常见的数据库,如MSSQL、MySQL、Oracle等,还支持一些别的数据库,如PostgreSQL、MongoDB等。

2. 易于掌握使用

OTTER通过可视化、易用的Web方式,让用户可以快速入门和掌握使用。相对于手写和维护复杂的同步代码,OTTER让开发人员更专注于代码的业务逻辑实现。

3. 支持数据实时同步

OTTER支持实时同步,可以将源数据库的数据变更快速同步到目标数据库中,建立起源数据库和目标数据库之间的实时数据同步。

二、OTTER的优点

1. 开源免费

OTTER是一款开源工具,可免费使用。这个特点意味着它的代码透明,安全可信,并且用户可以自由修改它的代码以满足自己的需求。

2. 易于使用

OTTER是一个可视化的工具,不需要深入的技术知识就能够进行配置和数据同步。使用OTTER,用户可以直接拖拽数据库表到UI界面,并配置同步任务,生成同步代码,并通过Web UI监控同步效果。

3. 功能强大

OTTER有很强的功能,可以解决各种复杂的数据同步需求,包括满足高并发大流量、数据迁移、数据仓库等多种应用场景。

三、配置OTTER实现数据同步

1. 安装OTTER

安装OTTER需要在官网下载OTTER的压缩包,并解压到本地,然后就可以启动OTTER服务。OTTER服务启动后,需要检查相关端口是否开放。

tar -vxf otter.tar.gz // 解压otter压缩包

cd otter/bin // 进入otter bin目录

./otter-startup.sh // 启动OTTER服务

netstat -npl | grep 2088 // 检查2088端口是否开放

2. 配置OTTER

OTTER支持websocket控制台,可以使用http://${ip}:8080/otter/index.htm进入。进入后,我们需要配置源与目标两个数据库。这里我们以MSSQL为例。

3. 创建同步任务

在OTTER上创建同步任务需要进行如下操作:

1. 从源端数据库中选择需要同步的表

2. 配置目标端数据库的连接信息,包括用户名、密码、主机地址、端口号等信息

3. 配置同步任务的参数,如需要同步的主键和字段、同步方式(全量、增量)等,可以根据自己需要进行调整

4. 形成同步任务模板,并生成同步代码

# OTTER同步任务模板

mysql[positionId].canal.destination = example

mysql[positionId].canal.destination.detecting = true

mysql[positionId].canal.destination.groupDbAddresses = address:3306

mysql[positionId].canal.destination.jdbcUrl = jdbc:mysql://address:3306/otter

mysql[positionId].canal.destination.name = mysql-destination

mysql[positionId].canal.destination.password = test

mysql[positionId].canal.destination.username = root

mysql[positionId].canal.instance.filter.druid.type = stat

mysql[positionId].canal.instance.filter.druid.url = jdbc:mysql://address:3306/druid?useUnicode=true

mysql[positionId].canal.instance.filter.druid.username = druid

mysql[positionId].canal.instance.filter.druid.password = druid

mysql[positionId].canal.instance.filter.rule.type = druid

mysql[positionId].canal.instance.filter.rule.url = jdbc:mysql://address:3306/otter?useUnicode=true

mysql[positionId].canal.instance.filter.rule.username = root

mysql[positionId].canal.instance.filter.rule.password = test

mysql[positionId].canal.instance.filter.rule.ruleFile = ./conf/otter/mysql-otter.xml

mysql[positionId].canal.instance.manager.address = 127.0.0.1:32100

mysql[positionId].canal.instance.master.addresses = address:3306

mysql[positionId].canal.instance.parser.timestamp.timezone = GMT+8:00

mysql[positionId].canal.instance.position.entryInBytes = false

mysql[positionId].canal.instance.spring.xml = classpath:spring/instance.xml

mysql[positionId].canal.instance.tsdb.enable = true

mysql[positionId].canal.instance.tsdb spring.xml = classpath:tsdb/spring.xml

mysql[positionId].canal.instance.tsdb.url = jdbc:mysql://localhost:3306/canal_tsdb

mysql[positionId].canal.instance.dbMapping[position].tableMapping[1].tableName = otter_student

mysql[positionId].canal.instance.dbMapping[position].tableMapping[1].targetTable = otter_student

mysql[positionId].canal.instance.dbMapping[position].tableMapping[1].fetchSize = 1000

mysql[positionId].canal.instance.dbMapping[position].tableMapping[1].columns = id,name,age

mysql[positionId].canal.instance.dbMapping[position].tableMapping[1].pkColumns = id

mysql[positionId].canal.instance.rdbms.driverClassName = com.mysql.jdbc.Driver

mysql[positionId].canal.instance.rdbms.property.ha.enable = true

mysql[positionId].canal.instance.rdbms.property.ha.loadBalanceStrategy = roundrobin

mysql[positionId].canal.instance.rdbms.property.password = test

mysql[positionId].canal.instance.rdbms.property.url = jdbc:mysql://address:3306?useUnicode=true&characterEncoding=UTF-8

mysql[positionId].canal.instance.rdbms.property.username = root

mysql[positionId].canal.instance.spring.xml = classpath:spring/rdbms.xml

mysql[positionId].canal.instance.filter.transaction.type = memory

mysql[positionId].canal.instance.filter.transaction.memoryStorageSize = 1024Mb

mysql[positionId].canal.instance.filter.transaction.batchSize = 1000

4. 运行同步任务

在OTTER上创建和部署同步任务后,可以启动和停止同步任务。在任务运行期间,可以实时查看任务的同步情况,在任务结束后,可以根据需要进行调整。

四、总结

OTTER作为一款开源数据同步工具,具有易用性、可扩展性、高性能、免费等优点。在使用OTTER进行MSSQL数据同步时,需要进行相关的配置和操作,包括安装OTTER、配置源与目标的数据库、创建同步任务及运行同步任务。使用OTTER,可以实现MSSQL数据的实时同步,实现数据在不同数据库之间的快速迁移和同步。

数据库标签