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