1. 程式人生 > 實用技巧 >阿里yugong配置使用

阿里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_name  
char(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 ( id
bigint(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前不要關機,否則再次啟動或停止會出現意想不到的情況發生。