阿里yugong配置使用
介紹:yugong中文意思叫愚公移山,是阿里為解決單機oralce無法滿足擴充套件性問題,同時為了去IOE,實現oracle資料遷移到mysql上。
java語言開發,所以需要java語言平臺
yugong是通過收集物化檢視日誌實現資料的遷移
yugong有6中執行模式(MARK開啟增量記錄模式、FULL全量模式、INC增量模式、ALL全量+增量模式、CHECK資料對比模式、CLEAR清理增量記錄模式)
資料遷移過程:
本文是在ubuntu系統上安裝配置
官方文件:https://github.com/alibaba/yugong/
前期準備:
1.安裝jdk
apt-get install openjdk-8-jdk
2.下載解壓
wget https://github.com/alibaba/yugong/releases/download/yugong-1.0.3/yugong-1.0.3.tar.gz
tar -zxvf yugong-1.0.3.tar.gz -C /usr/local/yugong
3.建立資料表
#源資料表 create table yugong_example_oracle ( id NUMBER(11) , name varchar2(32) , alias_namechar(32) default ' ' not null, amount number(11,2), score number(20), text_b blob, text_c clob, gmt_create date not null, gmt_modified date not null, CONSTRAINT yugong_example_oracle_pk_id PRIMARY KEY (id) ); #目標資料表 create table yugong_example_mysql ( idbigint(20) unsigned auto_increment, display_name varchar(128) , amount varchar(32), score bigint(20) unsigned , text_b blob, text_c text, gmt_create timestamp not null, gmt_modified timestamp not null, gmt_move timestamp not null, CONSTRAINT yugong_example_mysql_pk_id PRIMARY KEY (id) );
修改配置:
cd /usr/local/yugong/
vim conf/yugong.properties
yugong.database.source.username=user #源資料庫使用者名稱 yugong.database.source.password=123 #源資料庫使用者密碼 yugong.database.source.type=ORACLE yugong.database.source.url=jdbc:oracle:thin:@127.0.0.1:1521/oradbtest #jdbc:oracle:thin:@ip:埠/服務名 yugong.database.source.encode=UTF-8 yugong.database.source.poolSize=30 yugong.database.target.url=jdbc:mysql://127.0.0.1:3306/groupcrm yugong.database.target.username=user yugong.database.target.password=123 yugong.database.target.type=DRDS yugong.database.target.encode=UTF-8 yugong.database.target.poolSize=30 yugong.table.white=yugong_example_oracle #需要同步的表
vim conf/translator/YugongExampleOracleDataTranslator.java
record.setTableName("yugong_example_mysql"); #yugong_example_mysql為目標表
啟動:
sh bin/startup.sh
oracle庫中會增加如下兩個表,臨時表和物化檢視日誌表
驗證全量:
1.源庫yugong_example_oracle表中插入兩條資料
insert into yugong_example_oracle values(1,'ljh','agapple',10.2,100, NULL , NULL ,sysdate,sysdate);
insert into yugong_example_oracle values(2,'yugong','yugong',16.88,2088, NULL , NULL ,sysdate,sysdate);
2.檢視目標庫yugong_example_mysql表中是否有相同資料
SELECT * FROM `yugong_example_mysql`
驗證增量:
1.源庫yugong_example_oracle表中插入1條和修改1條資料
insert into yugong_example_oracle values(3,'test','test',88,188, NULL , NULL ,sysdate,sysdate) ;
update yugong_example_oracle set alias_name = 'superman' where id = 1;
2.檢視目標庫yugong_example_mysql表中是否有相同資料
SELECT * FROM `yugong_example_mysql`
檢視日誌:
檢視系統日誌:cat logs/table.log
查看錶日誌:vim logs/庫名.YUGONG_EXAMPLE_ORACLE/table.log
檢視提取資料日誌:vim logs/庫名.YUGONG_EXAMPLE_ORACLE/extractor.log
檢視跟新到目標日誌:vim logs/BI_USER.YUGONG_EXAMPLE_ORACLE/applier.log
停止服務:
sh bin/stop.sh
注意:在未執行停止命令stop.sh前不要關機,否則再次啟動或停止會出現意想不到的情況發生。