異種DB間対応
リアルタイムレプリケーション
DBMoto（デービーモト）～移行・連携・災害対策に～
株式会社クライムhttps://www.climb.co.jp/

1

Copyright(C)2015 Climb Inc. All Rights Reserved.

レプリケーションとはレプリケーション＝「複製」(≠ファイルコピー)
変更点(差分)のみを転送可能⇒転送サイズ小、ネットワーク負荷小ファイルコピー

レプリケーション

データベース

VMware/Hyper-VNAS2

バックアップ
災害対策
データ連携移行

Copyright(C)2015 Climb Inc. All Rights Reserved.

2活用例: バックアップ

本番サーバ遠隔地でもクラウドでもリアルタイム
自動化
低負荷
手間をかけず

バックアップサーバ

レプリケーション3

Copyright(C)2015 Climb Inc. All Rights Reserved.

3活用例: 災害対策
通常運用時
東京

障害発生時
クラウド

東京

クラウド

レプリケーション

登録更新削除登録更新削除切り替えのみ
4

Copyright(C)2015 Climb Inc. All Rights Reserved.

4活用例: データ連携
BIツールで使用

社内システムで使用
レプリケーション

クラウドで使用
5Copyright(C)2015 Climb Inc. All Rights Reserved.

5活用例: 移行中にDBを止める必要なし
通常のDB移行DB構築

ImportExportレプリケーションによるDB移行

DB構築

切り替え

運用開始

システム停止期間

レプリケーション

切り替え

運用開始

全件＋差分

6Copyright(C)2015 Climb Inc. All Rights Reserved.

活用例: オンプレミスとAWSを繋ぐRDS

オンプレミスDB
レプリケーションツール

移行

連携

Redshift

EC2

BCP

7Copyright(C)2015 Climb Inc. All Rights Reserved.

AWS＋DBMoto: 組合せは自由
オンプレ⇔EC2EC2⇔EC2

オンプレ⇔RDSRDS⇔RDSEC2⇔RDS

オンプレ⇔オンプレ

8Copyright(C)2015 Climb Inc. All Rights Reserved.

AWS+DBMoto: 対応サービス
Amazon EC2

Amazon RDS

 DBMotoがサポートする全てのDB
 Redshift/Aurora
 SAP HANA (DBMotoインストールマシン)

 Oracle MS SQL Server
 MySQL PostgreSQLRedshift

9Copyright(C)2015 Climb Inc. All Rights Reserved.

DBMotoの特徴
対応力
柔軟性
・多くのDB・DWHをサポート
・ほぼリアルタイム
・DBはOS依存なし
・テーブル作成、スケジュール、関数、スクリプト・物理、仮想、クラウド(AWS等) ・小規模から大規模環境まで
使い易さ
開発元：HiT Software, Inc.
・Windowsによる一元管理
 1994年からDBアクセスツールの開発・販売
・エージェントレス
 本社：サンノゼ, カリフォルニア
・ツールは日本語表示
 DB2 expert ITリソース・パートナー
 全世界に販売網(日本は株式会社クライムが担当)
・導入簡単(1分以内)
http://www.hitsw.com/
・設定簡単(コンサル不要)
10Copyright(C)2015 Climb Inc. All Rights Reserved.

10

HiT Software(開発元)製品ファミリー
DB2 Connectivity

DB2接続ドライバ
・HiT ODBC・HiT JDBC・HiT OLEDB
・Ritmo(.NET) ※DBMotoに同梱

DBMotoリアルタイムDBレプリケーション

Allora

XMLとDB間の相互変換マッピング

SafeConduct

256ビットSSLデータ暗号化

11

Copyright(C)2015 Climb Inc. All Rights Reserved.

DBMotoと他社製品の位置づけ
DBMoto（エージェントレス）
Windowsマシンでの一元管理エージェントレスによる低負荷
複製元

他社エージェントツール
即時性
ツールのOS依存なし
複製先

複製元

Windows

12

Copyright(C)2015 Climb Inc. All Rights Reserved.

複製先異種DB間対応、異種文字コード間対応
異種DB間対応：レプリケーションはすべてSQLクエリで処理異種文字コード間対応：文字コードはDBMotoにてUnicodeで処理
DB2(AS/400)

Oracle(AWS)SQLでデータ抽出

文字コード:EBCDICUnicodeへ変換

SQLクエリ発行

SQLクエリ生成 Unicodeから変換
Unicode処理
13

文字コード:
JA16SJIS

Copyright(C)2015 Climb Inc. All Rights Reserved.

