tungsten-replication实现mysql-mongo数据同步

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

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

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

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

5、重启启动主从同步。


配置tungsent主服务器:

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、创建同步用户

grant all privileges on *.* to 'tungsten'@'%' identified by 'tungsent' with grant option;

flush privileges;

5、tungsent主程序配置
解压
tar -zxvf tungsten-replicator-2.2.1-403.tar.gz
cd tungsten-replicator-2.2.1-403
启动
  ./tools/tpm install mysql2mongodb \
    --master=192.168.2.1 \--tungsent     主服务器IP
    --install-directory=/opt/continuent \
    --replication-user=tungsent \           --mysql用户名
    --replication-password=tungsent \
    --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

6、查看tungsent状态
/opt/continuent/tungsten/tungsten-replicator/bin/trepctl status


NAME                     VALUE
----                     -----
appliedLastEventId     : mysql-bin.000009:0000000073582901;232
appliedLastSeqno       : 1864
appliedLatency         : 0.667
autoRecoveryEnabled    : false
autoRecoveryTotal      : 0
channels               : 1
clusterName            : mysql2mongodb
currentEventId         : mysql-bin.000009:0000000073582901
currentTimeMillis      : 1511860218115
dataServerHost         : 192.168.209.131
extensions             :
host                   : 192.168.209.131
latestEpochNumber      : 0
masterConnectUri       : thl://localhost:/
masterListenUri        : thl://192.168.209.131:2112/
maximumStoredSeqNo     : 1864
minimumStoredSeqNo     : 0
offlineRequests        : NONE
pendingError           : NONE
pendingErrorCode       : NONE
pendingErrorEventId    : NONE
pendingErrorSeqno      : -1
pendingExceptionMessage: NONE
pipelineSource         : jdbc:mysql:thin://192.168.209.131:3306/
relativeLatency        : 966.115
resourcePrecedence     : 99
rmiPort                : 10000
role                   : master
seqnoType              : java.lang.Long
serviceName            : mysql2mongodb
serviceType            : local
simpleServiceName      : mysql2mongodb
siteName               : default
sourceId               : 192.168.209.131
state                  : ONLINE                -------表示服务启动正常
timeInStateSeconds     : 77693.238
transitioningTo        :
uptimeSeconds          : 77694.365
useSSLConnection       : false
version                : Tungsten Replicator 2.2.1 build 403


配置从服务器(mongo服务器)tungsent

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、配置tungsent从服务器免密码登陆主服务器

ssh-keygen
ssh-copy-id

4、tungsent从服务器配置

解压
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=20011 \#mongodb端口号
     --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  --  主服务地址(这里的主是指mysql的从服务器)


5、查看tungsten同步状态

NAME                     VALUE
----                     -----
appliedLastEventId     : mysql-bin.000009:0000000073582901;232
appliedLastSeqno       : 1864
appliedLatency         : 1538.02
autoRecoveryEnabled    : false
autoRecoveryTotal      : 0
channels               : 1
clusterName            : default
currentEventId         : NONE
currentTimeMillis      : 1511860797074
dataServerHost         : mongodb
extensions             :
host                   : mongodb
latestEpochNumber      : 0
masterConnectUri       : thl://192.168.209.131:2112/
masterListenUri        : null
maximumStoredSeqNo     : 1864
minimumStoredSeqNo     : 0
offlineRequests        : NONE
pendingError           : NONE
pendingErrorCode       : NONE
pendingErrorEventId    : NONE
pendingErrorSeqno      : -1
pendingExceptionMessage: NONE
pipelineSource         : thl://192.168.209.131:2112/
relativeLatency        : 1545.074
resourcePrecedence     : 99
rmiPort                : 10000
role                   : slave
seqnoType              : java.lang.Long
serviceName            : mysql2mongodb
serviceType            : local
simpleServiceName      : mysql2mongodb
siteName               : default
sourceId               : mongodb
state                  : ONLINE    -----------表示服务启动正常
timeInStateSeconds     : 7.542
transitioningTo        :
uptimeSeconds          : 78118.176
useSSLConnection       : false
version                : Tungsten Replicator 2.2.1 build 403


6、启动mysql同步数据

start slave;

 


运营:


1、查看同步工具的日志

/opt/continuent/tungsten/tungsten-replicator/log/trepsvc.log

/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主从同步

你可能感兴趣的:(数据库运维)