大数据实践-数据同步篇tungsten-relicator(mysql->mongo)

[导读] 

           随着公司业务的快速发展数据量也迅速的增大,基于用户各个维度深度分析,关系型数据压力越来越大;因此急于寻找一些解决方案;调研了很久最后采用了 golang+mongod集群的这个方案,使用mongo做数据分析的存储端,数据同步就成为一个问题,目前网上主流的工具和解决方案都比较少,唯一一个稍微多点的文章就是tungsten-relicator,最后技术选型也才用了它,目前也使用了快一年了,遇到过很多问题,但基本还算比较稳定。

tungsten-relicator介绍

Tungsten Replicator 是一个高性能、开源的数据复制引擎,用于 MySQL、Postgres 和 Oracle 数据库。这是 Continuent 最先进的集群解决方案的核心组件之一。

第三方数据复制引擎--Tungsten-Replicator 主要特点:

1 支持高版本MySQL向低版本复制,5.1-->5.0
2 支持跨数据库系统的复制,MySQL-->PgSQL
3 支持多主库向单台Slave的复制,Multi-Master-->Slave
4 G-Replicator提取数据的更新记录写到MySQL 队列表Queue;基于这个队列,可以为其他应用服务提供便利

方案设计

公司以前使用着mysql的主从,为了不影响正常业务,又添加了一个从库;从第二个从库同步到mongo集群中;本文不在描述mysql集群和monggo集群搭建,重点讨论tungsten-relicator同步和部署

1、停止从库的主从同步,导出从库中的所有数据,清空从库;

2、配置从库和第二从库的同步

3、搭建tungsten-relicator同步(mysql-mongo)

4、将从库导出的数据从新导入从库

5、重启启动主从同步。

部署完成后的图解

搭建tungsten-relicator同步

tungsten-relicator需要部署到两条服务器,主服务负责读mysql binlog日志解析后传送给从服务器,从服务器接收数据并同步到mongo

首先配置主服务器(192.168.0.1)

1、安装基础环境 JAVA  RUBY

yum -y install java-1.7.0-openjdk*
yum -y install ruby

2、修改系统的最大链接数

1)查看 ulimit -n

2)更改

vim /etc/security/limits.conf

* soft nofile 65535

* hard nofile 65535

3)重启linux

reboot

3、修改mysql配置

vi /etc/my.cnf
最下面添加
binlog_format=row
max_allowed_packet = 52M
log_slave_updates = 1
同时停止同步
slave stop;

4、tungsten主程序配置

解压 
tar -zxvf tungsten-replicator-2.2.1-403.tar.gz
cd tungsten-replicator-2.2.1-403
启动
  ./tools/tpm install mysql2mongodb     --master=192.168.0.1     --install-directory=/opt/continuent     --replication-user=root    --replication-password=root    --enable-heterogenous-master=true     --repl-svc-extractor-filters=replicate     --property=replicator.filter.replicate.do=zhongxin     --property=replicator.filter.pkey.addColumnsToDeletes=true     --property=replicator.filter.pkey.addPkeyToInserts=true      --start

master  --  主服务器Ip地址

replication-user  --  myslq用户名

replication-password  --  mysql密码

property=replicator.filter.replicate.do  --  同步的数据库库名

5、查看tungsten 同步状态

/opt/continuent/tungsten/tungsten-replicator/bin/trepctl status
state    : ONLINE 表示服务启动正常

配置从服务器(192.168.0.2)

1、安装基础环境 JAVA  RUBY

yum -y install java-1.7.0-openjdk*
yum -y install ruby

2、修改系统的最大链接数

1)查看 ulimit -n

2)更改

vim /etc/security/limits.conf

* soft nofile 65535

* hard nofile 65535

3)重启linux

reboot

3、配置免密码登录(从tungsten从服务器免密码登录主服务器)

  ssh-keygen -t rsa    一路回车
  cd .ssh/
  cp id_rsa.pub authorized_keys
  chmod 600 authorized_keys
  scp authorized_keys [email protected]192.168.0.2:/root/.ssh
  chmod 700 -R .ssh
 
  验证无密码登录:ssh 192.168.0.1 

4、tungsten从服务程序配置

解压 
tar -zxvf tungsten-replicator-2.2.1-403.tar.gz
cd tungsten-replicator-2.2.1-403
启动
  ./tools/tungsten-installer --master-slave -a  \     --datasource-type=mongodb \     --datasource-port=27001 \     --master-host=192.168.0.1     \     --service-name=mysql2mongodb  \     --home-directory=/opt/continuent \     --java-file-encoding=UTF8 \     --svc-parallelization-type=none \     --start-and-report

mongodb安装在本地

master-host  --  主服务地址

5、查看tungsten 同步状态

/opt/continuent/tungsten/tungsten-replicator/bin/trepctl status
state    : ONLINE 表示服务启动正常

6、启动mysql同步数据了

start slave;

运营篇

1、查看同步工具的日志

tail -300f  /opt/continuent/tungsten/tungsten-replicator/log/trepsvc.log
tail -30f /opt/continuent/service_logs/trepsvc.log

2、查看同步的状态

/opt/continuent/tungsten/tungsten-replicator/bin/trepctl status
/opt/continuent/tungsten/tungsten-replicator/bin/trepctl services

3、当同步出错后,解决问题后,执行命令重新同步

/opt/continuent/tungsten/tungsten-replicator/bin/trepctl -service mysql2mongodb online
/opt/continuent/tungsten/tungsten-replicator/bin/trepctl status

