debezium集成Oralce攻略(上)
本期我們做一個(gè)debezium集成oralce的步驟,比較全,因?yàn)楸救嗽谶@段時(shí)間內(nèi)也踩了不少的坑,如果你有幸看到了這篇文章,就不需要繞彎路了,直接完成debezium監(jiān)控oralce的全步驟,全部按照官方文檔來(lái)的。
了解這篇文檔之前,你必須了解什么是debezium以及debezium是干嘛的。
首先講解一下需要用到的所有中間件。
注冊(cè)中心zookeeper
消息中間件kafka
連接器kafka connect
數(shù)據(jù)庫(kù)oracle
我采用的是分布式部署,因?yàn)閿?shù)據(jù)庫(kù)可以跟監(jiān)控的組件完全分離,不會(huì)有任何影響。
oralce的設(shè)置必須遵循XStream API的規(guī)范,因?yàn)閐ebezium是依據(jù)這個(gè)對(duì)oralce進(jìn)行監(jiān)控的。
首先我們來(lái)安裝oralce,登錄安裝oralce的liunx服務(wù)器,如果你是windows或者mac安裝的oralce服務(wù)器,那你必須把oralce放到liunx虛擬機(jī)里面運(yùn)行。
安裝oracle之前,你必須讓你的liunx服務(wù)器擁有以下功能。
1.能夠運(yùn)行docker指令,因?yàn)橐韵潞芏嗖襟E都是在docker環(huán)境下完成的,還必須安裝docker-compose。
2.必須能夠運(yùn)行rz -y指令,因?yàn)檫@個(gè)是要上傳oralce的安裝包。
3.必須安裝git,因?yàn)槿缦陆坛绦枰玫絞it指令。
好,繼續(xù)教程。
按照debezium的官方教程,你必須先把他們的git文檔down下來(lái)。
把這個(gè)文件down下來(lái)之后,你就可以看到一系列文件夾了。接下來(lái)按照官方文檔你繼續(xù)運(yùn)行下一條命令。
cd docker-images/OracleDatabase/SingleInstance/dockerfiles這個(gè)命令的意思是進(jìn)入到他們的dockerfiles文件夾下面方便他們安裝oracle。
接下來(lái)運(yùn)行下一條命令
這個(gè)就是第一個(gè)坑了,命令的意思是把你的/vagrant_data/文件夾下面的這個(gè)zip文件復(fù)制到他的那個(gè)目錄下面。官方文檔只說(shuō)了,你要下載下來(lái)oralce,怎么下載,下載什么版本,他們不管,并且你下載的oracle還必須是他的那個(gè)名字,才能運(yùn)行這個(gè)命令。
好吧,我在百度搜了半天這個(gè)文件zip,終于在一個(gè)百度網(wǎng)盤(pán)里找到了,是一個(gè)oralce12c的版本,如果你下載其他版本我估計(jì)也是可以的。你只需要在cp的時(shí)候改掉名字就行了吧。。。。
點(diǎn)擊這里前往下載地址
這是我找到的一個(gè)官方的下載地址,當(dāng)然你們要百度搜也可以,名字對(duì)上就行,畢竟按照官方文檔來(lái),不會(huì)錯(cuò)。
下載好了之后執(zhí)行的命令
這個(gè)意思就是創(chuàng)建這個(gè)一個(gè)文件夾,把你下載好的zip文件上傳到這個(gè)目錄下面,方便執(zhí)行后續(xù)的操作。
這個(gè)步驟應(yīng)該放在最前面,因?yàn)槿绻麤](méi)有這個(gè),你運(yùn)行上面的cp是肯定會(huì)報(bào)錯(cuò)的,會(huì)說(shuō)你沒(méi)有這個(gè)zip的這個(gè)錯(cuò)誤。
(所以這個(gè)是前置條件)
執(zhí)行完上述步驟后,我們回到上面的那個(gè)目錄。
(假設(shè)你git他們文檔的目錄是~,跟我一樣。)
那么這次cp就可以成功了。
接下來(lái)執(zhí)行下面的命令。
這個(gè)命令應(yīng)該是解壓oralce,安裝之類(lèi)的吧。反正一頓操作之后oracle安裝好了。
接下來(lái)按照官方文檔,你需要?jiǎng)?chuàng)建一些目錄。
接下來(lái)你需要用docker把oralce運(yùn)行起來(lái)。
docker run --name dbz_oracle -p 1521:1521 -e ORACLE_PWD=top_secret -v /home/vagrant/oradata/:/opt/oracle/oradata oracle/database:12.2.0.1-ee到這一步你的oralce已經(jīng)啟動(dòng)了,并且在docker容器里叫 dbz_oracle。
不信你可以運(yùn)行
應(yīng)該能看到oralce在運(yùn)行了。
這時(shí)你還在git的這個(gè)目錄下面。
運(yùn)行起來(lái)之后還不行,因?yàn)槟氵€沒(méi)有根據(jù)oralce的Xstream API執(zhí)行一些必要的授權(quán)操作,也沒(méi)有創(chuàng)建用戶(hù)等等。
接下來(lái)我們下載debezium的另一個(gè)官方文檔。
先回到主目錄。再git。
接下來(lái)進(jìn)入這個(gè)目錄。
cd oracle-vagrant-box ls這時(shí)你應(yīng)該能看到有一個(gè)名字叫 setup.sh 的腳本文件。沒(méi)錯(cuò),這個(gè)就是官方給咱們寫(xiě)好的文檔。直接運(yùn)行就行了。
cat setup.sh | docker exec -i dbz_oracle bash接下來(lái)我們只需要運(yùn)行這個(gè)腳本,就可以開(kāi)放權(quán)限,也可以在navicat上面登錄了。
至于這個(gè)腳本里到底有什么,可以看debezium的官方文檔的oralce連接器這一塊,也可以參照下面的鏈接進(jìn)去看。
https://github.com/debezium/oracle-vagrant-box/
如果你的navicat還是不能登錄oralce,你可以參照百度解決一下報(bào)錯(cuò)。有可能是你的liunx的防火墻沒(méi)有關(guān),也可能是阿里云沒(méi)有給你開(kāi)放端口權(quán)限,端口是1521,去阿里云的安全組里面開(kāi)放這個(gè)權(quán)限就可以登錄了。
navicat可以用好幾種方法連接上oralce,用戶(hù)名和服務(wù)名都不相同,你可以參照那個(gè)腳本的內(nèi)容去嘗試。
接下來(lái)我們?nèi)ゼ右稽c(diǎn)測(cè)試數(shù)據(jù)進(jìn)去。
cd ~ git clone https://github.com/debezium/debezium-examples.git把這個(gè)debezium的官方文檔down下來(lái),然后進(jìn)入到他們的文件里面。
cd debezium-examples/tutorial/ cat debezium-with-oracle-jdbc/init/inventory.sql | docker exec -i dbz_oracle sqlplus debezium/dbz@//localhost:1521/ORCLPDB1這個(gè)代碼的意思就是執(zhí)行dbz官方寫(xiě)好的sql,登錄oralce,就是幫你創(chuàng)建了一些表,在幫你插入了一些數(shù)據(jù),你可以自己去sql里面看看有什么,完成了之后可以自己去navicat看下插入有沒(méi)有成功。
下面是debezium自己寫(xiě)的說(shuō)明,看下官方文檔教你的步驟。
https://github.com/debezium/debezium-examples/tree/master/tutorial#using-oracle
這就是debezium集成oracle的步驟的上部分,安裝oracle。下一篇記錄安裝的下部分。各位有疑問(wèn)和踩坑的留言在下方,我知道的都會(huì)給你們解答。
總結(jié)
以上是生活随笔為你收集整理的debezium集成Oralce攻略(上)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 论文阅读笔记《Few-Shot Lear
- 下一篇: js判断时间是否在某一时间段内