Otter mysql 数据表同步.docx

Otter mysql 数据表同步

otter

https://github.com/alibaba/otter/wiki/Introduction

 

1 安装zookeeper

mkdir /appdata/zookeeper

tar -zxvf zookeeper-3.4.10.tar.gz

mv  ookeeper-3.4.10   zookeeper

vi /appdata/zookeeper/zookeeper/conf/zoo.cfg

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/appdata/zookeeper/zookeeper/data

# the port at which the clients will connect

clientPort=2181

dataLogDir=/appdata/zookeeper/zookeeper/log

 

bash zkServer.sh start

 

 

2 安装manager

mkdir /manger

tar -zxvf manager.deployer-4.2.14.tar.gz

vi /manager/conf/otter.properties

## otter manager domain name

otter.domainName = 192.168.201.129

## otter manager http port

otter.port = 9000

## jetty web config xml

otter.jetty = jetty.xml

 

## otter manager database config

otter.database.driver.class.name = com.mysql.jdbc.Driver

otter.database.driver.url = jdbc:mysql://192.168.201.129:3306/otter

otter.database.driver.username = root

otter.database.driver.password = root1234

 

## otter communication port

otter.communication.manager.port = 1099

 

## otter communication pool size

otter.communication.pool.size = 10

 

## default zookeeper address

otter.zookeeper.cluster.default = 192.168.201.129:2181

## default zookeeper sesstion timeout = 60s

otter.zookeeper.sessionTimeout = 60000

 

## otter arbitrate connect manager config

otter.manager.address = ${otter.domainName}:${otter.communication.manager.port}

 

## should run in product mode , true/false

otter.manager.productionMode = true

 

## self-monitor enable or disable

otter.manager.monitor.self.enable = true

## self-montir interval , default 120s

otter.manager.monitor.self.interval = 120

## auto-recovery paused enable or disable

otter.manager.monitor.recovery.paused = true

# manager email user config

otter.manager.monitor.email.host = smtp.gmail.com

otter.manager.monitor.email.username =

otter.manager.monitor.email.password =

otter.manager.monitor.email.stmp.port = 465

 

 

3 安装node

mkdir /node

tar -zxvf node.deployer-4.2.14.tar.gz

vi /node/conf/otter.properties

# otter node root dir

otter.nodeHome = /node

 

## otter node dir

otter.htdocs.dir = ${otter.nodeHome}/htdocs

otter.download.dir = ${otter.nodeHome}/download

otter.extend.dir= ${otter.nodeHome}/extend

 

## default zookeeper sesstion timeout = 60s

otter.zookeeper.sessionTimeout = 60000

 

## otter communication pool size

otter.communication.pool.size = 10

 

## otter arbitrate & node connect manager config

otter.manager.address = 192.168.201.129:1099

 

 

4 初始化数据库

SET SQL_MODE='ALLOW_INVALID_DATES';。

 

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `otter` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */;

 

USE `otter`;

 