3つのレプリケーションモード
リフレッシュ（全件）

シンクロナイゼーション（双方向差分）ミラーリング（片方向差分）

ソース
複製元

ターゲット
複製先

14変更

変更
レプリケーション

レプリケーション

レプリケーション変更

Copyright(C)2015 Climb Inc. All Rights Reserved.

レプリケーションモード: リフレッシュ選択したテーブルの全レコードを転送初期レプリケーション
スケジュールによる定期実行も可能バルクインサートによる高速転送

処理時間(秒)

1500

1282

1000

500
260
シングルインサート

15

バルクインサート

Copyright(C)2015 Climb Inc. All Rights Reserved.

15

リフレッシュ: 処理の流れ

参照先はテーブル

バルクインサートで高速転送

16Copyright(C)2015 Climb Inc. All Rights Reserved.

16

レプリケーションモード: ミラーリング
参照するトランザクションログ
片方向の差分レプリケーション
DB2 AS/400 ジャーナル・レシーバー
DBのトランザクションログを直接参照
DB2 LUW
ログ(プロシージャ経由)
OracleREDOログ・アーカイブログ
差分のためデータ量小、負荷小
SQL Server
ログ(ディストリビュータ経由)DBにトリガーを設定することも可能
MySQL
バイナリログ参照サイクルは既定で60秒(変更可能) トリガー対応DB
・DB2 z/OS, DB2 LUW・SQL Server・MySQL・Informix

17

Copyright(C)2015 Climb Inc. All Rights Reserved.

17

ミラーリング: 処理の流れ(トランザクションログ)

参照先はトランザクションログ

18

Copyright(C)2015 Climb Inc. All Rights Reserved.

18

ミラーリング: 処理の流れ(トリガー)

参照先はログテーブル

19

Copyright(C)2015 Climb Inc. All Rights Reserved.

19ミラーリング: 整合性維持の仕組み
ソースDB: トランザクションログ

ターゲットDB: 処理の流れ

TID=1: Insert ～TID=2: Update～
TID=3: Delete～
TID=4: Update～
TID=5: Update～

Insert ～ (TID=1); Commit;
DBMotoにTID=1を保存
Update～ (TID=2); Commit;
DBMotoにTID=2を保存
Delete～ (TID=3); Commit;
DBMotoにTID=3を保存
Update～ (TID=4); Commit;
DBMotoにTID=4を保存
Update～ (TID=5); Commit;
DBMotoにTID=5を保存

抽出処理

 「クエリ発行⇒コミット⇒DBMotoにTID保存」を繰り返す
 次の処理時はトランザクションログからTID=6以降を参照する
20

Copyright(C)2015 Climb Inc. All Rights Reserved.

ミラーリングの参照サイクル

21

Copyright(C)2015 Climb Inc. All Rights Reserved.

21

レプリケーションモード: シンクロナイゼーション
双方向の差分レプリケーション
コンフリクト回避オプション
ソースを優先ミラーリングと手法は同等
ターゲットを優先
双方のDBで更新が必要なアプリに更新の早い方を優先
切り戻しも兼ねた災害対策に更新の遅い方を優先
ユーザスクリプトコンフリクト回避
3台以上のマルチシンクロナイゼーション

22

マルチシンクロナイゼーション

Copyright(C)2015 Climb Inc. All Rights Reserved.

22

サポートするデータベース
リフレッシュ(全件)
ミラーリング、シンクロナイゼーション(差分)リフレッシュ(全件)
ミラーリング(差分)のターゲット[複製先]IBM DB2 for i(AS/400)
IBM DB2 for z/OSIBM DB2 for AIX, Linux, Windows
OracleMS SQL Server
MS Azure SQL Database
MySQL/Aurora
Gupta SQLBase
IBM Informix
SAP Sybase ASE
SAP Sybase SQL Anywhere
IBM PureData(Netezza)

PostgreSQL/Redshift
SAP HANASAP Sybase IQ
Actian Vectorwise
HP Vertica
MS Access
FirebirdIngres
IBM SolidDB

23

リフレッシュ

ミラーリング

Copyright(C)2015 Climb Inc. All Rights Reserved.

導入簡単・設定簡単
インストール

インストールは1分以内、インストーラは軽量の28MB
1. ソースDBへ接続
2. ターゲットDBへ接続
3. レプリケーションジョブを作成

設定処理

1. レプリケーションプロセス実行
2. 初期レプリケーション(リフレッシュ)
3. 差分レプリケーション(ミラーリング)
24

Copyright(C)2015 Climb Inc. All Rights Reserved.

