oracle數據同步到Sequoiadb

  

1、 背景

     oracle數據庫是傳統關係型數據庫中的表明,也是目前最通用的數據庫之一。Sequoiadb分佈式數據庫做爲新一代的nosql數據庫,擁有高併發、實時性、分佈式、可擴展、靈活存儲的操做。在國家提倡去IOE的大前提下,怎麼將oracle的數據遷移到Sequoiadb,成爲了擺在企業面前的難題。除了將oracle數據導出爲csv文件,而後入庫這種本辦法以外,是否可以實時的將oracle數據同步到Sequoiadb中,響應時間控制在秒級。本文就從技術上闡述怎麼實時同步oracle數據到Sequoiadb。java

2、 目的

Oracle GoldenGate 是一款專門針對各類關係型數據庫的數據同步工具,它支持直接解析關係型數據庫的事務日誌文件,包括:Oracle、DB二、SQL Server、Mysql等,而後經過它自身的程序對事務日誌進行數據解析,而後再將數據同步到遠端的其餘數據庫上。node

Oracle GoldenGate上的3個模塊分別是:extract、dpe(Distributed Processing Environment)、replica。它可以幫助用戶對已有的數據庫環境部署一個冗餘數據庫,而且數據同步效率可以保證在秒級單位。Oracle GoldenGate如下簡稱ogg。python

方案一:oracle->ogg->Kafka->SparkStreaming(or Store)->SequoiaDBlinux

方案二:oracle->ogg->SequoiaDBc++

相比較方案二,第一個方案進過的流程較爲複雜、通過的環節多、同步時間久不建議使用。本文主要講解方案二的操做過程,從搭建oracle、ogg、Sequoiadb到對接的過程。sql

3、 安裝前準備

3.1機器介紹

linux操做系統版本shell

centos6.2數據庫

oracle版本centos

11gbash

Sequoiadb版本

2.8.2

python版本

2.7.11

ogg版本

OGG for bigdata 12.3.1.1.0.013

ogg 服務端口

1357

sdb集羣機器IP

192.168.137.128 (sdb2)

192.168.137.135 (sdb3)

192.168.137.164 (sdb1)

ogg目標端機器IP

192.168.137.128

ogg源端的機器IP

192.168.137.164

3.2設置swap的大小

使用命令free -m查看Swap空間大小

[root@sdb1 swap]# free -m total used free shared buffers cachedMem: 3825 3229 595 0 24 2663-/+ buffers/cache: 541 3283Swap: 3999 0 3999複製代碼

顯示本機不夠4g,安裝oracle須要至少4g的swap空間。接下來演示擴大swap空間。


在tmp下建立swap目錄

mkdir /tmp/swapcd /tmp/swap複製代碼

使用dd命令建立1g的大小空間

dd if=/dev/zero of=swapfree bs=1M count=1024 ;

If表示infile, of表示outfile, bs=1M表明增長的模塊大小,count=1024表明是1024個模塊,也就是1G空間大小


建立交換空間

mkswap /tmp/swap/swapfree複製代碼

啓動交換空間

swapon /tmp/swap/swapfree 複製代碼

將/tmp/swap/swapfree加入到/etc/fstab條目將可使用得系統在init進程中調用swapon –a來自動掛載/tmp/swap/swapfree,這樣每次機器重啓後/tmp/swap/swapfree都處於有效的swap空間. 修改命令 vi /etc/fstab增長一行

/tmp/swap/swapfree    swap    swap defaults 0 0複製代碼


重啓系統

修改後使用swapon –s 或者free –m能夠查看

[root@sdb1 swap]# free -m total used free shared buffers cachedMem: 3825 3088 736 0 20 2603-/+ buffers/cache: 464 3360Swap: 5023 0 5023複製代碼


3.3 linux環境配置修改

在安裝oracle以前,須要先對linux 的內核參數作一些調整。

首先修改 /etc/security/limits.conf 配置文件。
在末尾增長

#oracle softwareoracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536複製代碼

修改 /etc/pam.d/login 配置文件。

在末尾增長

#oracle softwaresession required/lib/security/pam_limits.sosession requiredpam_limits.so複製代碼

修改 /etc/sysctl.conf 配置文件,增長以下內容。

fs.file-max = 6815744 fs.aio-max-nr = 1048576 kernel.shmall = 2097152 kernel.shmmax= 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range= 9000 65500 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default =262144 net.core.wmem_max = 1048576複製代碼

要使 /etc/sysctl.conf 更改當即生效,執行如下命令。 輸入:sysctl -p 顯示以下:

net.ipv4.icmp_echo_ignore_broadcasts= 1net.ipv4.conf.all.rp_filter= 1fs.file-max = 6815744fs.aio-max-nr = 1048576kernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 4194304net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576複製代碼

編輯 /etc/profile ,輸入命令:vi /etc/profile,按i鍵進入編輯模式,將下列內容加入該文件。

if [ $USER ="oracle" ]; thenif [ $SHELL ="/bin/ksh" ]; then  ulimit -p 16384  ulimit -n 65536else  ulimit -u 16384 -n 65536fifi複製代碼


3.4建立oracle 系統用戶

建立系統用戶組和用戶。

groupadd oracleuseradd -g oracle -m oracle複製代碼

修改oracle 用戶密碼。

passwd oracle複製代碼

在usr目錄下建立oracle目錄。

mkdir /usr/oracle複製代碼

切換到 /usr/oracle目錄,將如下兩個oracle壓縮包拷貝到建立的oracle目錄下。

linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zipcp /mnt/hgfs/1work/oracle/linux.x64_11gR2_database_1of2.zip ./cp /mnt/hgfs/1work/oracle/linux.x64_11gR2_database_2of2.zip ./複製代碼


進行解壓

unzip linux.x64_11gR2_database_1of2.zipunzip linux.x64_11gR2_database_2of2.zip複製代碼

解壓完,能夠用ls查看(多出的database即爲解壓出來的文件)


在安裝Oracle以前,用命令檢查必需的RPM軟件包有沒有安裝,檢查的命令以下:

rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibcglibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-develsysstat unixODBC unixODBC-devel複製代碼


若是上圖顯示XXX is not installed,這個時候就要在安裝必要的RPM包,安裝命令以下所示:

yum install -y gcc-c++.x86_64yum install -y gcc.x86_64yum install -y libstdc++.i686yum install -y libaio-devel.i686yum install -y libaio-devel.x86_64yum install -y compat-libstdc++-33.x86_64yum install unixODBC.i686 -yyum install unixODBC.x86_64-yyum install unixODBC-devel.i686 -yyum install unixODBC-devel.x86_64 -yyum install libaio-devel.x86_64 -yyum install elfutils-libelf-devel.x86_64 -yyum install libaio.i686 -yyum install libgcc.i686 -yyum install ksh.x86_64 -yyum install numactl numactl-devel -y複製代碼

執行以上命令進行安裝。

3.5 yum安裝插件時注意事項

使用yum安裝插件時出現以下問題,顯示python安裝包存在問題

[root@sdb1 oracle]# yum install -y gcc-c++.x86_64There was a problem importing one of the Python modulesrequired to run yum. The error leading to this problem was: No module named yumPlease install a package which provides this module, orverify that the module is installed correctly.It's possible that the above module doesn't match thecurrent version of Python,which is:2.7.11 (default, Oct 102017, 19:22:13) [GCC 4.4.7 20120313 (Red Hat4.4.7-4)]If you cannot solve this problem yourself, please go to the yum faq at:
http://yum.baseurl.org/wiki/Faq複製代碼

解決辦法:

查看python的版本,顯示爲2.7.11

[root@sdb1 oracle]# python --versionPython 2.7.11複製代碼

查看python安裝目錄

[root@sdb1 oracle]# whereis pythonpython: /usr/bin/python2.6/usr/bin/python /usr/lib/python2.6 /usr/lib64/python2.6 /usr/include/python2.6/usr/share/man/man1/python.1.gz複製代碼

查看yum安裝目錄

[root@sdb1 oracle]# whichyum/usr/bin/yum複製代碼

打開/usr/bin/yum,將第一行中的#!/usr/bin/python修改成:

#!/usr/bin/python2.6複製代碼

再次運行yum沒有問題

[root@sdb1 ~]# vi/usr/bin/yum#!/usr/bin/python2.6import systry: import yumexcept ImportError: print >> sys.stderr,"""\There was a problem importing one of the Python modulesrequired to run yum. The error leading to this problem was:複製代碼


3.6 oracle系統用戶建立

groupadd oracleuseradd -g oracle -m oracle複製代碼

修改oracle 用戶密碼

passwd oracle複製代碼

切換oracle 用戶(su – oracle),而後建立一些初始目錄

#cd /usr/oraclemkdir appmkdir app/oraclemkdir app/datamkdir app/product複製代碼

設置oracle環境變量

首先su到oracle用戶下,編輯home目錄下的.bash_profile

[oracle@oracledb~]$ vi ~/.bash_profileexport ORACLE_BASE=/home/oracle/appexport ORACLE_HOME=${ORACLE_BASE}/oracle/product/11.2.0/dbhome_1export ORACLE_HOME_LISTNER=${ORACLE_HOME}export ORACLE_SID=orclexport PATH=${PATH}:${ORACLE_HOME}/binexport LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/usr/libexport DISPLAY=:0複製代碼

Note:

    oracle_base是給oracle建立的app目錄;

    oracle_home 爲oracle安裝目錄;

    oracle_sid 起名爲orcl;

設置環境變量PATH和LD_LIBRARY_PATH,其中須要注意DISPLAY須要根據本身的機器查詢一下。

設置 DISPLAY 參數環境變量,用戶能夠經過如下命令查看

who

在sdb1這臺機器的shell 中執行 who 命令顯示

oracle   :0 2017-08-22 13:53oracle   pts/1 2017-08-22 13:54 (:0.0)oracle   pts/2 2017-08-22 14:13 (:0.0)複製代碼

則在 ~/.bash_profile 中增長

export DISPLAY=:0.0複製代碼

使配置生效

[oracle@oracledb ~]$ source.bash_profile  複製代碼

關閉Selinux(在root用戶下)