CREATE TABLE `ALARM_RULE` (

  `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

  `MONITOR_NAME` varchar(1024) DEFAULT NULL,

  `RECEIVER_KEY` varchar(1024) DEFAULT NULL,

  `STATUS` varchar(32) DEFAULT NULL,

  `PIPELINE_ID` bigint(20) NOT NULL,

  `DESCRIPTION` varchar(256) DEFAULT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  `MATCH_VALUE` varchar(1024) DEFAULT NULL,

  `PARAMETERS` text DEFAULT NULL,

  PRIMARY KEY (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `AUTOKEEPER_CLUSTER` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `CLUSTER_NAME` varchar(200) NOT NULL,

  `SERVER_LIST` varchar(1024) NOT NULL,

  `DESCRIPTION` varchar(200) DEFAULT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `CANAL` (

  `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

  `NAME` varchar(200) DEFAULT NULL,

  `DESCRIPTION` varchar(200) DEFAULT NULL,

  `PARAMETERS` text DEFAULT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  UNIQUE KEY `CANALUNIQUE` (`NAME`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `CHANNEL` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `NAME` varchar(200) NOT NULL,

  `DESCRIPTION` varchar(200) DEFAULT NULL,

  `PARAMETERS` text DEFAULT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  UNIQUE KEY `CHANNELUNIQUE` (`NAME`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `COLUMN_PAIR` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `SOURCE_COLUMN` varchar(200) DEFAULT NULL,

  `TARGET_COLUMN` varchar(200) DEFAULT NULL,

  `DATA_MEDIA_PAIR_ID` bigint(20) NOT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  KEY `idx_DATA_MEDIA_PAIR_ID` (`DATA_MEDIA_PAIR_ID`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `COLUMN_PAIR_GROUP` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `DATA_MEDIA_PAIR_ID` bigint(20) NOT NULL,

  `COLUMN_PAIR_CONTENT` text DEFAULT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  KEY `idx_DATA_MEDIA_PAIR_ID` (`DATA_MEDIA_PAIR_ID`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `DATA_MEDIA` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `NAME` varchar(200) NOT NULL,

  `NAMESPACE` varchar(200) NOT NULL,

  `PROPERTIES` varchar(1000) NOT NULL,

  `DATA_MEDIA_SOURCE_ID` bigint(20) NOT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  UNIQUE KEY `DATAMEDIAUNIQUE` (`NAME`,`NAMESPACE`,`DATA_MEDIA_SOURCE_ID`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `DATA_MEDIA_PAIR` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `PULLWEIGHT` bigint(20) DEFAULT NULL,

  `PUSHWEIGHT` bigint(20) DEFAULT NULL,

  `RESOLVER` text DEFAULT NULL,

  `FILTER` text DEFAULT NULL,

  `SOURCE_DATA_MEDIA_ID` bigint(20) DEFAULT NULL,

  `TARGET_DATA_MEDIA_ID` bigint(20) DEFAULT NULL,

  `PIPELINE_ID` bigint(20) NOT NULL,

  `COLUMN_PAIR_MODE` varchar(20) DEFAULT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  KEY `idx_PipelineID` (`PIPELINE_ID`,`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `DATA_MEDIA_SOURCE` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `NAME` varchar(200) NOT NULL,

  `TYPE` varchar(20) NOT NULL,

  `PROPERTIES` varchar(1000) NOT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  UNIQUE KEY `DATAMEDIASOURCEUNIQUE` (`NAME`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `DELAY_STAT` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `DELAY_TIME` bigint(20) NOT NULL,

  `DELAY_NUMBER` bigint(20) NOT NULL,

  `PIPELINE_ID` bigint(20) NOT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  KEY `idx_PipelineID_GmtModified_ID` (`PIPELINE_ID`,`GMT_MODIFIED`,`ID`),

  KEY `idx_Pipeline_GmtCreate` (`PIPELINE_ID`,`GMT_CREATE`),

  KEY `idx_GmtCreate_id` (`GMT_CREATE`,`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `LOG_RECORD` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `NID` varchar(200) DEFAULT NULL,

  `CHANNEL_ID` varchar(200) NOT NULL,

  `PIPELINE_ID` varchar(200) NOT NULL,

  `TITLE` varchar(1000) DEFAULT NULL,

  `MESSAGE` text DEFAULT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  KEY `logRecord_pipelineId` (`PIPELINE_ID`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `NODE` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `NAME` varchar(200) NOT NULL,

  `IP` varchar(200) NOT NULL,

  `PORT` bigint(20) NOT NULL,

  `DESCRIPTION` varchar(200) DEFAULT NULL,

  `PARAMETERS` text DEFAULT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  UNIQUE KEY `NODEUNIQUE` (`NAME`,`IP`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `PIPELINE` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `NAME` varchar(200) NOT NULL,

  `DESCRIPTION` varchar(200) DEFAULT NULL,

  `PARAMETERS` text DEFAULT NULL,

  `CHANNEL_ID` bigint(20) NOT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  UNIQUE KEY `PIPELINEUNIQUE` (`NAME`,`CHANNEL_ID`),

  KEY `idx_ChannelID` (`CHANNEL_ID`,`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `PIPELINE_NODE_RELATION` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `NODE_ID` bigint(20) NOT NULL,

  `PIPELINE_ID` bigint(20) NOT NULL,

  `LOCATION` varchar(20) NOT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  KEY `idx_PipelineID` (`PIPELINE_ID`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `SYSTEM_PARAMETER` (

  `ID` bigint(20) unsigned NOT NULL,

  `VALUE` text DEFAULT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

CREATE TABLE `TABLE_HISTORY_STAT` (

  `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

  `FILE_SIZE` bigint(20) DEFAULT NULL,

  `FILE_COUNT` bigint(20) DEFAULT NULL,

  `INSERT_COUNT` bigint(20) DEFAULT NULL,

  `UPDATE_COUNT` bigint(20) DEFAULT NULL,

  `DELETE_COUNT` bigint(20) DEFAULT NULL,

  `DATA_MEDIA_PAIR_ID` bigint(20) DEFAULT NULL,

  `PIPELINE_ID` bigint(20) DEFAULT NULL,

  `START_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `END_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  KEY `idx_DATA_MEDIA_PAIR_ID_END_TIME` (`DATA_MEDIA_PAIR_ID`,`END_TIME`),

  KEY `idx_GmtCreate_id` (`GMT_CREATE`,`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `TABLE_STAT` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `FILE_SIZE` bigint(20) NOT NULL,

  `FILE_COUNT` bigint(20) NOT NULL,

  `INSERT_COUNT` bigint(20) NOT NULL,

  `UPDATE_COUNT` bigint(20) NOT NULL,

  `DELETE_COUNT` bigint(20) NOT NULL,

  `DATA_MEDIA_PAIR_ID` bigint(20) NOT NULL,

  `PIPELINE_ID` bigint(20) NOT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  KEY `idx_PipelineID_DataMediaPairID` (`PIPELINE_ID`,`DATA_MEDIA_PAIR_ID`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `THROUGHPUT_STAT` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `TYPE` varchar(20) NOT NULL,

  `NUMBER` bigint(20) NOT NULL,

  `SIZE` bigint(20) NOT NULL,

  `PIPELINE_ID` bigint(20) NOT NULL,

  `START_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `END_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  KEY `idx_PipelineID_Type_GmtCreate_ID` (`PIPELINE_ID`,`TYPE`,`GMT_CREATE`,`ID`),

  KEY `idx_PipelineID_Type_EndTime_ID` (`PIPELINE_ID`,`TYPE`,`END_TIME`,`ID`),

  KEY `idx_GmtCreate_id` (`GMT_CREATE`,`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE `USER` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `USERNAME` varchar(20) NOT NULL,

  `PASSWORD` varchar(20) NOT NULL,

  `AUTHORIZETYPE` varchar(20) NOT NULL,

  `DEPARTMENT` varchar(20) NOT NULL,

  `REALNAME` varchar(20) NOT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  UNIQUE KEY `USERUNIQUE` (`USERNAME`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

CREATE TABLE  `DATA_MATRIX` (

  `ID` bigint(20) NOT NULL AUTO_INCREMENT,

  `GROUP_KEY` varchar(200) DEFAULT NULL,

  `MASTER` varchar(200) DEFAULT NULL,

  `SLAVE` varchar(200) DEFAULT NULL,

  `DESCRIPTION` varchar(200) DEFAULT NULL,

  `GMT_CREATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `GMT_MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`ID`),

  KEY `GROUPKEY` (`GROUP_KEY`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

 

insert into USER(ID,USERNAME,PASSWORD,AUTHORIZETYPE,DEPARTMENT,REALNAME,GMT_CREATE,GMT_MODIFIED) values(null,'admin','801fc357a5a74743894a','ADMIN','admin','admin',now(),now());

insert into USER(ID,USERNAME,PASSWORD,AUTHORIZETYPE,DEPARTMENT,REALNAME,GMT_CREATE,GMT_MODIFIED) values(null,'guest','471e02a154a2121dc577','OPERATOR','guest','guest',now(),now());

 

 

 

5 启动顺序

zookeeper-->manger-->node

 

 

 

6 配置一个单向同步

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 添加zookeeper集群

 

 

2 添加node

 

 

将生成的序列号追加到节点服务器/node/conf/nid,echo “3” >nid

 

 

 

3 配置数据源

 

4配置CANAL1,指定的数据库为master数据库

5 配置channel

 

6 配置pipline

 

 

7 配置映射关系

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/u012482502/article/details/82260043
今日推荐