華為云計算 云知識 如何配置canal
如何配置canal

簡介

canal是一款開源項目,純Java開發(fā)?;?a href=" http://m.cqfng.cn/product/gaussdb.html " target="_blank" style="text-decoration:underline;"> 數(shù)據(jù)庫 增量日志解析,提供增量數(shù)據(jù)訂閱和消費,目前主要支持了MySQL(也支持mariaDB)。

配置安裝流程

1.配置安裝環(huán)境

1)安裝wget工具。

yum install wget -y

2)安裝JDK。

yum install java-1.8.0-openjdk

3)配置環(huán)境變量。

echo “export JAVA_HOME=/usr/lib/jvm/java-1.8.0”>>  /etc/profile && source /etc/profile

4)配置MySQL為“binlog”同步模式。

修改MySQL的配置文件“/etc/my.cnf”,添加如下內(nèi)容:

log-bin=mysql-bin

binlog-format=ROW

server_id=1

5)修改完后,重啟MySQL即可。

MySQL的安裝請參考鯤鵬社區(qū)關(guān)于MySQL的安裝使用教程。

----結(jié)束

2.獲取軟件包

1)下載canal軟件包。

wget https://github.com/alibaba/canal/releases/download/canal-1.1.3/canal.deployer-1.1.3.tar.gz

2)復(fù)制至 云服務(wù)器 的“/usr/local/src”目錄。

----結(jié)束

3.安裝

1)解壓軟件包。

mkdir /usr/local/canal

tar -xvf canal.deployer-1.1.3.tar.gz -C /usr/local/canal

2)進(jìn)入“/usr/local/canal”目錄下。

cd /usr/local/canal

3)修改“instance.properties”文件。

vim conf/example/instance.properties

內(nèi)容如下:

## mysql serverId

canal.instance.mysql.slaveId = 1

...

# position info

canal.instance.master.address = 127.0.0.1:3306

...

# username/password

canal.instance.dbUsername = root

canal.instance.dbPassword = [password]

canal.instance.connectionCharset = UTF-8

4)修改“canal.properties”文件。

vim conf/canal.properties

內(nèi)容如下:

canal.id = 2

canal.ip = 127.0.0.1

canal.port = 11111

----結(jié)束

4. 運行和驗證

1)啟動canal。

sh /usr/local/canal/bin/startup.sh

2)查看進(jìn)程是否存在。

ps -ef|grep canal

系統(tǒng)回顯如下,表示進(jìn)程已啟動,運行正常。

root      1793   808  0 15:03 pts/2    00:00:00 grep --color=auto canal

root     27516     1  0 10:39 ?        00:00:17 /usr/lib/jvm/java-1.8.0/bin/java -server -Xms2048m -Xmx3072m -Xmn1024m -XX:SurvivorRatio=2 -XX:PermSize=96m -XX:MaxPermSize=256m -Xss

512k -XX:-UseAdaptiveSizePolicy -XX:MaxTenuringThreshold=15 -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+UseF

astAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -DappName=otter-

canal -Dlogback.configurationFile=/usr/local/canal/bin/../conf/logback.xml -Dcanal.conf=/usr/local/canal/bin/../conf/canal.properties -classpath .:/usr/local/canal/bin/../conf:/usr/

local/canal/bin/../lib/zookeeper-3.4.5.jar:/usr/local/canal/bin/../lib/zkclient-0.10.jar:/usr/local/canal/bin/../lib/spring-tx-3.2.18.RELEASE.jar:/usr/local/canal/bin/../lib/spring-

orm-3.2.18.RELEASE.jar:/usr/local/canal/bin/../lib/spring-jdbc-3.2.18.RELEASE.jar:/usr/local/canal/bin/../lib/spring-expression-3.2.18.RELEASE.jar:/usr/local/canal/bin/../lib/spring

-core-3.2.18.RELEASE.jar:/usr/local/canal/bin/../lib/spring-context-3.2.18.RELEASE.jar:/usr/local/canal/bin/../lib/spring-beans-3.2.18.RELEASE.jar:/usr/local/canal/bin/../lib/spring

-aop-3.2.18.RELEASE.jar:/usr/local/canal/bin/../lib/snappy-java-1.1.7.1.jar:/usr/local/canal/bin/../lib/slf4j-api-1.7.12.jar:/usr/local/canal/bin/../lib/simpleclient_pushgateway-0.4

.0.jar:/usr/local/canal/bin/../lib/simpleclient_httpserver-0.4.0.jar:/usr/local/canal/bin/../lib/simpleclient_hotspot-0.4.0.jar:/usr/local/canal/bin/../lib/simpleclient_common-0.4.0

.jar:/usr/local/canal/bin/../lib/simpleclient-0.4.0.jar:/usr/local/canal/bin/../lib/scala-reflect-2.11.12.jar:/usr/local/canal/bin/../lib/scala-logging_2.11-3.8.0.jar:/usr/local/can

al/bin/../lib/scala-library-2.11.12.jar:/usr/local/canal/bin/../lib/rocketmq-remoting-4.3.0.jar:/usr/local/canal/bin/../lib/rocketmq-logging-4.3.0.jar:/usr/

5.故障排除

現(xiàn)象描述

運行過程中提示“The stack size specified is too small, Specify at least 328k”。

可能原因

jvm的內(nèi)存棧太小,導(dǎo)致啟動不了canal。

處理步驟

1)增大內(nèi)存棧,修改“/usr/local/canal/bin/startup.sh”,修改成如下加粗內(nèi)容,將“256”改成了“512”。

if [ -n "$str" ]; then

JAVA_OPTS="-server -Xms2048m -Xmx3072m -Xmn1024m -XX:SurvivorRatio=2 -XX:PermSize=96m -XX:MaxPermSize=256m -Xss512k -XX:-UseAdaptiveSizePolicy -XX:MaxTenuringThreshold=15 -X

X:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:+Hea

pDumpOnOutOfMemoryError"

else

JAVA_OPTS="-server -Xms1024m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:MaxPermSize=128m "

fi

2)重啟canal。

sh stop.sh

sh startup.sh

----結(jié)束