[root@oracledb ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config [root@oracledb ~]# setenforce 0複製代碼

關閉防火牆(在root用戶下)

[root@oracledb vsftpd]# service iptables stop[root@oracledb vsftpd]# chkconfig iptables off複製代碼

4、 安裝oracle

此時須要將虛擬機切換到oracle用戶登陸(須要重啓虛擬機),在oracle目下的database中執行命令runInstaller 開始進行安裝。oracle 11g 安裝必定須要圖形化界面,另外用戶必定要在oracle 用戶下登錄圖形化界面執行 runInstaller 程序,不然將會出現「沒法使用命令 /usr/bin/xdpyinfo 自動檢查顯示器顏色」這個錯誤。下面爲詳細安裝步驟。

4.1oracle安裝


能夠選擇第一個安裝數據庫軟件並建立數據,也能夠選擇第二項僅安裝數據庫軟件,這裏選擇的是第二個。




裝到這一步,能夠看到,能夠查看到有不少的rpm包沒有,咱們能夠從安裝linux的光盤或ISO中查找所缺的包,使用ftp上傳到linux中,而後使用rpm –ivh xxx.rpm --nodeps --force 來進行安裝(其中加上--nodeps -- force 表明強制安裝,是在直接使用rpm –ivh xxx.rpm安裝不成功的狀況下用的)安裝過程略。

等到把包所有都安裝好的狀況下,再次在oracle圖形界面中,執行安裝過程2,下來在環境檢查過程當中,就經過了。若是機器中已經安裝了更高版本的包請點擊選擇忽略。


其中須要注意一點,系統檢測到pdksh這個安裝包沒有安裝。發現pdksh是一個老包了,新的oracle都使用ksh包了,可是oracle的check機制裏面並無把這個check去掉,因此在執行界面安裝oracle的時候,還會有告警信息,咱們能夠忽略掉它,而後看看ksh有沒有安裝,若是沒有安裝就安裝ksh,用ksh就能夠。

檢測

yum install -ykshPackageksh-20120801-35.el6_9.x86_64 already installed and latest version複製代碼

說明已經安裝,選擇忽略ignore掉就能夠。


接下來的界面以下所示


安裝過程


須要在root用戶下執行這兩個程序


安裝完成後,系統會提示你須要用root權限執行2個shell腳本。按照其提示的路徑,找到其所在的位置,如:個人就在

/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh/home/oracle/app/oraInventory/orainstRoot.sh  複製代碼

新開啓一個終端,輸入命令:

su – rootcd /home/oracle/app/oracle/product/11.2.0/dbhome_1sh  root.shcd /home/oracle/app/oraInventorysh  orainstRoot.sh複製代碼

執行效果以下


4.2數據庫新建

oracle用戶的圖形界面oracle用戶中,新開啓一個終端,直接輸入命令dbca會彈出以下界面,這裏須要說明,若是使用dbca啓動不成功,輸入dbca顯示爲bash: dbca: command not found,須要檢查配置的bash_profile 配置是否有問題,而後在命令行中打印echo${PATH}進行檢查。如沒有問題須要重啓下linux虛擬機,使用oracle用戶進入到建立database頁面中。


custom database


填寫orcl,這裏就是填寫的環境變量中的SID。


不勾選任何選項,直接點擊」next「


輸入統一密碼(也能夠分別設置其密碼),密碼爲oracle 管理員帳戶的密碼,即「system」和 「sys」 用戶的密碼


數據庫存放位置,我這裏採用默認


不指定快速恢復和歸檔


去掉不經常使用的模塊


內存分配及指定字符集


選擇字符集,這裏做者選擇使用」utf8「


最後一個步驟,直接點擊」next「和下一頁的「finish」


點擊Finish


出現頁面,點擊OK


出現建立database頁面,建立過程比較慢。


當看到此界面,說明oracle建庫完成


能夠用sqlplus來檢驗下,新開啓一個命令窗口,輸入sqlplus,而後輸入用戶名和密碼,能夠測試下


其中用戶名和密碼爲:

Enter user-name:sys as sysdbaEnter password:oracle複製代碼

須要注意的是Enter user-name輸入的是 :用戶名+as sysdba 。 如sys as sysdba

select count(*) from all_tables;select count(*) from user_tables;複製代碼


4.3設置監聽及本地網絡服務

在oracle 用戶下執行 netca 命令,啓動設置網絡監聽的設置窗口 (圖形化界面的登錄用戶依然是oracle)


選擇新建一個監聽服務,容許別的oracle客戶端能夠鏈接到本地的oracle 數據庫服務。


選擇端口 默認爲1521,這裏不作修改。


設置完成

,點擊「next」


3)配置本地網絡服務名(充當oracle客戶端,鏈接別的oracle服務器)


輸入鏈接的oracle服務器的數據庫的實例名


輸入本機的hostname 能夠輸入IP 也可能夠輸入配置好的hostname


選中測試


點擊」change login「, 更換鏈接數據庫服務其的帳號

輸入Username :system

Password爲建立database時設置的密碼。

出現successful則說明鏈接已經成功


爲咱們本地網絡服務起一個名字,做者填寫「orcl_ic"


選擇」finish「 結束設置

以上oracle服務器安裝配置基本就完成了。

4.4設置開機自啓動

首先切換root用戶

新建一個 /etc/init.d/after.local 腳本,該腳本爲開機後最後執行的步驟腳本,若是該文件已經存在,則直接打開便可

增長如下內容,包含關閉系統放火牆、開啓oracle 監聽和 oracle 數據庫服務

#!/bin/bash/sbin/service iptables stop/sbin/chkconfig iptables offsu oracle -lc "/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctlstart"su oracle -lc "/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbstart"複製代碼

修改 /etc/oratab 文件 (在oracle 用戶下操做)

將舊的內容

orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_1:N複製代碼

修改成如下內容,保存退出

orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_1:Y複製代碼

分別修改 /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbstart (80行)

將如下代碼註釋

#ORACLE_HOME_LISTNER=$1複製代碼

和 /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbshut (50行)文件

修改成以下:

ORACLE_HOME_LISTNER=${ORACLE_HOME}複製代碼

4.5操做oracle步驟

建立臨時表空間

-查詢臨時表空間文件的絕對路徑。若是須要的話,能夠經過查詢來寫定絕對路徑。通常用${ORACLE_HOME}就能夠了

select name from v$tempfile;create temporary tablespace mpg_temp98 tempfile '/home/oracle/app/oradata/orcl/mpg_temp98.bdf' size 100m reuse autoextend onnext 20m maxsize unlimited;複製代碼

查詢用戶表空間文件的絕對路徑:

select name from v$datafile;複製代碼

建立表空間

create tablespace MPG_DATA98 datafile'/home/oracle/app/oradata/orcl/MPG_DATA98.dbf' size 100M reuse autoextend onnext 40M maxsize unlimited default storage(initial 128k next 128k minextents 2maxextents unlimited);複製代碼

查看已經建立好的表空間:

select default_tablespace, temporary_tablespace, d.username  from dba_users d ;複製代碼

建立用戶havi和密碼havi,指定上邊建立的臨時表空間mpg_temp98和表空間MPG_DATA98

create user havi identified by havi default tablespace MPG_DATA98 temporary tablespace mpg_temp98;

用create user語法建立用戶使用語法以下:

CREATE USER user_name IDENTIFIED BY user_password DefaultTablespace tbs_users;

user_name 爲數據庫用戶的用戶名

user_password 爲數據庫用戶的密碼

tbs_users 爲用戶使用的表空間,默認是users表空間。

給用戶授予詳細權限(用戶爲havi)

grant create session, create any table, create any view ,create anyindex, create any procedure,alter any table, alter any procedure,drop anytable, drop any view, drop any index, drop any procedure,select any table,create any trigger,create table,insert any table, update any table, delete any table ,unlimited tablespace,connect,resource,dba to havi;複製代碼

給用戶賦簡單的權限(用戶爲havi)

GRANT connect, resource TO havi;    複製代碼

Connect用戶能登陸數據庫的權限

Resource用戶能建立一些數據庫對像的權限,表、視圖,存儲過程,通常是授予開發人員的.

CONNECT ,RESOURCE,DBA是Oracle系統的三個內置角色,角色權限以下:

CONNECT:擁有Connect權限的用戶只能夠登陸oracle,不能夠建立實體,不能夠建立數據庫結構。

RESOURCE:擁有Resource權限的用戶只能夠建立實體,不能夠建立數據庫結構。

DBA:擁有所有特權,是系統最高權限,只有DBA才能夠建立數據庫結構。

通常來講,對於普通用戶,授予CONNECT, RESOURCE權限。 對於管理員用戶,則授予CONNECT,RESOURCE, DBA權限。

退出oracle

exit;

使用用戶名爲havi從新登陸/home/oracle/app sqlplus havi/havi

建立表插入數據

create table CAPITAL_ADJUST(  CAPITAL_ID    VARCHAR2(10),  CAPITAL_NAME  VARCHAR2(50),  TYPE          VARCHAR2(10),  BELONG        VARCHAR2(50),  IN_DEP        VARCHAR2(50),  ID            VARCHAR2(10) not null,  IN_DEP_LEADER VARCHAR2(50),  OUT_DEP_LEAD  VARCHAR2(50));複製代碼

插入數據

INSERT INTO CAPITAL_ADJUST  (ID,   CAPITAL_ID,   CAPITAL_NAME,   TYPE,   BELONG,   IN_DEP,   IN_DEP_LEADER,   OUT_DEP_LEAD)VALUES  (1, '001', '002', '003','004', '005', '006', '007');複製代碼

查詢記錄

SELECT * FROM CAPITAL_ADJUST;複製代碼

刪除記錄

delete from CAPITAL_ADJUST t where t.ID = '1';複製代碼

增長主鍵

alter table 表名 add constraint 主鍵名 primary key (字段名1);

給CAPITAL_ADJUST這張表建立主鍵

alter table CAPITAL_ADJUST add constraint ID primary key (ID);複製代碼

增長外鍵

alter table 表名 add constraint 外鍵名 foreign key (字段名1) references 關聯表 (字段名2);

建立索引

create index 索引名 on 表名 (GETSURE_UNIT_NO, SONSURE_UNIT_NO, UNIT_NO, FAMILY_NO, HOSPS_NO)

刪除某個用戶

drop user havi cascade;複製代碼

查看用戶下有哪些表

select * from tab;複製代碼

查看臨時表空間文件

select name from v$tempfile;複製代碼

查看用戶和表空間的關係

select USERNAME,TEMPORARY_TABLESPACE from DBA_USERS;複製代碼

若是有用戶的默認臨時表空間是NOTIFYDB_TEMP的話,建議進行更改

alter user xxx temporary tablespace tempdefault;複製代碼

設置 tempdefault 爲默認臨時表空間

alter database default temporary tablespace tempdefault;複製代碼

刪除表空間NOTIFYDB_TEMP及其包含數據對象以及數據文件

drop tablespace mpg_temp13 including contents and datafiles; 複製代碼

刪除臨時表空間(刪除以前要肯定沒用在使用)

drop tablespace mpg_temp98 including CONTENTS and datafiles; 複製代碼

刪除表空間

drop tablespace MPG_DATA98 including CONTENTS and datafiles; 複製代碼

建立表時的命名規則和注意事項:

1)表名和字段名的命名規則:必須以字母開頭,能夠含符號A-Z,a-z,0-9,_,$,#

2)大小寫不區分

3)不用SQL裏的保留字, 必定要用時可用雙引號把字符串括起來

4)用和實體或屬性相關的英文符號長度有必定的限制

5)約束名的命名規則和語法 約束名的命名規則約束名若是在建表的時候沒有指明,系統命名規則是SYS_Cn(n是數字) 約束名字符串的命名規則同於表和字段名的命名規則

6)使用約束時的注意事項 約束裏不能用系統函數,如SYSDATE和別的表的字段比較 能夠用本表內字段的比較

注意事項:

1)建表時能夠用中文的字段名, 但最好仍是用英文的字段名

2)建立表時要把較小的不爲空的字段放在前面, 可能爲空的字段放在後面

3)建表時若是有惟一關鍵字或者惟一的約束條件,建表時自動建了索引

4)一個表的最多字段個數也是有限制的,254個.

執行startup,進行啓動oracle服務

SQL> startupORACLE instance started. Total System Global Area 409194496 bytesFixed Size 2213856 bytesVariable Size 134219808 bytesDatabase Buffers  264241152 bytesRedo Buffers 8519680 bytesDatabase mounted.Database opened.複製代碼


5、 Sequoiadb安裝部署

5.1 Sequoiadb安裝

解壓安裝包: tar -zxvf sequoiadb-2.8.1-linux_x86_64-enterprise-installer.tar.gz,則能夠執行以下安裝命令。其餘步驟這裏不作過多的講解,具體請查看Sequoiadb安裝文檔。

命令行中執行命令:

./sequoiadb-2.8.2-linux_x86_64-enterprise-installer.run--mode text --installer-language en --prefix /opt/sequoiadb --upgrade false--force false --username sdbadmin --groupname sdbadmin_group --userpasswdsdbadmin --port 11790 --processAutoStart false --SMS true  複製代碼

Note:

    SMS true表示安裝OM

    SMS false 表示不安裝OM

    Username 爲sdb用戶名不是數據庫名不要混淆

    Userpasswd 爲sdb用戶密碼不是數據庫密碼不要混淆

5.2集羣部署

鏈接到本地 cm服務

var oma = new Oma("localhost", 11790)複製代碼

建立臨時協調節點

oma.createCoord(18800,"/opt/sequoiadb/database/coord/18800")複製代碼

啓動臨時協調節點

oma.startNode(18800)複製代碼

鏈接到臨時協調節點

var db = new Sdb("localhost",18800)複製代碼

建立一個編目節點組

db.createCataRG("sdbserver1", 11800,"/opt/sequoiadb/database/cata/11800")      複製代碼

添加另外兩個編目節點

> var cataRG = db.getRG("SYSCatalogGroup");> var node1 = cataRG.createNode("sdbserver2",11800,"/opt/sequoiadb/database/cata/11800")> var node2 = cataRG.createNode("sdbserver3", 11800,"/opt/sequoiadb/database/cata/11800")複製代碼

啓動編目節點組

> node1.start()> node2.start()複製代碼

