はじめに
韓国で2003年6月Tibero RDBMS 1.0 リリース以来、進化を重ねて2012年2月、“Tibero(ティベロ)RDBMS 5.0”というリレーショナルデータベースが日本ティーマックスソフト社より登場しました。
Tibero RDBMS 5(以下、Tibero)は、クラスタリング機能を搭載し、Oracleのアプリケーション資産の引き継ぎができるOracle互換のRDBMSソフトウェアです。
Oracle互換とのこと、本当なら素晴らしいことです。なぜならOracle互換のRDBMSを作ることは、多くの時間、努力、コストだけで作れるものではないからです。
Oracleデータベースは、世界市場のトップシェアを占めるデータベースソフトです。
RDBMSのデファクトスタンダード(de facto standard)とも位置づけられる製品ですが、機能が多すぎて標準SQL規格に準拠していない点が多く、他RDBMSとの移行性は良くない場合があります。
また、優れた高機能である反面、システムや操作方法を理解するのが他社RDBMS製品より難しいです。
それでもOracle互換のRDBMSが登場した以上、本当かどうかを確かめる必要があり、日本ティーマックスソフト社からライセンスを貸して頂き、Tibero 検証を行いました。
今回のTibero検証項目を大きく分けて、次の2つの項目に分けられます。
- シングルOracleデータベースとの互換性
- Tibero 5自体の機能検証
データ移行、オプティマイザの実行計画(パラレル実行、パーティション、複合クエリ)、 プログラム(PL/SQL、Pro*C)、アプリケーションでの動作、データベースの一貫性(読み取り一貫性:UNDO表領域)
Tiberoデータベースのインストール、付属ツールの機能、バックアップとリカバリ、データベースリンク、アプリケーションでの動作、データベースの一貫性(行レベル・ロック)
Tibero検証の概要
OracleとTibero RDBMS(以下、Tibero)両方のデータベースで、同一のSQL文、プログラム、クライアント側アプリケーション(SI Web Shopping、Performance Analyzer 4、その他)を両方のデータベースに実行してみて問題なく動作するかどうかを検証します。また、Oracle上のデータやスキーマ・オブジェクトなどをTiberoに移行し、Tiberoに移行したものが存在するかどうかを確認し、Tiberoのインストールを含めてTiberoが提供するいくつかの機能も検証します。
次の図は、今回の検証環境構成の全体象を示しています。
システム構築においてのTiberoデータベースとOracleデータベース
システム構築の流れは要件定義、設計、構築・実装、テスト、移行、運用保守といった工程でシステムを構築します。Oracleベースで行われた各工程の作業が、Tiberoでも作業できるかどうかを調べてみました。あくまでも著者の個人的な意見ですので参考までにして下さい。
※サードパーティ製品なしで付属ツールを用いて、有償オプションはRACとTACのみを対象とする。
※作業可能度が高い順:上→中→下
※RACとTACの可能度は、環境設定と構築手順の違いを比較している。
工程 |
Oracleデータベース作業 |
Tiberoデータベース作業 |
可能度 |
要件定義 |
可用性要件 |
可用性要件 |
上 |
性能・拡張性要件 |
性能・拡張性要件 |
上 |
|
運用管理性要件 |
運用管理性要件 |
上 |
|
移行要件 |
移行要件 |
上 |
|
セキュリティ要件 |
セキュリティ要件 |
上 |
|
合計 |
上 |
||
基本設計 |
データベース構成設計 |
データベース構成設計 |
上 |
データベース接続方式設計 |
データベース接続方式設計 |
上 |
|
外部連携方式設計 |
外部連携方式設計 |
上 |
|
運用管理方式設計 |
運用管理方式設計 |
上 |
|
移行方式設計 |
移行方式設計 |
上 |
|
セキュリティ方式設計 |
セキュリティ方式設計 |
上 |
|
システム環境設計 |
システム環境設計 |
上 |
|
合計 |
上 |
||
基本設計 |
データ・モデリング(ER図、正規化) |
データ・モデリング(ER図、正規化) |
上 |
関係テーブルの定義(列、データ型、制約、長さ、キータイプ) |
関係テーブルの定義(列、データ型、制約、長さ、キータイプ) |
上 |
|
CRUD図(業務処理と表の関係) |
CRUD図(業務処理と表の関係) |
上 |
|
合計 |
上 |
||
詳細設計 |
データベース環境設計(OS) |
データベース環境設計(OS) |
上 |
インスタンス設計(共有メモリ) |
インスタンス設計(共有メモリ) |
上 |
|
データベース設計(ASM、RAID) |
データベース設計(TAS、RAID) |
中 |
|
初期化パラメータ設計 |
初期化パラメータ設計 |
中 |
|
表領域設計 (データファイル管理) |
表領域設計 (データファイル管理、パーティション) |
上 |
|
スキーマ・オブジェクト設計 |
スキーマ・オブジェクト設計 |
上 |
|
Oracleネットワーク設計 |
Tiberoネットワーク設計 |
上 |
|
合計 |
上 |
||
詳細設計 |
アクティブクラスタ(RAC) |
アクティブクラスタ(TAC) |
下 |
スタンバイ構成(Data Guard) |
スタンバイ構成(Standby Cluster) |
中 |
|
レプリケーション(DBLink、アドバンス・レプリケーション) |
DBLink |
下 |
|
合計 |
下 |
||
詳細設計 |
データベースの監視(EM) |
データベースの監視(tbAdmin) |
下 |
データベースの性能管理(統計情報、チューニング) |
データベースの性能管理(統計情報、チューニング) |
上 |
|
性能状況レポート(Statspack) |
性能状況レポート(APM) |
上 |
|
定期メンテナンス(スクリプト) |
定期メンテナンス(スクリプト) |
中 |
|
スキーマ・オブジェクト管理 |
スキーマ・オブジェクト管理 |
上 |
|
バックアップ / リカバリ(RMAN) |
バックアップ / リカバリ(RMGR) |
下 |
|
バッチ適用(PSR/PSU/OPatch) |
バッチ適用(tbUpdater) |
下 |
|
トラブルシューティング(手順) |
トラブルシューティング(手順) |
下 |
|
キャパシティ管理(EM) |
キャパシティ管理(tbAdmin) |
下 |
|
統合運用管理(EM) |
統合運用管理(tbAdmin) |
下 |
|
合計 |
下 |
||
構築・実装 |
Oracleソフトのインストール |
Tiberoソフトのインストール |
下 |
ネットワーク環境構成(NETCA) |
ネットワーク環境構成 |
下 |
|
データベースの作成(DBCA) |
データベースの作成 |
下 |
|
スキーマおよびオブジェクト作成(SQL*Plus) |
スキーマおよびオブジェクト作成(tbSQL、tbAdmin) |
上 |
|
クラスタ環境構成(RAC) |
クラスタ環境構成(TAC) |
下 |
|
ストアド・オブジェクトの作成(SQL*Plus、SQL Developer) |
ストアド・オブジェクトの作成(tbSQL、tbAdmin) |
上 |
|
合計 |
下 |
||
テスト |
単体テスト(動作確認、設定値、スクリプト) |
単体テスト(動作確認、設定値、スクリプト) |
上 |
結合テスト(スクリプト、障害発生時の動作や復旧対応) |
結合テスト(スクリプト、障害発生時の動作や復旧対応) |
中 |
|
総合テスト(性能、負荷、障害) |
総合テスト(性能、負荷、障害) |
中 |
|
合計 |
中 |
||
移行 |
データ移行方式設計 |
データ移行方式設計 |
上 |
データ移行用スクリプト作成 |
データ移行用スクリプト作成 |
上 |
|
合計 |
上 |
||
運用管理 |
総合管理Enterprise Manager |
総合管理tbAdmin |
下 |
バックアップ/リカバリ(RMAN) |
バックアップ/リカバリ(RMGR) |
下 |
|
スケジュラー(ジョブ) |
スケジュラー(ジョブ) |
上 |
|
各種SQLスクリプト |
各種SQLスクリプト |
中 |
|
バッチプロシージャ |
バッチプロシージャ |
中 |
|
シェルスクリプト |
シェルスクリプト |
中 |
|
データベースのパッチ |
データベースのパッチ |
下 |
|
ストレージ管理(ASM) |
ストレージ管理(TAS) |
下 |
|
性能管理(EM、Statspack) |
性能管理(tbAdmin、Statspack) |
下 |
|
性能チューニング (SQL*Plus) |
性能チューニング(tbAdmin、tbSQL) |
上 |
|
合計 |
下 |
※運用管理設計に基づいて、ツール設定や各種スクリプトなどを作成する。
データベースの論理設計までは、DBMSに依存しないのでOracle、Tiberoに関わらず同様の設計が可能です。データベースの物理設計以降は、使用するDBMS機能に依存し、環境に合わせて設計・構築・運用管理を行う必要があります。
TiberoはOracle機能に対応できる機能を提供していますが、各種ツールの操作、コマンド、PL/SQLパッケージといった機能がOracleと違うところがあるということが分かりました。従って、データベースの構築と運用管理以降の工程では、Tibero技術習得とスクリプトの修正、試験が必要になります。
Oracle ASM機能を使うことによって、データベースの物理設計と構築が変わるため、システムに大きな影響を与える場合があります。
※現在のTibero 5は、Oracle ASMのような機能がサポートされていませんが、Tibero 5 SP1バージョンでは、Tibero Active Storage V1機能が2012年8月に搭載される予定です。
OracleとTiberoのデータベース運用管理ツール
OracleとTiberoが提供する付属の運用管理ツールを検証し、Oracleツールに対応するTiberoツールについて調べてみました。
次の表は、OracleとTiberoの運用管理ツールをカテゴリ別に分けた表です。
区分 |
Oracleツール |
Tiberoツール |
備考 |
データベースの作成・変更 |
DBCA |
なし |
|
SQL、PL/SQLプログラムの開発 |
SQL*Plus |
tbAdmin |
|
ネットワーク関連の設定 |
NETCA |
なし |
|
データベースの統合管理 |
Enterprise Manager |
tbAdmin |
Enterprise Managerでは、特定機能を使うためにはライセンスが必要 |
SQLコマンドライン・インタフェース |
SQL*Plus |
tbSQL |
|
バックアップ / リカバリ |
RMAN |
RMGR |
|
ストレージの管理・構成 |
ASMCA |
なし |
Tibero 5 SP1で、ストレージ管理機能を追加する予定。 |
データベースの性能診断・性能分析・性能レポート |
・Statspack |
APM |
AWRとADDMは、Enterprise Edition + オプションのライセンスが必要。 |
データおよびメタデータの移行 |
・expdp / impdp |
・tbExport/ |
|
外部データファイルのデータ・ロード |
SQL*Loader |
tbLoader |
|
他DBMSからのデータ移行 |
なし |
tbMigrator |
MSSQL Server、DB2、Oracle、SybaseからTiberoへ移行可能 |
各種ログの診断データ管理 |
ADRCI |
なし |
|
オフライン・データベース検査 |
DBVERIFY |
なし |
Tibero 6バージョンで機能追加する予定 |
OracleからTiberoへ移行する時の注意点
Tiberoが提供するツールは、操作方法、機能オプション、使い方などOracleツールと類似点が多いですが、いくつかのツールはコマンドや操作方法や機能などが違うところがあります。
- データベースの作成・変更ツール
- ネットワーク関連の設定ツール
- データベースの統合管理ツール
- データベースのバックアップおよびリカバリツール
Oracle DBCAのようなGUIツールがないため、データベースの追加・変更などは、手動で行う必要があります。初期化パラメータ(テキストファイル)も手動で変更します。
Oracle NETCAのようなGUIツールがないため、サーバー側のリスナー設定、クライアント側のtbdsn.tbr環境設定ファイルを手動で変更する必要があります。
TiberoのtbAdminは、クライアント側のアプリケーションです。OracleのEnterprise Managerに比べて監視・管理の機能がOracleと同じレベルではありません。Enterprise Manager (Database Control、Grid Control)でデータベースを運用管理している場合は、運用管理の方式が変わりますので、どれくらい運用管理にリスクがあるのかを事前に確認しておく必要があります。
Oracleのバックアップとリカバリは、Enterprise Managerまたは、Oracle Recovery Manager (以下、Oracle RMAN)を使用して簡単に行えますが、Tiberoではコンソールで行います。 Oracle RMANには、アーカイブログまでバックアップができますが、Tibero RMGRはそういった機能がないため、シェルなどのバックアップ・スクリプトに組み込んでバックアップを行う必要があります。また、Oracle RMANのリカバリ・カタログデータベースを使用しているOracle環境でも運用管理の方式が変わりますので、事前に確認して対策を立てる必要があります。
Oracleデータベースの運用管理をツールに頼っているエンジニアには、Tiberoが少々難しいと感じるかも知れませんが、実際はそうではありません。
Tibero環境の設定などは、ツールで設定するより手動で設定した方が簡単で早いです。
Tiberoには、OracleのSQL*Plus、SQL*Loader、exp、impユーティリティに対応するtbSQL、tbLoader、tbExp、tbImpユーティリティが備わっています。コマンドは一部違いますが、操作方法は似ているのでOracleユーティリティを使ったことがあれば、Tiberoでも問題なく使えます。