4、当一些表里面存在特殊符号可能会导致同步出错,可以在从服务器启动的时候加上一下参数跳过同步的表

--property=replicator.filter.replicate.ignore=zhongxin.zx_notice_req_log \

如果在运行一段时间后,因为某些原因需要将数据抹掉重新同步的话,可以安装一下的步骤

1、停止从库的主从同步,导出从库中的所有数据,清空从库;

2、删除mysql从库的tungsten_mysql2mongodb库

3、删除mongo的 tungsten_mysql2mongodb库

4、重启启动tungsten的主从同步(安装启动命令)

5、将从库导出的数据从新导入从库

6、启动mysql主从同步。

时间: 2024-10-14 00:44:54

大数据实践-数据同步篇tungsten-relicator(mysql->mongo)的相关文章

【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构 一、业务发展驱动数据发展

一.业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案不够健壮,那么数据库服务器很有可能在高并发访问负载压力下宕机,造成数据访问服务的失效,从而导致网站的业务中断,给公司和用户造成双重损失.那么,有木有一种方案能够解决此问题,使得数据库不再因为负载压力过高而成为网站的瓶颈呢?答案肯定是有的. 目前,大部分的主流关系型数据库都提供了主从热备功能,通过配置

我的大数据实践之路-洗脑篇

1. 什么是大数据 五个简单故事告诉你什么是"大数据" 2.如何看待大数据 要全体不要抽样,要效率不要绝对精确,要相关不要因果 3.大数据能干什么 通过用户的使用习惯来预判用户的行为 4.大数据应用场景 我的大数据实践之路-洗脑篇

使用tungsten将mysql的数据同步到hadoop

背景 线上有很多的数据库在运行,后台需要一个分析用户行为的数据仓库.目前比较流行的是mysql和hadoop平台. 现在的问题是,如何将线上的mysql数据实时的同步到hadoop中,以供分析.这篇文章就是利用tungsten-replicator来实现. 环境 由于tungsten-replicator依赖ruby和gem.需要安装 yum install ruby yum install rubygems gem install json 其中json模块可能因为gfw的原因,需要手动下载到

七牛大数据平台的演进与大数据分析实践--转

原文地址:http://www.infoq.com/cn/articles/qiniu-big-data-platform-evolution-and-analysis?utm_source=infoq&utm_medium=popular_widget&utm_campaign=popular_content_list&utm_content=homepage 七牛大数据平台的演进与大数据分析实践 (点击放大图像) 图 1 大数据生态体系 看着图 1 大家可能会感到熟悉,又或者会

大数据管理:数据集成的技术、方法与最佳实践 读书笔记三

7.1 什么是数据仓库 数据仓库是基于特定的数据结构(以及有关应用程序)所构建的数据的中央存储库,以便为分析和报表提供 一致的数据源.面向整个组织创建的企业数据仓库(Enterprise Data Warehouse,EDW)用于对整个组织的信息 进行分析.大多数情况下,超大型组织中会有多个企业级数据仓库,每个都拥有组织中某个很大组成部分的数 据,如某个区域,或者很大的功能域.批处理数据集成方案通常用于将数据置入或者移出数据仓库.数据仓库架 构的设计要达到以下目的:为整个组织的分析提供一致可用的

大数据实践:ODI 和 Twitter (二)

大数据实践:ODI和Twitter(二) 在前面的文章中,我们已经使用flume将数据从twitter抓取到Hive中,现在我们来看看ODI(Oracle Data Integrator)如何在HIVE表中进行逆向工程,打开HIVE模型,然后在逆向工程中选择“新的数据存储”及待逆向的对象,如下: 逆向工程完成之后,得到如下的元数据信息: 上面的操作步骤与普通的关系型数据库一样,没有特殊之处,ODI可以对HIVE的表进行逆向工程,使用RKM Hive, RKM HBase, IKM File to

有赞大数据实践: 敏捷型数据仓库的构建及其应用

有赞大数据实践: 敏捷型数据仓库的构建及其应用 有赞大数据实践: 敏捷型数据平台的构建及其应用 前言 数据仓库设计 总体架构 数据仓库实例 基础指标层 分层的好处 数仓工具 数据仓库与数据分析 即席查询系统 多维分析系统 搜索分析系统 固定报表系统 数据仓库在信息检索中的应用 小结 前言 互联网公司一般发展迅速. 一方面, 业务飞速发展, 当前应用的形式和模型每天都在变化; 企业的产品也在经历不断的下线上线过程. 数据仓库如何拥抱变化, 是难点之一. 互联网的运营人员从了解经营状况转化为精细化运

大众点评的大数据实践-CSDN.NET

大众点评的大数据实践-CSDN.NET 大众点评的大数据实践 爬虫工程师成大数据时代的"宠儿" - 杭州新闻中心 - 杭州网 爬虫工程师成大数据时代的"宠儿"

中国的大数据实践

在中国,由各级政府主导的大数据计划已不是独立零散存在的试验田,而是处于全面进行时的生动实践.推动大数据相关产业发展和应用示范,正在成为各地抢占新一轮经济和科技发展制高点的重大战略,成为增强区域竞争力的前沿. 广东省是率先在全国推行大数据战略的省份.2012年年底,广东省制定了<广东省实施大数据战略工作方案>,提出启动大数据战略,计划采用行政搜集.网络搜取.自愿提供.有偿购买等多种方式拓宽数据搜集渠道;在政府各部门开展数据开放试点,通过部门网站向社会开放可供下载和分析使用的数据,进一步推进政务公