建立數據節點組

> var dataRG = db.createRG("datagroup")複製代碼

添加數據節點

> dataRG.createNode("sdbserver1", 11820,"/opt/sequoiadb/database/data/11820")> dataRG.createNode("sdbserver2", 11820,"/opt/sequoiadb/database/data/11820")> dataRG.createNode("sdbserver3", 11820,"/opt/sequoiadb/database/data/11820")> dataRG.start()複製代碼

建立協調節點組

> var rg = db.createCoordRG()複製代碼

建立協調節點

> rg.createNode("sdbserver1", 11810,"/opt/sequoiadb/database/coord/11810")> rg.createNode("sdbserver2", 11810,"/opt/sequoiadb/database/coord/11810")> rg.createNode("sdbserver3", 11810,"/opt/sequoiadb/database/coord/11810")複製代碼

啓動協調節點

> rg.start()複製代碼

刪除臨時協調節點

鏈接到本地的集羣管理服務進程 sdbcm

> var oma = new Oma("localhost", 11790)複製代碼

刪除臨時協調節點

> oma.removeCoord(18800)複製代碼

6、 Oracle GoldenGate對接 Oracle 11g

機器介紹

目標端機器IP爲 192.168.137.128 ogg 的mgr爲1357

源端的機器IP爲 192.168.137.164

6.1開始介紹部署與配置步驟

1. 開啓日誌自動歸檔

使用system用戶登錄oracle 的sqlplus

sqlplus "system/oracle" as sysdba複製代碼

首先檢查oracle 是否已經開啓 Archive logging

archive log list;複製代碼

若是顯示如下錯誤,則證實沒有開啓

ORA-01031: insufficient privileges複製代碼

或者是Automatic archival Disabled也是沒有開啓的。


用戶可使用如下命令查看oracle 是否已經開啓了 自動歸檔模式

select name,log_mode from v$database;複製代碼

LOG_MODE 顯示 NOARCHIVELOG 則表明沒有開啓


開啓 Archive logging ,須要先中止數據庫,執行如下命令

shutdown immediate;複製代碼

而後將數據庫啓動到 mount 狀態

startup mount複製代碼

更改歸檔模式,啓動 日誌自動歸檔

ALTER DATABASE ARCHIVELOG;複製代碼

想了解日誌歸檔是否真的已經開啓,以及查看歸檔日誌存儲在什麼路徑,能夠再次執行

archive log list複製代碼

例如做者機器就是顯示

SQL> archive log listDatabase log mode   Archive ModeAutomatic archival  EnabledArchive destination  /home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/archOldest online log sequence  49Next log sequence to archive 51Current log sequence  51複製代碼


從新打開oracle 的 database

SQL> alter database open;複製代碼

Database altered.

在shell中用戶須要先建立好日誌歸檔目錄,例如做者的歸檔目錄爲 /home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/arch,則該目錄須要預先建立

mkdir -p /home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/arch複製代碼

測試歸檔

alter system switch logfile;複製代碼

而後用戶能夠在 /home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/arch 目錄下看到新的歸檔日誌。


用戶也可使用sql 命令查看歸檔狀況

select * from v$archived_log;複製代碼

以上oracle 如何開啓日誌自動歸檔的方法就介紹完畢了。

2. 開啓同步日誌

檢查是否開啓forcelogging和 minimal supplemental logging

注意:若是不指定Primary key 和unique 屬性,OGG將不會傳送PK字段或Unique indiex字段信息。這樣,下游的應用,在處理update數據時將失去依據。

SELECT supplemental_log_data_min,force_logging FROM v$database;複製代碼

像做者的環境就沒有開啓(屏幕輸出NO),因此咱們還須要執行開啓命令,執行完畢後,咱們再來查看 forcelogging和 minimal supplemental logging 的開啓狀況

alter database add supplemental log data (primary key) columns;alter database add supplemental log data (unique) columns;alter database force logging;alter system switch logfile;複製代碼

檢查開啓狀況,顯示以下則表明ok

SUPPLEME FOR-------- ---IMPLICIT YES複製代碼

在oracle 中開啓 enable_goldengate_replication 參數

alter system set ENABLE_GOLDENGATE_REPLICATION=true;複製代碼

有些oracle版本會報錯,這是正常狀況忽略便可。


3. 建立ogg用戶

在上面的SQL窗口中建立ogg用戶

建立OGG 用戶,用戶名爲ogg,密碼也爲ogg

create user ogg identified by ogg;grant connect,resource to ogg;grant select any dictionary to ogg;grant select any table to ogg;複製代碼

6.2在Oracle 源端部署Oracle GoldenGate服務

1. 安裝ogg

由於oracle 服務部署在 oracle 系統用戶下,因此打算 ogg 也一樣部署在 oracle 用戶下

建立 ogg 的工做目錄

mkdir -p /home/oracle/ogg複製代碼

建立 oggapp目錄

mkdir -p /home/oracle/ oggapp複製代碼

將 ogg 軟件拷貝到 /home/oracle/ogg 目錄下,而且解壓

cp /mnt/hgfs/mnt/orace_ogg/123010_fbo_ggs_Linux_x64_shiphome.zip /home/oracle/oggunzip 123010_fbo_ggs_Linux_x64_shiphome.zip複製代碼

修改ogg 的配置文件

vi /home/oracle/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rspINSTALL_OPTION=ORA11gSOFTWARE_LOCATION=/home/oracle/oggappSTART_MANAGER=falseMANAGER_PORT=9001DATABASE_LOCATION=${ORACLE_HOME}複製代碼

注意:上文中已經在~/.bash_profile 中設置好了 ORACLE_HOME 的環境變量。

運行安裝 OGG 程序

cd /home/oracle/ogg/fbo_ggs_Linux_x64_shiphome/Disk1 ./runInstaller  -silent -responseFile /home/oracle/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp複製代碼

出現如下信息表示安裝成功


修改oracle 用戶的配置文件 ~/.bash_profile,主要是增長OGG_HOME 內容

