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数据的实时同步,实现数据在不同数据库之间的快速迁移和同步。