IBM DB2データベース管理入門:ライセンス確認からアーカイブログ設定まで実務タスクを徹底解説
IBM DB2は、IBMが開発・提供するリレーショナルデータベースです。DB2はLinux、UNIX、Windows(LUW)をはじめとする複数のプラットフォームで利用でき、用途や規模に応じた複数のエディションが提供されています。
その中でも「Community Edition」は開発者向けに永久無料で提供されている一方、Standard EditionやEnterprise Editionなどの上位エディションはライセンスが必要となります。本記事では、IBM DB2データベース管理者が日常業務で必要となる代表的な管理タスクを、具体的なコマンド例とともに解説します。日々のデータベース保守作業にお役立てください。
本記事で扱う主な管理タスク
- ライセンス情報の確認
- DB2サーバー・インスタンス・データベースの関係
- DB2のOSグループ
- データベースパラメーターの構成(グローバル/インスタンス/データベースレベル)
- DB2インストール、クライアント、インスタンス、データベースの作成・変更・削除
- デフォルト表スペース、表スペースの作成と一覧表示
- リスナーの構成
- アーカイブ構成
1) ライセンス情報の確認
製品のライセンス詳細を確認するには、以下のコマンドを使用します。
$>db2licm -l
実行結果の例は以下の通りです。
- 製品名:「DB2 Community Edition」
- ライセンスタイプ:「Community」
- 有効期限:「Permanent(永続)」
- 製品識別子:「db2dec」
- バージョン情報:「11.5」
- 最大メモリ容量(GB):「16」
- 最大コア数:「4」
- 機能:IBM DB2 Performance Management Offering:「Not licensed(未ライセンス)」
2) DB2サーバー・インスタンス・データベースの関係(非パーティション環境)
まず、図1に示す構成をご確認ください。Db2サーバーとは、データベースのバイナリがインストールされたディレクトリを指し、「DB2COPYn」のような名前で定義されます。このサーバーはアップグレードやマイグレーションに利用でき、サーバー上の複数のデータベースやインスタンスに対して独立した環境を提供します。1台の物理サーバー上に複数のDB2サーバーインストールを作成することも可能です。また、クラスタ環境では、同じロケーションを持つパーティションとして複数ノードにインストールすることもできます。DB2サーバーの動作は、構成ファイル(図中のGlobal CFGに相当)内のパラメーターによって管理されます。DBAは、システムリソースの管理を担う環境を作成することで、すべてのデータベースとインスタンスに対して共通のパラメーターセットを適用し、複数のDB2インスタンスのチューニングや自動化を行うポリシーを策定できます。
DB2インスタンスは、プロセス群、スレッド群、メモリー領域の集合体として構成され、配下の複数のデータベースの維持管理や接続を受け持ちます。インスタンスは「DBM CFG」と呼ばれる構成ファイルで設定でき、リソース割り当てに関するポリシーも作成可能です。また、アプリケーションの要件に応じて接続用ポートを定義できます。
DB2データベースは、複数の論理ストレージグループ、表スペース、表スペース内のオブジェクト、トランザクションログ(図中のTX LOGS)、バッファープールの集合です。以下の図は、Db2サーバーとそのインスタンス、およびそれに関連付けられたデータベースの関係を示しています。
図1:DB2サーバー、インスタンス、データベースの関係と内容を示すダイアグラム
3) DB2のOSグループ
Windows環境でのデフォルトインスタンス名は「DB2」、Linux環境では「DB2INST1」です。各インスタンスには接続用の一意なポートを割り当てることができ、同一サーバー上に複数のインスタンスを共存させられます。
DB2のインストールでは、データ保護と権限管理のため、4種類のOSグループを構成できます。すべての特権を持つデータベース管理者用のSYSADM、データベースマネージャーインスタンス配下の複数データベースを管理するSYSMON、特定データベースに対する最上位権限であるDBADMなどがあります。
- SYSADM
- SYSCTRL
- SYSMAINT
- SYSMON
- DBADM
4) データベースパラメーターの構成
図1の構成に従い、IBM DB2は3つのレベルで構成できます。最上位が「DB2サーバー構成」、第2階層が「データベースマネージャー構成」、第3階層が「データベースレベルの構成」です。
i)グローバルパラメーター
設定の確認:db2set -all
変更可能な全パラメーターのリスト表示:db2set -lr
設定の更新:db2set パラメーター=新しい値
例:db2set db2comm=tcpip
変更後は、db2stopおよびdb2startを実行してすべてのインスタンスを再起動する必要があります。
ii)インスタンスレベル
設定の確認:db2 get dbm cfg
設定の更新:db2 update dbm cfg using パラメーター名 新しい値
例:db2 update dbm cfg using NUM_DB 5
iii)データベースレベル
設定の確認:db2 get db cfg for データベース名
設定の更新:db2 update db cfg for データベース名 using パラメーター 新しい値
例:db2 update db cfg for sample using AUTO_REORG ON
5) DB2インストール、インスタンス、データベースの作成・変更・削除
DB2サーバーの中核となるのが「Db2コピー」であり、これは同一サーバー上の特定ロケーションにある1つ以上のDb2データベース製品のインストールを指します。各Db2バージョンのコピーは、同じコードレベルでも異なるコードレベルでもかまいません。Db2 Version 9以降では、同一サーバー上に複数のDb2コピーをインストールして実行できます。たとえば、Version 9のDB2COPY1、Version 10のDB2COPY2、Version 11のDB2COPY3といった具合です。
複数DB2コピーのメリット
- 同一サーバー上で異なるDb2バージョンのアプリケーションを稼働できる。
- 本番データベースを新しいバージョンへ移行する前に、同じコンピューター上でテストできる。
- 作業内容ごとに別々のDB2バージョンへ分割して管理できる。
複数のDB2COPYがある場合のコピー切り替え方法
$>db2swtch -l
実行結果例:
DB2COPY1 C:\IBM\SQLLIB (デフォルトのDB2およびIBM Database Client Interfaceコピー)
$>db2swtch -db2 -d DB2COPY1
切り替えに成功しました。現在のデフォルトDB2コピーはDB2COPY1です。
$>dasupdt(DB2管理サーバーを現行コピーへ変更)
SQL22266N DB2管理サーバーはすでに現行のDB2コピーの下にインストールされています。
DB2インスタンスの保守方法
現行のDB2COPY1インストール環境において、インスタンスの作成・一覧表示・削除、および現行インスタンス名の設定・確認には、以下のコマンドを使用できます。
現行インスタンスの停止・起動には以下のコマンドを使います。start_stop_timeパラメーターがデータベースの起動・停止動作に影響を与える点にご注意ください。
$>db2stop [force]
$>db2start
Windowsマシンでは、サービス機能を利用してインスタンスの開始・停止・自動起動を制御する方法もあります。
データベース管理目的のみでインスタンスを起動する場合は、次のコマンドを使用します。
$>db2start admin mode [user <ユーザー名> | group <グループ名>]
または
$>QUIESCE DATABASE
上記コマンドにより、データベースはSYSADM、SYSMAINT、DBADM、SYSCTRLのいずれかの特権を持つユーザーのみアクセス可能になります。
$>QUIESCE INSTANCE インスタンス名
上記コマンドにより、指定したインスタンス配下のすべてのデータベースは、SYSADM、SYSMAINT、SYSCTRLのいずれかの特権を持つユーザーのみアクセス可能になります。
QUIESCEコマンドの完全な構文については、IBM公式ドキュメントをご参照ください。
データベース管理作業が完了したら、以下のコマンドでDBA専用モードから一般利用可能なモードへ戻せます。
UNQUIESCE DATABASE — データベースをQUIESCEモードから解除
UNQUIESCE INSTANCE インスタンス名 — インスタンスとその配下の全データベースをQUIESCEモードから解除
データベースの作成方法
DB2データベースは多様なアプリケーション向けに作成でき、ワークロードのカテゴリは大きく3種類に分けられます。
- Simple(OLTP:オンライン・トランザクション処理)
- Complex(OLAP:オンライン分析処理)
- Mixed(OLTPとOLAPの混合タイプ)
基本構文:
CREATE database testdb1(オプション例:encrypt。完全な構文はIBM Db2公式ガイドをご確認ください。);
例:
db2 create db emp_utf autoconfigure using workload_type simple apply db only
db2 create db emp_utf using codeset utf-8 territory jp collate using system
データベースの削除:
db2 drop db emp_utf
6) デフォルト表スペース、表スペースの作成と一覧表示
DB2データベースのデフォルト表スペースとバッファープール
DB2データベースには3つのデフォルト表スペースが用意されており、アプリケーションの要件に応じて、これら以外にも複数の表スペースを作成できます。
- SYSCATSPACE — システムカタログ関連の情報を格納する表スペース。
- TEMPSPACE1 — ソートなどメモリー指向の操作に使用される一時表スペース。
- USERSPACE1 — 明示的な指定がないデータベースオブジェクトのデフォルト表スペース。
さらに、DB2データベースには「IBMDEFAULTBP」という名前のデフォルトバッファープールが1つ含まれています。
DB2データベースへの表スペース作成
表スペース作成のサンプルコマンドは以下の通りです。新しく作成した表スペース上には、表、索引、ビューなどのオブジェクトを作成できます。たとえば、MYTBLS1表スペース上にBという名前の表を作成してみましょう。
表スペースの一覧表示
以下のコマンドを使用し、オプションを付けて詳細情報を取得できます。
db2 list tablespaces [show details]
7) リスナーの構成
データベース接続の詳細は、インスタンスレベルでDB2COMMパラメーターを設定することで構成できます。ここでは、接続用ポートを60000に変更する例を紹介します。ポートを変更した後は、新しいポートで接続待ち受けを開始するために、データベースサービスの再起動が必要です。手順は以下の通りです。
$>db2set -i db2inst1 DB2COMM=tcpip
$>db2 update dbm cfg using SVCENAME 60000
$>db2stop
$>db2start
8) アーカイブ構成
コマンドラインプロセッサでUPDATE DATABASE CONFIGURATIONコマンドを使用して、データベースのロギングオプションを構成できます。
まず、循環ログ(Circular Logging)とアーカイブログ(Archive Logging)のどちらを使用するかを指定します。循環ログを使用する場合、logarchmeth1およびlogarchmeth2の両データベース構成パラメーターをOFFに設定します(これがデフォルト設定です)。アーカイブログを使用する場合は、これらのパラメーターの少なくとも1つをOFF以外の値に設定する必要があります。たとえば、アーカイブログを有効化し、アーカイブログをディスクに保存したい場合は、次のコマンドを発行します。
db2 update db configuration for mydb using logarchmeth1 disk:/u/dbuser/archived_logs
または、IBM® Data StudioのUPDATE DATABASE CONFIGURATIONコマンドや、db2CfgSet APIを使用して構成することも可能です。
なお、REDOログの生成を避けたい場合は、CREATE TABLE/INDEXコマンドでNOT LOGGED INITIALLYオプションを使用できます。
まとめ
データベース管理には多岐にわたる作業が伴いますが、本記事ではその一部をご紹介しました。IBM DB2データベースが提供する多彩な機能は、ぜひハンズオンで体験してみてください。SQL操作の大部分は米国規格協会(ANSI)が定めるSQL標準に準拠しており、クラスターデータベース、高可用性、パーティショニング、レプリケーション、マテリアライズドビューといった追加機能も備えています。OracleやPostgreSQLなど他の人気RDBMSと同等の堅牢なセキュリティプロトコルを維持しながら、製品価格の競争力とほぼすべての技術との接続性を兼ね備えたDB2は、グローバルなデータベース市場において開発者にとって魅力的な選択肢となっています。
データベース導入の旅路を、ぜひ私たちの専門家がサポートいたします。
ご意見やご質問がある場合は、フィードバックタブからお気軽にお寄せください。また、私たちとの対話を始めることもできます。
-
Oracle EBS 12.2 データベースを Oracle Database 19c へアップグレードする完全ガイド
本記事では、Oracle® E-Business Suite(EBS)12.2 を Oracle Database 19c と連携させるための設定手順について詳しく解説します。 はじめに Oracle は最近、EBS 12.2 における Oracle Database 19c の動作保証を発表しました。Oracle EBS のデータベースを 12c(12.1.0.2)または 11.2.0.4 から Database 19c へアップグレードする際、データベースアーキテクチャはコンテナ・データベース(CDB)アーキテクチャへと移行します。また、より古いバージョンから 19c へアップグレードする
-
常時無料のAutonomous Database(自律型データベース)とは?特徴とOracle Cloudでの作成手順を解説
本記事では、Oracleの自律型データベース「Autonomous Database」について紹介し、Oracle Cloud Infrastructure(OCI)上で利用できる「常時無料(Always Free)」オプションの作成方法と活用方法を解説します。 自律型データベース(Autonomous Database)とは? 自律型データベースは、Oracleが提供する次世代のクラウドデータベースです。EXADATAインフラストラクチャ上で稼働し、データベース操作からデータセンター運用までが完全に自動化されています。機械学習をはじめとするAI技術を活用し、従来データベース管理者(DBA)が