簡介
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é)束