運用も簡単日本語ローカライズ済み
レプリケーション進捗モニター
専用のログビューワ
結果比較・データ修復
メール通知(アラート)
DBMoto操作ユーザ権限
DBMoto冗長化対応
設定情報バックアップ・リストア
25

Copyright(C)2015 Climb Inc. All Rights Reserved.

DBMotoの柔軟性
1.
2.
3.
4.
5.
6.
7.

ターゲットDBにテーブルがない場合は？
PKがないとレプリケーションできない？
ジョブの作成単位は？
レプリケーションしてほしくない時間帯がある
テーブル構成・カラム数が異なる
レプリケーション時にデータ変換可能？
条件付でレプリケーションしたい

1. DBMotoからテーブル作成
2. DBMotoの仮想PK機能
3. テーブル単位、一括作成機能あり
4. スケジュールでの除外設定
5. カラム単位でマッピング可能なため問題なし
6. 関数を使用(VB, C#, ユーザ関数も可)7. スクリプト記述で可能(VB, C#)

で簡単解決！

26

Copyright(C)2015 Climb Inc. All Rights Reserved.

26

ターゲットへテーブル作成
ソースのテーブル構成を元にDBMotoが自動でクエリを作成
データタイプは自動で適切なものが選定される
サイズ、PK、NOT NULLをそのまま引継ぐ
構成を手動変更することも可能

テーブル構成抽出

CREATE発行

CREATEクエリ自動生成
27

Copyright(C)2015 Climb Inc. All Rights Reserved.

PKなしでも仮想PKでミラーリング可能
テーブルにPKあり
ソース

ターゲット

C1

C1C2

C2C3C3

更新クエリ: update TABLE ～ where C1=xx
where句にPKが指定される
仮想PK

テーブルにPKなし
ソース

ターゲット

C1

C1

C2C2C3C3

更新クエリ: update TABLE ～ where C1=xx
PKがないとwhere句が指定されない⇒仮想PKによってwhere句が指定される
28

Copyright(C)2015 Climb Inc. All Rights Reserved.

必要なテーブルやカラムのみ連携
テーブル単位でジョブ作成
ジョブ一括作成も可能

カラム単位でマッピング

29

カラム1
カラム2
カラム3
カラム4
カラム5

カラム1
カラム2
カラム3
カラム4
カラム5

カラム1
カラム2
カラム3
カラム4
カラム5

カラム1
カラム2
カラム3

Copyright(C)2015 Climb Inc. All Rights Reserved.

データのカスタマイズ、複雑な連携
関数を使用可能: VB, C# 及びユーザ関数

1234

1234

(株)クライム(株)クライム

Climb
12Trim()

Climb

ユーザ関数

00012

Now()

2015/2/27

30

スクリプト: VB, C#・条件付きレプリケーション
例:値が～を満たすとき
例:更新のみ反映、登録は無視
・テーブルの結合・ユーザ関数の定義
API: VB, C#, C++・バッチ処理、パラメータ取得

Copyright(C)2015 Climb Inc. All Rights Reserved.

導入事例: ローソンHMVエンタテイメント様AS/400のデータをWindowsへ連携しDWHで活用
DBMoto導入前：
 ODBCによる手動での取り込み
 パフォーマンスが悪い リアルタイムの連携が困難

データ連携

AS/400複数台を基幹システムでDWH構築をSQL Serverで

31

DBMoto導入後：
 データ統合による運用性の向上
 リアルタイムなデータ連携
 パフォーマンス向上

Copyright(C)2015 Climb Inc. All Rights Reserved.

31導入事例: クニミネ工業様
AS/400と連携できないWindowsツールの問題を解決
DBMoto導入前：
 AS/400とBIツールは直接連携不可
 データ抽出は手動

データ連携

AS/400

DBMoto導入後：
 AS/400⇒SQL Server⇒BIツール
 データ抽出はSQL Serverとの自動連携

SQL Server

Windows BIツール「Dr.Sum」

32

Copyright(C)2015 Climb Inc. All Rights Reserved.

32導入事例: ぐるなび様
移行・バックアップ・データ連携の3パターン構成

旧Oracle

データ連携

MySQL

移行
新Oracleバックアップ 災害対策用Oracle
33

DBMoto導入後：＜移行＞ システム停止時間を最小限に抑えてのOracleデータベースの移行＜バックアップ＞
 ディザスタリカバリ環境構築により、障害時は切り替えのみでOK＜データ連携＞
 他システムへの連携用にMySQLへレプリケーション

Copyright(C)2015 Climb Inc. All Rights Reserved.

33