5
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GoldenGate布教活動① ~GoldenGateの基本のキ~

Last updated at Posted at 2018-12-04

このエントリは Oracle Database or GoldenGate Advent Calendar 2018 Day 4 の記事です!

JPOUGのOracle Database or GoldenGate Advent Calendar 2018 4日目担当 ch0c0bana0です

気づけば担当の日になっていました

朝起きてふとJPOUGってなんや、と思いましたけどJaPan Oracle User Groupの略かなんかですかね?

昨日はitedgeblogさんの『[Oracle] My Oracle Supportのナレッジ記事がWeb検索可能になった話』でした

My Oracle SupportがWebから検索なるようになったのめっちゃ便利ですよねー

みんなでバシバシ検索してMOSのDocumentが検索上位に来るようになったらさらに便利になるかも

さて、本エントリではGoldenGateユーザーを増やすため、基本的なところから解説していきたいとおもいます
ちなみにQiita内を『GoldenGate』で検索したら17件しかヒットしませんでした
このAdvent Calendar期間中に30件くらいになればいいなあ

では本題

##本エントリの前置き
1.GoldenGate超初心者向けの記事を意識して書いています
2.なるべく責任を持って書きますが、この発言は個人の見解であり、所属する組織の公式見解ではありません
3.指摘事項があればどんどんおよせください
4.個人ブログで書いても良かったのですが、なるべく人目について方が布教活動になると思ってQiitaにしました

#GoldenGate布教活動① ~GoldenGateの基本のキ~

Oracle® Fusion Middleware Oracle GoldenGateの理解 12c (12.3.0.1)』を参照しながらOracle GoldenGateとはなにか、GoldenGateを使用する上での基本のキについて軽く記載したいと思います

##GoldenGateとは
GoldenGateとはデータベース間でのデータを移行する場合に使用するデータレプリケーション製品です
Oracle Database間のデータレプリケーションだけではなく、異種データベース間でのデータレプリケーションも行うことができます
また最近ではGoldenGate for Bigdataと組み合わせることで、MongoDBやKafkaといったBigDataで使用されるようなターゲットにもデータをレプリケーションすることが可能になっています

##なぜGoldenGateを使うか
例えば異種データベースが混在するシステムにおいて運用コスト低減のためDatabaseをOracleに統一する場合や、新しいバージョンのOracle Database構築のためにデータ移行が必要な場合があります
このような場合にGoldenGateを使用することで、データ移行に伴うシステムの停止時間を極小化が可能になり、移行データの変換やフィルタリングを効率的に行うことができます
また近年ではオンプレミス環境からクラウド環境への移行や、ビックデータ活用のためのデータ集約に使用されるなど、データレプリケーション製品としてかなり幅広く活用されるようになってきました

##GoldenGateのキーワードと主なプロセス
####ソースデータベース
移行元のデータベース
OracleだったりOracleじゃなかったり

####ターゲットデータベース
移行先のデータベース
こちらもOracleだったりOracleじゃなかったり
最近ではKafkaとかMongoの場合も

####GGSCI
GoldenGate独自のコマンドラインインターフェイス
GoldenGate Homeのggsciコマンドを実行することで起動可能
ここからプロセスの起動停止を行ったり、各プロセスのパラメータファイルを編集したりする

####Trail(証跡)ファイル
ソースから読み取ったDMLとかDDLの内容が記載されているGoldenGate独自のファイル
ソースデータベースから作成したこのファイルを、移行元と移行先でやり取りしてDMLやDDLをターゲットデータベースに適用する

####Managerプロセス
GoldenGateの親玉(?)プロセス
GGSCIを使う場合や、GoldenGateが作成する諸々のファイルをメンテナンスする役割などを担う
また後述のGoldenGateの中核処理を担うプロセスを管理・監視する

####Captureプロセス
ソースデータベースからDMLやDDLを読み取って、Trail(証跡)ファイルという独自のファイルに書き出すプロセス
Integrated(統合)モードとClassic(非統合)モードがある
データのフィルタリングやマッピングデータ変換ができるし、Trailファイルの暗号化とかもできる
専用のパラメータファイルが必要になる

####Datapumpプロセス
Captureプロセスが出力したTrailファイルをターゲットのサーバーに転送するプロセス
Trailファイル内のデータをフィルタリングやマッピング、データ変換しながら転送するモードと、何もせず単純転送するパススルー・モードがある
Datapumpプロセスを構成せずにTrailファイルをNFSとかに書き出してターゲット側に連携する方法もあるが、ほとんどのシステムにおいて構成を推奨されているプロセス
ネットワーク転送の役割をDatapumpに切り出すことで、運用とか障害時の切り分けも容易になる
餅は餅屋だということ
専用のパラメータファイルが必要になる

####Collectorプロセス
Datapumpが送ってきたTrailファイルを受け取る(実際には受け取りと/書き込みを行う)プロセス
GoldenGateのプロセスで唯一明示的にパラメータファイルを作成したり起動したりしないプロセス
Managerから自動起動されるし、障害時も自動復旧する
専用のパラメータファイルが不要

####Replicatプロセス
ソースから送られてきたTrailファイルを受け取り、読み込んだあとにターゲットデータベースに適用を行うプロセス
パラレル処理が可能なIntegrated(統合)モードとシリアル処理OnlyなClassc(非統合)モードがある
データのフィルタリングやマッピング、データ変換ができる

##はやいけどまとめ
ざっとしか書いていないけど
1.ソースデータベースの更新をCaptureプロセスが読み取る
2.CaptureプロセスがTrailファイルを書き出す
3.DatapumpプロセスがTrailファイルをソースに送る
4.CollectorプロセスがTrailファイルを受け取る
5.ReplicatがTrailファイルを読み込んでターゲットデータベースに適用する

上の動作を頭に入れておけば、本当にざっくりしたGoldenGateのアーキテクチャがイメージできます

より具体的な図としては『Oracle GoldenGate アーキテクチャと基本機能』のスライド7が参考になるので参照してください!

次のエントリでは実際にGoldenGateをインストールして、プロセス作成、データ伝播までやっていきたいと思います^^

5日目以降もよろしくおねがいします!

5
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?