export JAVA_HOME=/opt/java1.7/jdk1.7.0_80export CLASSPATH=${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jarexport PATH=${JAVA_HOME}/bin:${PATH}export ORACLE_BASE=/home/oracle/appexport ORACLE_HOME=${ORACLE_BASE}/oracle/product/11.2.0/dbhome_1export ORACLE_HOME_LISTNER=${ORACLE_HOME}export OGG_HOME=/home/oracle/oggappexport ORACLE_SID=orclexport PATH=${PATH}:${ORACLE_HOME}/bin:${OGG_HOME}export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/usr/lib:${OGG_HOME}export DISPLAY=:0複製代碼

Note:

1) 配置OGG_HOME爲ogg安裝的地址

2) PATH中添加ogg的目錄

3) LD_LIBRARY_PATH中添加ogg的目錄

2)源端的jak版本配置1.7 ,目標端jdk版本爲1.8。

登錄 ogg 控制檯

cd /home/oracle/oggapp./ggsci複製代碼


給ogg 建立目錄,注意此操做是在 ggsci 中執行

create subdirs複製代碼

執行後,屏幕輸出

Parameter file                /home/oracle/oggapp/dirprm: created.Report file                   /home/oracle/oggapp/dirrpt: created.Checkpoint file               /home/oracle/oggapp/dirchk: created.Process status files          /home/oracle/oggapp/dirpcs: created.SQL script files              /home/oracle/oggapp/dirsql: created.Database definitions files    /home/oracle/oggapp/dirdef: created.Extract data files            /home/oracle/oggapp/dirdat: created.Temporary files               /home/oracle/oggapp/dirtmp: created.Credential store files        /home/oracle/oggapp/dircrd: created.Masterkey wallet files        /home/oracle/oggapp/dirwlt: created.Dump files                    /home/oracle/oggapp/dirdmp: created.複製代碼


2. 配置源端manager

配置源端manager進程,注意:此操做是在 ggsci 中執行

edit params mgr複製代碼

而後操做會調到 VI 上,用戶再輸入如下內容後保存退出

port 9001autostart er *autorestart er *複製代碼

啓動 manager ,注意:此操做是在 ggsci 中執行

start mgr複製代碼


查看manager 的狀態,能夠看到 MANAGER 爲RUNNING,注意:此操做是在 ggsci 中執行

info all複製代碼


3. 配置EXT_TEST服務

編輯ext_test服務,該服務是專門用來抽取oracle 新增日誌的進程,注意:此操做是在 ggsci 中執行

edit params ext_test複製代碼

而後操做會跳到 VI 上,用戶再輸入如下內容後保存退出

EXTRACT ext_test複製代碼
Setenv (NLS_LANG="AMERICAN_AMERICA.UTF8")USERID ogg, PASSWORD ogggettruncatesDISCARDFILE ./dirrpt/ext_test.dsc, APPEND, MEGABYTES 1024DBOPTIONS  ALLOWUNUSEDCOLUMNREPORTCOUNT EVERY 1 MINUTES, RATEFETCHOPTIONS NOUSESNAPSHOTTRANLOGOPTIONS DBLOGREADEREXTTRAIL ./dirdat/exWILDCARDRESOLVE DYNAMICGETUPDATEBEFORESNOCOMPRESSUPDATESNOCOMPRESSDELETESdynamicresolutiontable ogg.test;複製代碼

而後執行命令建立ext_test 的服務,而且指定將抽取到的日誌存放在 ./dirdat/ 目錄下,而且文件名以ex 開頭,注意:此操做是在 ggsci 中執行

add extract ext_test, TRANLOG, BEGIN NOWADD EXTTRAIL ./dirdat/ex , EXTRACT ext_test, MEGABYTES 200複製代碼


注意,指定的目錄末尾必定只能是兩個字符,不然報錯爲以下信息

file portion must be two characters.複製代碼

啓動該日誌抽取服務,注意:此操做是在 ggsci 中執行

start ext_test複製代碼


日誌抽取部分的配置就ok了,下面開始配置日誌發送的服務dpe_test

4. 配置DPE_TEST服務

一樣的先編輯服務的配置

edit param dpe_test               複製代碼

而後界面會進入VI 模式,在文件上填寫如下內容後保存退出,一樣的dirdat 路徑下的文件名只可以用兩個字符,不然會報告錯誤

EXTRACT dpe_testPASSTHRURMTHOST 192.168.137.128, MGRPORT 1357RMTTRAIL ./dirdat/reTABLE scott.test;複製代碼

1)RMTHOST 這個IP 地址,是遠端接收日誌的服務的IP地址(目標端的IP不是源端的IP)。

2)MGRPORT 端口是遠端接收日誌的MGR 服務端口,這裏千萬不要搞混淆了。

3)RMTTAIL 這個是遠端接收日誌的路徑,並不是本機的,便是在 88.162 機器上的dirdata 目錄上的存放接收到的日誌路徑。

後面的步驟就是,將ext_test 抽取到的日誌存放路徑 配置給 dpe_test 發送日誌服務,注意:此操做是在 ggsci 中執行

ADD EXTRACT dpe_test, EXTTRAILSOURCE ./dirdat/exADD RMTTRAIL ./dirdat/re, EXTRACT dpe_test, MEGABYTES 200複製代碼


注意:紅色字體是ext_test 的路徑,綠色字體是發送到遠端服務的路徑

配置好dpe_test 服務後,還不可以立馬啓動,由於遠端接收的MGR 服務尚未起來,因此這塊還遺留一個小尾巴

6.3部署目標端的Oracle GoldenGate

1. 安裝ogg

在目標端機器(192.168.88.162)上事先建立oracle:oracle 用戶組和用戶

groupadd  oracleuseradd  -s /bin/bash -m -g oracle oraclepasswd oracle複製代碼

切換oracle 用戶,爲ogg adapter 建立目錄

mkdir /home/oracle/ogg複製代碼

拷貝ogg adapter 壓縮包,而且解壓

cp /mnt/hgfs/mnt/orace_ogg/123110_ggs_Adapters_Linux_x64.zip  /home/oracle/ogg_adapter ; 複製代碼
unzip 123110_ggs_Adapters_Linux_x64.zip 複製代碼

將解壓的 ogg_adapter/ggs_Adapters_Linux_x64.tar 文件拷貝到 /home/oracle/oggapp 目錄(若是不存在此目錄,請事先建立)

