このエントリは Oracle Database or GoldenGate Advent Calendar 2018 Day 6 の記事です!
今回のエントリではOracleR Fusion Middleware Oracle GoldenGateのインストール 12c (12.3.0.1)にそって実際にGoldenGateをインストールしていく手順をお届けしたいと思います
OS要件とかは各自個別に確認してね!
ソフトウェアはここからダウンロードします
ライセンスの規約についてもしっかり各自で確認してね!
今回は下記のような環境で構築します
・Oracle Database 12.2.0.1
・Oracle GoldenGate 12.3.0.1.4
・Red Hat Enterprise Linux Server release 6.9(x86-64)
ちなみにお使いのDatabaseをサポートするGoldenGateのバージョンを知りたい場合はCertification Matrixをご使用ください!
今回はGoldenGate 12.3.0.1を使用するので、「Oracle Fusion Middleware 12c Certifications > System Requirements and Supported Platforms for Oracle GoldenGate 12c (12.3.*)」ですね
では早速ソフトウェアのDLからやっていきたいと思います
#GoldenGateインストール
##1.ライセンス同意
ライセンス規約をよく読んでOKであれば同意
##2.ソフトウェアダウンロード
今回はLinux x86-64なので適したプラットフォームのソフトウェアを選択
ダウンロードできたら早速構築先のサーバーに転送しましょう
今回はTeratermで転送します
##3.ソフトウェア転送
ダウンロードしたソフトウェアをTeratermのSSH SCPで転送
##4.転送確認
転送完了したら確認
[oracle@test01 ~]$ ls /home/oracle/work/123014_fbo_ggs_Linux_x64_shiphome.zip
/home/oracle/work/123014_fbo_ggs_Linux_x64_shiphome.zip
##5.インストール用の一時ディレクトリ作成
テンポラリのインストールディレクトリを作成します
[oracle@test01 ~]$ mkdir /home/oracle/work/gg_inst
[oracle@test01 ~]$ ls /home/oracle/work/gg_inst
[oracle@test01 ~]$ cd /home/oracle/work/gg_inst
##6.ソフトウェア展開(UNZIP)
インストールディレクトリに移動してUNZIPしましょう
[oracle@test01 gg_inst]$ unzip ../123014_fbo_ggs_Linux_x64_shiphome.zip
Archive: ../123014_fbo_ggs_Linux_x64_shiphome.zip
creating: fbo_ggs_Linux_x64_shiphome/
creating: fbo_ggs_Linux_x64_shiphome/Disk1/
creating: fbo_ggs_Linux_x64_shiphome/Disk1/install/
inflating: fbo_ggs_Linux_x64_shiphome/Disk1/install/.oui
inflating: fbo_ggs_Linux_x64_shiphome/Disk1/install/attachHome.sh
inflating: fbo_ggs_Linux_x64_shiphome/Disk1/install/clusterparam.ini
(省略)
[oracle@test01 gg_inst]$ ls
fbo_ggs_Linux_x64_shiphome OGG_WinUnix_Rel_Notes_12.3.0.1.4.pdf
OGG-12.3.0.1.4-README.txt
fbo_ggs_Linux_x64_shiphomeというフォルダが作成されていますね!
ここにrunInstallerが入っています
[oracle@test01 gg_inst]$ ls fbo_ggs_Linux_x64_shiphome/Disk1/
install response runInstaller stage
今回はOracle Universal Installer(以下、OUI)を使用して対話型(インストール場所どこにするとか選択しながら)で設定していきます
現在Teratermから接続しているのでSSH転送とXmingを使用して、サーバーからクライアント(今構築に使っているPC)にOUIの画面を飛ばします
ここらへんの手順は下記を参考にしてください!
[Xming + Teraterm で画面転送] (http://www.mikitechnica.com/11-xming-teraterm.html)
ではrunInstallerを実行していきます!
##7.runInstaller実行
[oracle@test01 gg_inst]$ cd fbo_ggs_Linux_x64_shiphome/Disk1/
[oracle@test01 Disk1]$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 12![WS000004.png](https://qiita-image-store.s3.amazonaws.com/0/60220/e299d71f-19b4-87c8-3b13-532c0da7e4ad.png)
0 MB. Actual 7469 MB Passed
Checking swap space: must be greater than 150 MB. Actual 6071 MB Passed
Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2018-12-06_11-16-01AM. Please wait ...
OUIの画面が飛んできました!
##8.OUI設定
では設定を行っていきたいと思います
###8-1.Database Versionの選択
今回はDatabase 12.2.0.1を使用するので「Oracle GoldenGate for Oracle Database 12c」を選択します
###8-2.GoldenGateソフトウェアロケーションと、Databaseロケーションの指定
GoldenGateソフトウェアロケーション、いわゆるGG_HOMEの設定を行います
一応マニュアルには下記の記載があるため留意して設定してください
マウントされておらず、割当て制限のないローカル・ディレクトリに変更することをお薦めします。
今回は /u01/app/oracle/product/ 配下にgghome_1という名前で指定しようと思います
またDatabaseロケーションには既にインストール済みのDatabase 12.2.0.1のDB_HOMEを指定します
[oracle@test01 Disk1]$ echo $ORACLE_HOME
/u01/app/oracle/product/12.2.0/dbhome_1/
その他の項目については下記のとおりです
・Start Manager:GoldenGateインストール後にManagerプロセスを起動するか
・Manager Port:Managerプロセスが使用するポート番号
使用していないポート番号を指定する必要がある
後ほど変更可能
基本的には上記2項目はデフォルトでいいので下のような設定で次に進みます
インストールで設定が必要な項目はここまで!
###8-3.Summary確認
それではサマリを確認しましょう
入力した下記の項目が正しく反映されていればOKです
・Database Version
・GoldenGateソフトウェアロケーション(GG_HOME)
・Databaseソフトウェアロケーション(既にインストールずみのDBのORACLE_HOME)
・インストールしたあとManagerを起動するか
・Managerが使用するポート
ではインストールしたいと思います
##9.インストール
すすんでますね~
結構サクッと完了すると思います
(5分後)
完了しました!
インストール自体はかなり簡単だったと思います!!
それでは確認と事後作業を行っていきましょう~
##10.確認
###10-1.GG_HOME確認
lsで見てみると
[oracle@test01 Disk1]$ ls /u01/app/oracle/product/gghome_1/
archivelog.sql ggparam.dat
bcpfmt.tpl ggsci
bcrypt.txt ggserr.log
cachefiledump healthcheck
cfgtoollogs help.txt
checkprm install
chkpt_ora_create.sql inventory
convchk jdk
convprm keygen
crypto label.sql
db2cntl.tpl libantlr3c.so
db_upgrade libboost_system-mt.so.1.58.0
ddl_cleartrace.sql libdb-6.1.so
ddl_create.sql libgglog.so
ddl_ddl2file.sql libggnnzitp.so
ddl_disable.sql libggparam.so
ddl_enable.sql libggperf.so
ddl_filter.sql libggrepo.so
ddl_ora10.sql libggssl.so
ddl_ora10upCommon.sql libggutil.so
ddl_ora11.sql libicudata.so.56
ddl_ora9.sql libicui18n.so.56
ddl_pin.sql libicuuc.so.56
ddl_remove.sql liblmdb.so
ddl_session1.sql libPocoCrypto.so.48
ddl_session.sql libPocoFoundation.so.48
ddl_setup.sql libPocoJSON.so.48
ddl_status.sql libPocoNet.so.48
ddl_staymetadata_off.sql libPocoNetSSL.so.48
ddl_staymetadata_on.sql libPocoUtil.so.48
ddl_tracelevel.sql libPocoXML.so.48
ddl_trace_off.sql libudt.so
ddl_trace_on.sql libxerces-c-3.1.so
defgen logdump
deinstall marker_remove.sql
demo_more_ora_create.sql marker_setup.sql
demo_more_ora_insert.sql marker_status.sql
demo_ora_create.sql mgr
demo_ora_insert.sql noop.sql
demo_ora_lob_create.sql notices.txt
demo_ora_misc.sql oggerr
demo_ora_pk_befores_create.sql OPatch
demo_ora_pk_befores_insert.sql oraInst.loc
demo_ora_pk_befores_updates.sql oui
diagnostics params.sql
dirchk pmsrvr
dircrd prvtclkm.plb
dirdat prvtlmpg.plb
dirdef prvtlmpg_uninstall.sql
dirdmp remove_seq.sql
diretc replicat
dirout retrace
dirpcs role_setup.sql
dirprm sequence.sql
dirrpt server
dirsca SQLDataTypes.h
dirsql sqlldr.tpl
dirtmp srvm
dirwlt tcperrs
emsclnt ucharset.h
extract ulg.sql
freeBSD.txt UserExitExamples
ggcmd usrdecs.h
ggMessage.dat zlib.txt
なんかたくさんディレクトリやファイルができていますね!
各コンポーネントの詳細はこちらをご参照ください
6 インストールされるOracle GoldenGateのコンポーネント
###10-2.GGSCIでプロセス確認
ではお待ちかねのGoldenGateプロセスを管理する独自のコマンドラインインターフェイス、GGSCIを実行してみましょう
[oracle@test01 gghome_1]$ ./ggsci
./ggsci: error while loading shared libraries: libnnz12.so: cannot open shared object file: No such file or directory
Oops!
ライブラリ変数の設定を忘れていたので怒られてしまいました
libnnz12.soがありませんよ!と行っていますね
Linuxの場合はLD_LIBRARY_PATHという変数にライブラリのパスを通してあげましょう
[oracle@test01 gghome_1]$ export LD_LIBRARY_PATH=/u01/app/oracle/product/12.2.0/dbhome_1/lib/
[oracle@test01 gghome_1]$ echo $LD_LIBRARY_PATH
/u01/app/oracle/product/12.2.0/dbhome_1/lib/
では再度GGSCIを実行
[oracle@test01 gghome_1]$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 12.3.0.1.4 OGGCORE_12.3.0.1.0_PLATFORMS_180415.0359_FBO
Linux, x64, 64bit (optimized), Oracle 12c on Apr 16 2018 00:53:30
Operating system character set identified as UTF-8.
Copyright (C) 1995, 2018, Oracle and/or its affiliates. All rights reserved.
できましたー♪
ついでにどんなプロセスが上がっているかも見たいと思います
プロセスの一覧を出す場合はGGSCIにてINFO ALLコマンドを実行します
GGSCI (test01.jp.oracle.com) 2> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
まだCapture,Datapump,Replicatを作成していないので、Managerだけ起動していますね!
ちなみにManagerのパラメータファイルも自動的に作成されています
パラメータファイルは$GG_HOME/dirprmにあるのでOSからlsで見てみましょう
[oracle@test01 gghome_1]$ ls dirprm/
mgr.prm
ありました!内容はどんな感じでしょうか
[oracle@test01 gghome_1]$ cat dirprm/mgr.prm
PORT 7809
OUIにて設定したデフォルトポート7809を使用する設定がしっかり書いていますね!
最後にOSプロセスとしてはどのように見えているのでしょうか
psコマンドで./mgrをみてみましょう
[oracle@test01 gghome_1]$ ps -ef | grep ./mgr | grep -v grep
oracle 12440 1 0 11:34 ? 00:00:00 ./mgr PARAMFILE /u01/app/oracle/product/gghome_1/dirprm/mgr.prm REPORTFILE /u01/app/oracle/product/gghome_1/dirrpt/MGR.rpt PROCESSID MGR
元気に動いてそう!
ついでに7809ポートをちゃんと使っているかlsofコマンドで見てみます
[oracle@test01 gghome_1]$ lsof -i | grep mgr
mgr 12440 oracle 7u IPv6 4431443 0t0 TCP *:7809 (LISTEN)
[oracle@test01 gghome_1]$ lsof -i:7809
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mgr 12440 oracle 7u IPv6 4431443 0t0 TCP *:7809 (LISTEN)
しっかり
指定したポートで可動していますね!
このあとのエントリで解説しますが、Datapumpプロセスがターゲット側とやり取りをする際に、Managerプロセスのポートを意識する必要があります!
もしDatapumpプロセスとManagerプロセスがきちんとやり取りできているか不安になった場合は、意図したポートで稼働しているか確認しましょう!
##まとめ
今回もざっくりと書きましたが、GoldenGateのインストールについて記載しました
皆さんも是非一度インストールしてくださいね!