cp ogg/ggs_Adapters_Linux_x64.tar /home/oracle/oggapp複製代碼

在 /home/oracle/oggapp 目錄下解壓 ggs_Adapters_Linux_x64.tar.gz 文件

tar xvf ggs_Adapters_Linux_x64.tar.gz複製代碼

爲oracle 用戶設置JDK 和 ogg 的環境變量

vi ~/.bash_profile export JAVA_HOME=/opt/jdk1.8.0_144export CLASSPATH=${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jarexport PATH=${JAVA_HOME}/bin:${PATH}export OGG_HOME=/home/oracle/oggappexport PATH=$PATH:$OGG_HOMEexport LD_LIBRARY_PATH=$OGG_HOME:$JAVA_HOME/jre/lib/amd64/libjsig.so:$JAVA_HOME/jre/lib/amd64/server/libjvm.so:$JAVA_HOME/jre/lib/amd64/server:$JAVA_HOME/jre/lib/amd64複製代碼

Note:

若是不設置JDK的LD_LIBRARY_PATH環境變量,會在啓動後面的rep_test 服務時,報錯。

用戶也要注意 /etc/hosts 的設置,必定須要將機器的hostname 和 IP 地址配置好映射關係,否者也會出現錯誤。

若是用戶出現此錯誤,須要先重啓目標端的mgr 服務,直接在 ggsci 命令窗口執行 stop mgr 命令是不可以中止mgr 服務的,還須要用戶在shell 中經過 kill -15 PID 的方法中止mgr。

用戶正確修改 /etc/hosts 配置文件後,再重啓 目標端的 mgr 和 rep_test 服務,而後須要 從新啓動 源端 的 dpe_test 服務,由於目標段的 mgr 服務一旦中止, dpe_test 就可能出現異常。

拷貝模板文件

cp /home/oracle/ogg/AdapterExamples/big-data/kafka/*  /home/oracle/ogg/dirprm/複製代碼

啓動 ggsci 控制程序

/home/oracle/oggapp/ggsci複製代碼

建立目錄,注意:此操做是在 ggsci 中執行

create subdirs複製代碼


2. 配置目標端manager

配置目標端manager進程,注意:此操做是在 ggsci 中執行

edit params mgr複製代碼

而後出現VI 界面,輸入如下內容後保存退出

port 1357autostart er *autorestart er *複製代碼

在目標端的MGR 配置中,端口號設置是須要和源端的 dpe_test 配合的,這個須要注意。

啓動manager 進程而且確認,注意此操做是在 ggsci 中執行 。

start mgr複製代碼

確認命令,若是正常運行,則顯示 MANAGER RUNNING ,注意:此操做是在 ggsci 中執行。

info all複製代碼

能夠看到manager服務已經啓動。

3. 配置REP_TEST

修改接收服務配置,注意:此操做是在 ggsci 中執行

edit params rep_test複製代碼

修改內容以下

REPLICAT rep_testTARGETDB LIBFILE libggjava.so SET property=dirprm/sequoiadb.propsGETTRUNCATESSOURCEDEFS dirdef/source.defREPORTCOUNT EVERY 1 MINUTES, RATEGROUPTRANSOPS 10000MAP scott.*, TARGET scott.*;複製代碼

dirprm/ sequoiadb.props 是sequoiadb的配置文件,下面會介紹到。

dirdef/source.def 是源端的表結構定義文件,這個暫時尚未介紹到,等一下會介紹。

而後就是添加rep_test 該服務,而且指定 dirdat/re 路徑做爲 rep_test 服務的日誌來源,能夠留意一下dirdat/re 路徑,實際上就是遠端dpe_test 指定的路徑。

由於rep_test 的服務做用就是將日誌文件解析,而後再作相應的處理,本文就是將解析後的日誌發送到sequoiadb上。

爲 ogg 增長rep_test 服務,注意:此操做是在 ggsci 中執行

add replicat rep_test, exttrail ./dirdat/re

建立sequoiadb_libs目錄,放置sequoiadb兩個驅動包

>cd  /home/oracle/oggapp/mkdir sequoiadb_libscp ../sequoiadb-driver-2.9.0-SNAPSHOT.jar ./sequoiadb_libs/cp ../sequoiadb_ogg_2.8.2.jar ./sequoiadb_libs/複製代碼

在ogg的dirprm目錄下建立sequoiadb.props文件

gg.handlerlist=sequoiadbgg.handler.sequoiadb.type=oracle.goldengate.handler.sequoiadb.SequoiaDBHandler #The following handlerproperties are optional. #Please refer to the OracleGoldenGate for BigData documentation#for details about theconfiguration.#gg.handler.sequoiadb.hosts=sdb1:11810,sdb2:11810,sdb3:11810gg.handler.sequoiadb.hosts=localhost:11810#gg.handler.sequoiadb.password=sdbadmin#gg.handler.sequoiadb.username=sdbadmin#gg.handler.sequoiadb.bulkWrite=<true|false>#gg.handler.sequoiadb.bulkSize=1024#gg.handler.sequoiadb.checkMaxRowSizeLimit=<true|false>#gg.handler.sequoiadb.ignoreMissingColumns=<true|false>#gg.handler.sequoiadb.changeFieldToLowCase=<true|false>#gg.handler.sequoiadb.changeTableToLowCase=<true|false>gg.handler.sequoiadb.isPrintInfo=true goldengate.userexit.timestamp=utcgoldengate.userexit.writers=javawriterjavawriter.stats.display=TRUEjavawriter.stats.full=TRUEgg.log=log4jgg.log.level=INFOgg.report.time=30sec #Path to SequoiaDB Javadriver.# maven co-ordinates# <dependency># <groupId>com.sequoiadb</groupId># <artifactId>sequoiadb-driver</artifactId># <version>2.8.1</version># </dependency>gg.classpath=/home/oracle/oggapp/sequoiadb_libs/sequoiadb-driver-2.9.0-SNAPSHOT.jar:/home/oracle/oggapp/sequoiadb_libs/sequoiadb_ogg_2.8.2.jarjavawriter.bootoptions=-Xmx512m-Xms32m -Djava.class.path=.:ggjava/ggjava.jar:./dirprm複製代碼

Note:

gg.handler.sequoiadb.hosts是須要對接的Sequoiadb的IP和協調節點和地址,當有多臺機器構成的集羣可使用多個鏈接。

gg.handler.sequoiadb.username數據庫鑑權用戶名。

gg.handler.sequoiadb.password是數據庫鑑權密碼。

gg.handler.sequoiadb.bulkWrite是否起開批量插入,默認爲打開的。

gg.handler.sequoiadb.bulkSize當打開批量插入後,每次批量插入的條數。

gg.handler.sequoiadb.checkMaxRowSizeLimit是否檢查寫入數據庫的記錄大小,若是打開,則超過16MB的BSON記錄將會報錯,默認是關閉的。

gg.handler.sequoiadb.ignoreMissingColumns寫入記錄時,是否要忽略值爲null的字段,默認是打開的。

gg.handler.sequoiadb.changeFieldToLowCase鏈接器在獲取源端的表結構時,是否要對其轉換爲小寫字母,默認爲打開。

gg.handler.sequoiadb.changeTableToLowCase鏈接器在獲取源端的表名時,是否要對其轉換成小寫字母,默認爲打開。

gg.handler.sequoiadb.isPrintInfo是GoldenGate的replica程序在運行時是否要打印OGG-SequoiaDB鏈接器的日誌信息,默認是關閉的。

以上操做後,rep_test 的服務配置已經基本完了,可是源端表結構的配置尚未開始作,因此也暫時對 rep_test 服務不能啓動。

4. 源端表結構文件初始化

回到源端的ggsci 客戶端的交互命令窗口上來,執行如下命令,建立一個新的初始化源端表結構的配置文件,注意:此操做是在 ggsci 中執行

edit param defgen

此時界面會跳轉到VI界面上,用戶直接在上面編輯如下內容。

DEFSFILE dirdef/source.def,PURGEUSERID ogg, PASSWORD oggTABLE ogg.test ;複製代碼

userid 和 password 參數是 oracle 數據庫中的用戶名和密碼登陸方式

table 參數就是須要初始化的表名

而後用戶在 linux shell 窗口下執行如下命令(源端執行shell 命令)

defgen paramfile dirprm/defgen.prm

而後把在源端新生成的 dirdef/source.def 文件scp 到 目標端 的 dirdef/source.def

scp -r dirdef/source.def oracle@sdb2:/home/oracle/oggapp/dirdef/source.def複製代碼

首先來啓動rep_test 服務(目標端的ggsci 執行),注意:此操做是在 ggsci 中執行

start rep_test複製代碼

再來啓動 dpe_test 服務(源端的ggsci 執行),注意:此操做是在 ggsci 中執行

start dpe_test複製代碼

用戶也能夠分別在源端和目標端的 ggsci 中查看rep_test 和 dpe_test 服務的啓動狀態。

info  all複製代碼

7、 Oracle GoldenGate對接Sequoiadb

7.1 對接準備

進入到oracle用戶中

cd – oracle複製代碼

切換到ogg的安裝目錄中

/home/oracle/oggapp/dirprm複製代碼

查看源端的ogg機器MANAGER、DPE_TEST、EXT_TEST服務是否已經啓動。


若是顯示爲非RUNNING狀態,能夠執行如下語句進行啓動

start mgrstart rep_teststart ext_test複製代碼

查看目標端的MANAGER和REP_TEST服務是否已經啓動


若是沒啓動,也是同理執行start進行啓動。

start mgrstart rep_test複製代碼

在oracle中建立須要同步的表

使用ogg用戶進入到oracle中,這裏建立test這張表。

SQL>create table test(  a  INT,  b VARCHAR2(10),  c  INT);複製代碼

//插入一條記錄,驗證能夠進行操做。

SQL>INSERT INTO test     (a,b,c)   VALUES    (2, '2',4);複製代碼


在配置的Sequoiadb中建立須要同步的表,此表在oracle數據庫中已經存在(也就是上面建立的test這張表)。其中cs爲oracle的登陸用戶,cl爲oracle用戶中的表。


7.2 基本功能測試

1. insert測試

首先在oracle中將test表清空。

SQL> select * from test ;no rows selected複製代碼

在Sequoiadb中檢查ogg.test這個集合也沒有記錄存在。

> db.ogg.test.find()Return 0 row(s).Takes 0.014508s.複製代碼

在oracle中插入一條記錄,而且進行提交。

SQL> INSERT INTO test(a,b,c)VALUES(1, '01',3);1 row created.SQL> commit;Commit complete.複製代碼

在Sequoiadb中進行查詢已經提交成功。

> db.ogg.test.find(){  "_id": {    "$oid":"5a17c6dde4b0035abe90a3a0"  },  "a": 1,  "b": "01",  "c": 3}複製代碼

Sequoiadb中顯示記錄和插入到oracle中的記錄相同。

2. update測試

在oracle中將插入記錄a字段由原來的1改成10,並進行提交。

SQL> update test set a=10where a= 1; 1 row updated.SQL> commit;Commit complete.在Sequoiadb中進行查詢。> db.ogg.test.find(){  "_id": {    "$oid":"5a17c6dde4b0035abe90a3a0"  },  "a": 10,  "b": "01",  "c": 3}Return 1 row(s).複製代碼

注意:

同步時,必定是commit提交後才進行同步的。

3. delete測試

在oracle中將test表中a字段爲10的記錄刪除,並進行提交。

SQL> delete from test where a = 10;1 row deleted.SQL> commit;Commit complete.複製代碼

在oracle中進行查詢,顯示已經不存在記錄。

SQL> select * from test;  no rows selected複製代碼

在Sequoiadb中進行查詢,顯示記錄已經不存在,表示delete同步成功。

> db.ogg.test.find()Return 0 row(s).Takes 0.002469s.複製代碼


8、 總結

      相比較oracle 11g的安裝,Sequoiadb數據庫的安裝是比較容易的,部署集羣也僅僅須要幾步便可,經過直接使用ogg將oracle和Sequoiadb進行數據遷移,使得同步過程大大的簡化,提升了同步的效率。使得oracle數據遷移到nosql數據庫得以在生產中普遍使用。

相關文章
相關標籤/搜索