スケーラブルデータベースサーバ

HiRDB Version 8 バッチ高速化機能

解説・手引・操作書

3020-6-368-20

目　　次

前書き

変更内容

はじめに

1.　バッチ処理の高速化

1.1　バッチ処理の高速化が必要とされる理由

1.2　インメモリデータ処理の仕組み

1.2.1　インメモリデータ処理の概要

1.2.2　インメモリデータバッファの優位点

1.2.3　インメモリデータ処理に関する用語

1.3　インメモリデータ処理を適用すると効果が期待できるケース

1.4　インメモリデータ処理を適用しても効果が期待できないケース

1.5　インメモリデータ処理が適用できないケース

2.　インメモリデータ処理を実行するための環境を作る

2.1　必ず行う準備

2.1.1　マシン環境の確認

2.1.2　HiRDB Acceleratorのインストール

2.1.3　HiRDB Acceleratorのセットアップ（UNIX限定）

2.1.4　システム定義の設定

2.2　インメモリデータ処理をより効果的に実行するために考えておくこと

3.　インメモリデータ処理を適用する

3.1　基本的な運用の流れ

3.2　バッチ業務に適用する場合

3.3　オンライン業務に適用する場合

3.4　テスト業務に適用する場合

3.5　複数のRDエリアを一度にインメモリ化する場合の注意事項

4.　運用時に気をつけること

4.1　バックアップを取得するときに気をつけること

4.1.1　バックアップを取得するタイミング

4.1.2　参照可能モード（-M r）でバックアップを取得する場合

4.2　HiRDBを終了するときに気をつけること

4.3　データベース構成変更ユティリティを使用するときに気をつけること

4.4　インナレプリカ機能を使用しているときに気をつけること

4.5　系切り替え機能を使用しているときに気をつけること

4.6　その他の注意事項

5.　トラブルシュート

5.1　障害回復の基本的な考え方

5.2　障害が発生したときに最初に確認すること

5.3　RDエリア障害が発生した場合の回復手順

5.4　バッファ障害が発生した場合の回復手順

5.4.1　最新の状態に回復する場合

5.4.2　同期取得時点に回復する場合（関連RDエリアなし）

5.4.3　同期取得時点に回復する場合（関連RDエリアあり）

6.　こんなときどうする

6.1　インメモリデータバッファとRDエリアの同期を取るには

6.2　インメモリデータバッファの利用状況を確認するには

6.3　インメモリデータバッファの統計情報を確認するには

6.4　強制的にインメモリ化を解除するには

6.5　インメモリデータバッファ上のデータを破棄するには

6.6　RDエリアのデータをインメモリデータバッファに再読み込みするには

付録

付録A　インメモリデータ処理の状態遷移図

付録B　インメモリデータ処理に関するコマンド一覧

付録C　pdmemdbコマンド実行時の前提条件

索引

[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2008, 2009, Hitachi, Ltd.

前書き

■ 対象製品

●適用OS：HP-UX 11.0，HP-UX 11i，HP-UX 11i V2(PA-RISC)

P-1B62-1581　 HiRDB/Single Server Version 8(64)　 08-05
P-1B62-1781　 HiRDB/Parallel Server Version 8(64)　 08-05
P-F1B62-1181A　 HiRDB Accelerator Version 8　 08-03

●適用OS：HP-UX 11i V2(IPF)，HP-UX 11i V3(IPF)

P-1J62-1581　 HiRDB/Single Server Version 8(64)　 08-05
P-1J62-1781　 HiRDB/Parallel Server Version 8(64)　 08-05
P-F1J62-1181A　 HiRDB Accelerator Version 8　 08-03

●適用OS：Solaris 8，Solaris 9，Solaris 10

P-9D62-1581　 HiRDB/Single Server Version 8(64)　 08-05
P-9D62-1781　 HiRDB/Parallel Server Version 8(64)　 08-05
P-F9D62-1181A　 HiRDB Accelerator Version 8　 08-03

●適用OS：AIX 5L V5.1，AIX 5L V5.2，AIX 5L V5.3，AIX V6.1

P-1M62-1581　 HiRDB/Single Server Version 8(64)　 08-05
P-1M62-1781　 HiRDB/Parallel Server Version 8(64)　 08-05
P-F1M62-1181A　 HiRDB Accelerator Version 8　 08-03

●適用OS：Red Hat Enterprise Linux AS 3(AMD64 & Intel EM64T)※，Red Hat Enterprise Linux AS 4(AMD64 & Intel EM64T)，Red Hat Enterprise Linux ES 4(AMD64 & Intel EM64T)，Red Hat Enterprise Linux 5 Advanced Platform (AMD/Intel 64)，Red Hat Enterprise Linux 5 (AMD/Intel 64)

P-9W62-1183　 HiRDB/Single Server Version 8(64)　 08-05
P-9W62-1383　 HiRDB/Parallel Server Version 8(64)　 08-05
P-F9S62-1181A　 HiRDB Accelerator Version 8　 08-03

注※　動作環境としては，Intel EM64Tにだけ対応しています。

●適用OS：Red Hat Enterprise Linux AS 3(IPF)，Red Hat Enterprise Linux AS 4(IPF)，Red Hat Enterprise Linux 5 Advanced Platform (Intel Itanium)，Red Hat Enterprise Linux 5 (Intel Itanium)

P-9V62-1183　 HiRDB/Single Server Version 8(64)　 08-05
P-9V62-1383　 HiRDB/Parallel Server Version 8(64)　 08-05
P-F9V62-1181A　 HiRDB Accelerator Version 8　 08-03

●適用OS：Windows XP x64 Edition，Windows Server 2003 x64 Editions，Windows Server 2008，Windows Vista Business，Windows Vista Enterprise，Windows Vista Ultimate

P-2962-7184　 HiRDB/Single Server Version 8(64)　 08-05
P-2962-7384　 HiRDB/Parallel Server Version 8(64)　 08-05
P-2462-7P84　 HiRDB Accelerator Version 8　 08-03

これらのプログラムプロダクトのほかにもこのマニュアルをご利用になれる場合があります。詳細は「リリースノート」でご確認ください。
これらの製品は，ISO9001およびTickITの認証を受けた品質マネジメントシステムで開発されました。

■ 輸出時の注意

本製品を輸出される場合には，外国為替および外国貿易法ならびに米国の輸出管理関連法規などの規制をご確認の上，必要な手続きをお取りください。
なお，ご不明な場合は，弊社担当営業にお問い合わせください。

■ 商標類

ActiveXは，米国およびその他の国における米国Microsoft Corp.の商標です。
AIXは，米国における米国International Business Machines Corp.の登録商標です。
AMDは，Advanced Micro Devices, Inc.の商標です。
BEA WebLogic Serverは，BEA Systems, Inc.の登録商標です。
CORBAは，Object Management Groupが提唱する分散処理環境アーキテクチャの名称です。
DataStage，MetaBroker，MetaStageおよびQualityStageは，IBM Corporationの商標です。
DB2は，米国における米国International Business Machines Corp.の登録商標です。
日本国内においてのDCEの商標使用権は，OSFよりサブライセンスされています。
DNCWARE，ClusterPerfectは，東芝ソリューション株式会社の商標です。
gzipは，米国FSF(Free Software Foundation)が配布しているソフトウェアです。
HACMP/6000は，米国における米国International Business Machines Corp.の商標です。
HP-UXは，米国Hewlett-Packard Companyのオペレーティングシステムの名称です。
IBMは，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
Intelは，Intel Corporationの会社名です。
Itaniumは，アメリカ合衆国および他の国におけるインテル コーポレーションまたはその子会社の登録商標です。
Java及びすべてのJava関連の商標及びロゴは，米国及びその他の国における米国Sun Microsystems, Inc.の商標または登録商標です。
JBuilderは，Borland Software Corporationの米国およびその他の国における商標です。
JDKは，米国 Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
Linuxは，Linus Torvalds氏の日本およびその他の国における登録商標または商標です。
Microsoftは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Microsoft Accessは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Microsoft Office Excelは，米国 Microsoft Corporation の商品名称です。
Motifは，Open Software Foundation,Inc.の商標です。
MS-DOSは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
NLSは，米国Hewlett-Packard Companyの商品名称です。
ODBCは，米国Microsoft Corp.が提唱するデータベースアクセス機構です。
OLEは，米国Microsoft Corp.が開発したソフトウェア名称です。
ORACLEは，米国Oracle Corporationの登録商標です。
Oracleは，米国Oracle Corporation及びその子会社，関連会社の登録商標です。
Oracle 10gは，米国Oracle Corporationの商標です。
Oracle8iは，米国Oracle Corporationの商標です。
Oracle9iは，米国Oracle Corporationの商標です。
OS/390は，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
PA-RISCは，米国Hewlett-Packard Companyの商標です。
POSIXは，the Institute of Electrical and Electronics Engineers, Inc. (IEEE)で制定された標準仕様です。
PowerBuilderは，米国法人Sybase,Inc.の登録商標です。
Red Hatは，米国およびその他の国でRed Hat, Inc.の登録商標若しくは商標です。
RISC System/6000は，米国における米国International Business Machines Corp. の登録商標です。
Solarisは，米国Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
Sun，Sun Microsystems，Javaは，米国Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
TurboLinuxの名称及びロゴは，TurboLinux, Inc.の商標です。
TUXEDOは，米国UNIX System Laboratories, Inc.の商品名称です。
UNIFY2000は，米国Unify Corp.の商品名称です。
UNIXは，X/Open Company Limitedが独占的にライセンスしている米国ならびに他の国における登録商標です。
VERITASおよびVERITASロゴは，米国Symantec Corporationの登録商標です。
VERITAS NetBackupは，米国及びその他の国での米国Symantec Corporationの商標です。
VERITAS NetBackup BusinesServerは，米国及びその他の国での米国Symantec Corporationの商品名称です。
Visual Basicは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Visual C++は，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Visual Studioは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windowsは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows NTは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows Serverは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
Windows Vistaは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
X/Openは，X/Open Company Limited の英国ならびに他の国における登録商標です。
X Window Systemは，米国X Consortium,Inc.が開発したソフトウェアです。
イーサネットは，富士ゼロックス（株）の商品名称です。
プログラムプロダクト「P-9D62-1581，P-9D62-1781，P-F9D62-1181A」には，米国 Sun Microsystems, Inc. が著作権を有している部分が含まれています。
プログラムプロダクト「P-9D62-1581，P-9D62-1781，P-F9D62-1181A」には，UNIX System Laboratories, Inc. が著作権を有している部分が含まれています。

■ 発行

2008年1月（第1版）3020-6-368
2009年1月（第3版）3020-6-368-20

■ 著作権

All Rights Reserved. Copyright (C) 2008, 2009, Hitachi, Ltd.

変更内容

変更内容(3020-6-368-20)　HiRDB Version 8 08-05

追加・変更内容 | 変更個所
HiRDBが使用する共用メモリをメモリ上に固定できるようにしました。これに伴い，pd_max_resident_rdarea_noオペランドの説明を変更しました。 | 2.1.4

単なる誤字・脱字などはお断りなく訂正しました。

変更内容(3020-6-368-10)　HiRDB Version 8 08-04

追加・変更内容

ユーザLOB用RDエリアをインメモリ化できるようにしました。

はじめに

このマニュアルは，プログラムプロダクト　スケーラブルデータベースサーバ　HiRDB Version 8のバッチ高速化機能の運用方法について説明したものです。

対象読者

バッチ高速化機能を使ってHiRDB Version 8（以降，HiRDBと表記します）を運用する方々を対象にしています。

このマニュアルの記述は，次に示す知識があることを前提にしています。

UNIX，またはWindowsのシステム管理の基礎的な知識

HiRDBのシステム管理の基礎的な知識

マニュアルの構成

このマニュアルは，次に示す章と付録から構成されています。

第1章　バッチ処理の高速化

大量のデータを扱うバッチ処理の高速化を実現するインメモリデータ処理について説明しています。

第2章　インメモリデータ処理を実行するための環境を作る

インメモリデータ処理を実行するために必ず行う準備と，より効果的に使うために考えておくことについて説明しています。

第3章　インメモリデータ処理を適用する

業務の種類に応じたインメモリデータ処理の適用例について説明しています。

第4章　運用時に気をつけること

インメモリデータ処理を実行することで，そのほかの機能や運用で注意が必要な場合があります。この章では，そのような注意事項について説明しています。

第5章　トラブルシュート

インメモリデータ処理中に障害が発生した場合の回復方法について説明しています。

第6章　こんなときどうする

インメモリデータ処理を実行する場合に知っておくとよい操作について説明しています。

付録A　インメモリデータ処理の状態遷移図

インメモリデータ処理の状態遷移について説明しています。

付録B　インメモリデータ処理に関するコマンド一覧

インメモリデータ処理に関するコマンドと機能概要について説明しています。

付録C　pdmemdbコマンド実行時の前提条件

pdmemdbコマンド実行時の前提条件について説明しています。

関連マニュアル

このマニュアルの関連マニュアルを次に示します。必要に応じてお読みください。

HiRDB（Windows用マニュアル）

HiRDB Version 8 解説（Windows(R)用）（3020-6-351）

HiRDB Version 8 システム導入・設計ガイド（Windows(R)用）（3020-6-352）

HiRDB Version 8 システム定義（Windows(R)用）（3020-6-353）

HiRDB Version 8 システム運用ガイド（Windows(R)用）（3020-6-354）

HiRDB Version 8 コマンドリファレンス（Windows(R)用）（3020-6-355）

HiRDB ファーストステップガイド（Windows(R)用）（3020-6-054）

HiRDB（UNIX用マニュアル）

HiRDB Version 8 解説（UNIX(R)用）（3000-6-351）

HiRDB Version 8 システム導入・設計ガイド（UNIX(R)用）（3000-6-352）

HiRDB Version 8 システム定義（UNIX(R)用）（3000-6-353）

HiRDB Version 8 システム運用ガイド（UNIX(R)用）（3000-6-354）

HiRDB Version 8 コマンドリファレンス（UNIX(R)用）（3000-6-355）

インナレプリカ機能 HiRDB Staticizer Option Version 8（3000-6-363）

HiRDB Version 8 ディザスタリカバリシステム　構築・運用ガイド（3000-6-364）

HiRDB ファーストステップガイド（UNIX(R)用）（3000-6-254）

HiRDB（Windows，UNIX共通マニュアル）

HiRDB Version 8 UAP開発ガイド（3020-6-356）

HiRDB Version 8 SQLリファレンス（3020-6-357）

HiRDB Version 8 メッセージ（3020-6-358）

HiRDB Version 8 セキュリティガイド（3020-6-359）

HiRDB Version 8 XDM/RD E2接続機能（3020-6-365）

HiRDBデータ連動機能 HiRDB Datareplicator Version 8（3020-6-360）

HiRDBデータ連動拡張機能 HiRDB Datareplicator Extension Version 8（3020-6-361）

データベース抽出・反映サービス機能 HiRDB Dataextractor Version 8（3020-6-362）

HiRDB 全文検索プラグイン HiRDB Text Search Plug-in Version 8（3020-6-375）

HiRDB XML拡張機能 HiRDB XML Extension Version 8（3020-6-376）

なお，本文中で使用しているHiRDB Version 8のマニュアル名は，（UNIX(R)用）または（Windows(R)用）を省略して表記しています。使用しているプラットフォームに応じてUNIX用またはWindows用のマニュアルを参照してください。

関連製品

HiRDB External Data Access Version 8（3020-6-366）

利用者ごとの関連マニュアル

HiRDBのマニュアルをご利用になる場合，利用者ごとに次のようにお読みください。

また，より理解を深めるために，左側のマニュアルから順にお読みいただくことをお勧めします。

読書手順

このマニュアルは，次に示す表に従ってお読みいただくことをお勧めします。

章タイトル | 参照の目安
1.　バッチ処理の高速化 | ○
2.　インメモリデータ処理を実行するための環境を作る | ○
3.　インメモリデータ処理を適用する | ○
4.　運用時に気をつけること | ○
5.　トラブルシュート | △
6.　こんなときどうする | △
付録Ａ　インメモリデータ処理の状態遷移図 | △
付録Ｂ　インメモリデータ処理に関するコマンド一覧 | △
付録Ｃ　pdmemdbコマンド実行時の前提条件 | △

（凡例）

○：必ず読んでいただきたい内容です。

△：必要に応じて読んでいただきたい内容です。

このマニュアルでの表記

このマニュアルでは製品名称および名称について次のように表記しています。ただし，それぞれのプログラムについての表記が必要な場合はそのまま表記しています。

製品名称または名称
表記

HiRDB/Single Server Version 8
HiRDB/シングルサーバ
HiRDBまたはHiRDBサーバ

HiRDB/Single Server Version 8(64)

HiRDB/Parallel Server Version 8
HiRDB/パラレルサーバ

HiRDB/Parallel Server Version 8(64)

HiRDB/Developer's Kit Version 8
HiRDB/Developer's Kit
HiRDBクライアント

HiRDB/Developer's Kit Version 8(64)

HiRDB/Run Time Version 8
HiRDB/Run Time

HiRDB/Run Time Version 8(64)

HiRDB Datareplicator Version 8
HiRDB Datareplicator

HiRDB Dataextractor Version 8
HiRDB Dataextractor

HiRDB Text Search Plug-in Version 8
HiRDB Text Search Plug-in

HiRDB XML Extension Version 8
HiRDB XML Extension

HiRDB Spatial Search Plug-in Version 3
HiRDB Spatial Search Plug-in

HiRDB Staticizer Option Version 8
HiRDB Staticizer Option

HiRDB LDAP Option Version 8
HiRDB LDAP Option

HiRDB Advanced Partitioning Option Version 8
HiRDB Advanced Partitioning Option

HiRDB Advanced High Availability Version 8
HiRDB Advanced High Availability

HiRDB Non Recover Front End Server Version 8
HiRDB Non Recover FES

HiRDB Disaster Recovery Light Edition Version 8
HiRDB Disaster Recovery Light Edition

HiRDB Accelerator Version 8
HiRDB Accelerator

HiRDB External Data Access Version 8
HiRDB External Data Access

HiRDB External Data Access Adapter Version 8
HiRDB External Data Access Adapter

HiRDB Adapter for XML - Standard Edition
HiRDB Adapter for XML

HiRDB Adapter for XML - Enterprise Edition

HiRDB Control Manager
HiRDB CM

HiRDB Control Manager Agent
HiRDB CM Agent

Hitachi TrueCopy
TrueCopy

Hitachi TrueCopy basic

TrueCopy

TrueCopy remote replicator

JP1/Automatic Job Management System 2
JP1/AJS2

JP1/Automatic Job Management System 2 - Scenario Operation
JP1/AJS2-SO

JP1/Cm2/Extensible SNMP Agent
JP1/ESA

JP1/Cm2/Extensible SNMP Agent for Mib Runtime

JP1/Cm2/Network Node Manager
JP1/NNM

JP1/Integrated Management - Manager
JP1/Integrated ManagementまたはJP1/IM

JP1/Integrated Management - View

JP1/Magnetic Tape Access
EasyMT

EasyMT

JP1/Magnetic Tape Library
MTguide

JP1/NETM/Audit - Manager
JP1/NETM/Audit

JP1/NETM/DM
JP1/NETM/DM

JP1/NETM/DM Manager

JP1/Performance Management
JP1/PFM

JP1/Performance Management - Agent Option for HiRDB
JP1/PFM-Agent for HiRDB

JP1/Performance Management - Agent Option for Platform
JP1/PFM-Agent for Platform

JP1/Performance Management/SNMP System Observer
JP1/SSO

JP1/VERITAS NetBackup BS v4.5
NetBackup

JP1/VERITAS NetBackup v4.5

JP1/VERITAS NetBackup BS V4.5 Agent for HiRDB License
JP1/VERITAS NetBackup Agent for HiRDB License

JP1/VERITAS NetBackup V4.5 Agent for HiRDB License

JP1/VERITAS NetBackup 5 Agent for HiRDB License

OpenTP1/Server Base Enterprise Option
TP1/EE

Virtual-storage Operating System 3/Forefront System Product
VOS3/FS
VOS3

Virtual-storage Operating System 3/Leading System Product
VOS3/LS

Extensible Data Manager/Base Extended Version 2
XDM基本プログラムXDM/BASE E2
XDM/BASE E2

XDM/Data Communication and Control Manager 3
XDMデータコミュニケーションマネジメントシステムXDM/DCCM3
XDM/DCCM3

XDM/Relational Database
リレーショナルデータベースシステムXDM/RD
XDM/RD
XDM/RD

XDM/Relational Database Extended Version 2
リレーショナルデータベースシステムXDM/RD E2
XDM/RD E2

VOS3 Database Connection Server
DBコネクションサーバ

BEA WebLogic Server
WebLogic Server

DB2 Universal Database for OS/390 Version 6
DB2

DNCWARE ClusterPerfect（Linux版）
ClusterPerfect

Microsoft(R) Office Excel
Microsoft ExcelまたはExcel

Microsoft(R) Visual C++(R)
Visual C++またはC++言語

Oracle8i
ORACLE

Oracle9i

Oracle 10g

Sun JavaTM System Directory Server
Sun Java System Directory Serverまたはディレクトリサーバ

HP-UX 11i V2 (IPF)
HP-UXまたはHP-UX (IPF)

HP-UX 11i V3 (IPF)

AIX 5L V5.1
AIX 5L
AIX

AIX 5L V5.2

AIX 5L V5.3

AIX V6.1
AIX V6.1

Linux(R)
Linux

Red Hat Linux
Red Hat Linux
Linux

Red Hat Enterprise Linux
Red Hat Enterprise Linux

Red Hat Enterprise Linux AS 3 (IPF)
Linux (IPF)

Red Hat Enterprise Linux AS 4 (IPF)

Red Hat Enterprise Linux 5.1 Advanced Platform (Intel Itanium)

Red Hat Enterprise Linux 5.1 (Intel Itanium)

Red Hat Enterprise Linux 5.2 Advanced Platform (Intel Itanium)

Red Hat Enterprise Linux 5.2 (Intel Itanium)

Red Hat Enterprise Linux AS 3(AMD64 & Intel EM64T)
Linux (EM64T)

Red Hat Enterprise Linux AS 4(AMD64 & Intel EM64T)

Red Hat Enterprise Linux ES 4(AMD64 & Intel EM64T)

Red Hat Enterprise Linux 5.1 Advanced Platform (AMD/Intel 64)

Red Hat Enterprise Linux 5.1 (AMD/Intel 64)

Red Hat Enterprise Linux 5.2 Advanced Platform (AMD/Intel 64)

Red Hat Enterprise Linux 5.2 (AMD/Intel 64)

Red Hat Enterprise Linux AS 4(AMD64 & Intel EM64T)
Linux AS 4

Red Hat Enterprise Linux AS 4(x86)

Red Hat Enterprise Linux ES 4(AMD64 & Intel EM64T)
Linux ES 4

Red Hat Enterprise Linux ES 4(x86)

Red Hat Enterprise Linux 5.1 Advanced Platform (x86)
Linux 5.1
Linux 5

Red Hat Enterprise Linux 5.1 (x86)

Red Hat Enterprise Linux 5.1 Advanced Platform (AMD/Intel 64)

Red Hat Enterprise Linux 5.1 (AMD/Intel 64)

Red Hat Enterprise Linux 5.1 Advanced Platform (Intel Itanium)

Red Hat Enterprise Linux ES 4(x86)

Red Hat Enterprise Linux 5.2 Advanced Platform (x86)
Linux 5.2

Red Hat Enterprise Linux 5.2 (x86)

Red Hat Enterprise Linux 5.2 Advanced Platform (AMD/Intel 64)

Red Hat Enterprise Linux 5.2 (AMD/Intel 64)

Red Hat Enterprise Linux 5.2 Advanced Platform (Intel Itanium)

Red Hat Enterprise Linux 5.2 (Intel Itanium)

turbolinux 7 Server for AP8000
Linux for AP8000

Microsoft(R) Windows NT(R) Workstation Operating System Version 4.0
Windows NT

Microsoft(R) Windows NT(R) Server Network Operating System Version 4.0

Microsoft(R) Windows(R) 2000 Professional Operating System
Windows 2000

Microsoft(R) Windows(R) 2000 Server Operating System

Microsoft(R) Windows(R) 2000 Datacenter Server Operating System

Microsoft(R) Windows(R) 2000 Advanced Server Operating System

Microsoft(R) Windows(R) 2000 Advanced Server Operating System
Windows 2000 Advanced Server

Microsoft(R) Windows Server(R) 2003, Standard Edition
Windows Server 2003 Standard Edition
Windows Server 2003

Microsoft(R) Windows Server(R) 2003, Enterprise Edition
Windows Server 2003 Enterprise Edition

Microsoft(R) Windows Server(R) 2003, Standard x64 Edition
Windows Server 2003 Standard x64 Edition

Microsoft(R) Windows Server(R) 2003, Enterprise x64 Edition
Windows Server 2003 Enterprise x64 Edition

Microsoft(R) Windows Server(R) 2003 R2, Standard Edition
Windows Server 2003 R2

Microsoft(R) Windows Server(R) 2003 R2, Enterprise Edition

Microsoft(R) Windows Server(R) 2003 R2, Standard x64 Edition

Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition

Microsoft(R) Windows Server(R) 2003 R2, Standard x64 Edition
Windows Server 2003 R2 x64 Editions

Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition

64ビットバージョンMicrosoft(R) Windows Server(R) 2003, Enterprise Edition
Windows Server 2003 (IPF)

Microsoft(R) Windows Server(R) 2008 Standard
Windows Server 2008 Standard
Windows Server 2008

Microsoft(R) Windows Server(R) 2008 Enterprise
Windows Server 2008 Enterprise

Microsoft(R) Windows Server(R) 2003, Standard x64 Edition
Windows Server 2003 x64 Editions
Windows (x64)

Microsoft(R) Windows Server(R) 2003, Enterprise x64 Edition

Microsoft(R) Windows Server(R) 2003 R2, Standard x64 Edition

Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition

Microsoft(R) Windows(R) XP Professional x64 Edition
Windows XP x64 Edition

64ビットバージョンMicrosoft(R) Windows Server(R) 2003, Enterprise Edition
Windows Server 2003 (IPF)
Windows(IPF)

Microsoft(R) Windows(R) XP Professional x64 Edition
Windows XP x64 Edition
Windows XP

Microsoft(R) Windows(R) XP Professional Operating System
Windows XP Professional

Microsoft(R) Windows(R) XP Home Edition Operating System
Windows XP Home Edition

Microsoft(R) Windows Vista(R) Home Basic
Windows Vista Home Basic
Windows Vista

Microsoft(R) Windows Vista(R) Home Premium
Windows Vista Home Premium

Microsoft(R) Windows Vista(R) Ultimate
Windows Vista Ultimate

Microsoft(R) Windows Vista(R) Business
Windows Vista Business

Microsoft(R) Windows Vista(R) Enterprise
Windows Vista Enterprise

シングルサーバ
SDS

システムマネジャ
MGR

フロントエンドサーバ
FES

ディクショナリサーバ
DS

バックエンドサーバ
BES

Windows Server 2003およびWindows Server 2008を総称してWindows Serverと表記します。また，Windows 2000，Windows XP，Windows Server，およびWindows Vistaを総称してWindowsと表記します。

TCP/IPが規定するhostsファイル（UNIXの場合/etc/hostsファイルも含む）をhostsファイルと表記します。hostsファイルとは通常，Windowsの場合は%windir%¥system32¥drivers¥etc¥hostsのことです。

このマニュアルで使用する略語

このマニュアルで使用する英略語の一覧を次に示します。

英略語 | 英 字 の 表 記
ACK | Acknowledgement
ADM | Adaptable Data Manager
ADO | ActiveX Data Objects
ADT | Abstract Data Type
AP | Application Program
API | Application Programming Interface
ASN.1 | Abstract Syntax Notation One
BES | Back End Server
BLOB | Binary Large Object
BMP | Basic Multilingual Plane
BOM | Byte Order Mark
CD-ROM | Compact Disc - Read Only Memory
CGI | Common Gateway Interface
CLOB | Character Large Object
CMT | Cassette Magnetic Tape
COBOL | Common Business Oriented Language
CORBA | Common ORB Architecture
CPU | Central Processing Unit
CSV | Comma Separated Values
DAO | Data Access Object
DAT | Digital Audio Taperecorder
DB | Database
DBM | Database Module
DBMS | Database Management System
DDL | Data Definition Language
DF for Windows NT | Distributing Facility for Windows NT
DF/UX | Distributing Facility / for UNIX
DIC | Dictionary Server
DLT | Digital Linear Tape
DML | Data Manipulate Language
DNS | Domain Name System
DOM | Document Object Model
DS | Dictionary Server
DTD | Document Type Definition
DTP | Distributed Transaction Processing
DWH | Data Warehouse
EUC | Extended UNIX Code
EX | Exclusive
FAT | File Allocation Table
FD | Floppy Disk
FES | Front End Server
FQDN | Fully Qualified Domain Name
FTP | File Transfer Protocol
GUI | Graphical User Interface
HBA | Host Bus Adapter
HD | Hard Disk
HTML | Hyper Text Markup Language
ID | Identification number
IP | Internet Protocol
IPF | Itanium(R) Processor Family
JAR | Java Archive File
Java VM | Java Virtual Machine
JDBC | Java Database Connectivity
JDK | Java Developer's Kit
JFS | Journaled File System
JFS2 | Enhanced Journaled File System
JIS | Japanese Industrial Standard code
JP1 | Job Management Partner 1
JRE | Java Runtime Environment
JTA | Java Transaction API
JTS | Java Transaction Service
KEIS | Kanji processing Extended Information System
LAN | Local Area Network
LDAP | Lightweight Directory Access Protocol
LIP | Loop Initialization Process
LOB | Large Object
LRU | Least Recently Used
LTO | Linear Tape-Open
LU | Logical Unit
LUN | Logical Unit Number
LVM | Logical Volume Manager
MGR | System Manager
MIB | Management Information Base
MRCF | Multiple RAID Coupling Feature
MSCS | Microsoft Cluster Server
MSFC | Microsoft Failover Cluster
NAFO | Network Adapter Fail Over
NAPT | Network Address Port Translation
NAT | Network Address Translation
NIC | Network Interface Card
NIS | Network Information Service
NTFS | New Technology File System
ODBC | Open Database Connectivity
OLAP | Online Analytical Processing
OLE | Object Linking and Embedding
OLTP | On-Line Transaction Processing
OOCOBOL | Object Oriented COBOL
ORB | Object Request Broker
OS | Operating System
OSI | Open Systems Interconnection
OTS | Object Transaction Service
PC | Personal Computer
PDM II E2 | Practical Data Manager II Extended Version 2
PIC | Plug-in Code
PNM | Public Network Management
POSIX | Portable Operating System Interface for UNIX
PP | Program Product
PR | Protected Retrieve
PU | Protected Update
RAID | Redundant Arrays of Inexpensive Disk
RD | Relational Database
RDB | Relational Database
RDB1 | Relational Database Manager 1
RDB1 E2 | Relational Database Manager 1 Extended Version 2
RDO | Remote Data Objects
RiSe | Real time SAN replication
RM | Resource Manager
RMM | Resource Manager Monitor
RPC | Remote Procedure Call
SAX | Simple API for XML
SDS | Single Database Server
SGML | Standard Generalized Markup Language
SJIS | Shift JIS
SNMP | Simple Network Management Protocol
SNTP | Simple Network Time Protocol
SQL | Structured Query Language
SQL/K | Structured Query Language / VOS K
SR | Shared Retrieve
SU | Shared Update
TCP/IP | Transmission Control Protocol / Internet Protocol
TM | Transaction Manager
TMS-4V/SP | Transaction Management System - 4V / System Product
UAP | User Application Program
UOC | User Own Coding
VOS1 | Virtual-storage Operating System 1
VOS3 | Virtual-storage Operating System 3
VOS K | Virtual-storage Operating System Kindness
WS | Workstation
WWW | World Wide Web
XDM/BASE E2 | Extensible Data Manager / Base Extended Version 2
XDM/DF | Extensible Data Manager / Distributing Facility
XDM/DS | Extensible Data Manager / Data Spreader
XDM/RD E2 | Extensible Data Manager / Relational Database Extended Version 2
XDM/SD E2 | Extensible Data Manager / Structured Database Extended Version 2
XDM/XT | Extensible Data Manager / Data Extract
XFIT | Extended File Transmission program
XML | Extensible Markup Language

パス名の表記

パス名の区切りは「¥」で表記しています。UNIX版HiRDBを使用している場合はマニュアル中の「¥」を「/」に置き換えてください。ただし，Windows版とUNIX版でパス名が異なる場合は，それぞれのパス名を表記しています。

HiRDB運用ディレクトリのパスを%PDDIR%と表記します。ただし，Windows版とUNIX版でパス名が異なるため，それぞれを表記する場合，UNIX版は$PDDIRと表記します。例を次に示します。

　　　Windows版：%PDDIR%¥CLIENT¥UTL¥

　　　UNIX版：$PDDIR/client/lib/

Windowsのインストールディレクトリのパスを%windir%と表記します。

ログの表記

●Windows版の場合

Windowsのイベントビューアで表示されるアプリケーションログをイベントログと表記します。イベントログは，次の方法で参照できます。

〈手順〉

1.［スタート］－［プログラム］－［管理ツール（共通）］－［イベントビューア］を選択します。

2.［ログ］－［アプリケーション］を選択します。

アプリケーションログが表示されます。「ソース」の列が「HiRDBSingleServer」または「HiRDBParallelServer」になっているのがHiRDBが出力したメッセージです。

なお，セットアップ識別子を指定してインストールした場合は，「HiRDBSingleServer」または「HiRDBParallelServer」にセットアップ識別子が付いた名称となります。

●UNIX版の場合

OSのログをsyslogfileと表記します。syslogfileは，/etc/syslog.confでログ出力先に指定しているファイルです。一般的には，次のファイルがsyslogfileとなります。

OS | ファイル
HP-UX | /var/adm/syslog/syslog.log
Solaris | /var/adm/messagesまたは/var/log/syslog
AIX | /var/adm/ras/syslog
Linux | /var/log/messages

Windowsの操作説明で使う表記

Windowsの操作説明で使う記号を次に示します。

記　号 | 意　味
［　］ | ボタンやテキストボックスなど，画面に表示されている要素を示します。
［　］－［　］ | 画面に表示されるメニューやアイコンなどを選択する操作を示します。

Windowsの用語「ディレクトリ」と「フォルダ」は，「ディレクトリ」に統一して表記しています。

図中で使用する記号

このマニュアルの図中で使用する記号を次のように定義します。

Windowsのパス名に関する注意

パス名を絶対パスで指定する場合はドライブ名を指定してください。

（例）C:¥win32app¥hitachi¥hirdb_s¥spool¥tmp

コマンドの引数，制御文ファイル，およびHiRDBシステム定義ファイル中に空白または丸括弧を含むパス名を指定する場合は，前後を引用符（"）で囲んでください。

（例）pdinit -d "C:¥Program Files(x86)¥hitachi¥hirdb_s¥conf¥mkinit"

ただし，バッチファイルもしくはコマンドプロンプト上でsetコマンドを使用して環境変数を設定する場合，またはインストールディレクトリを指定する場合は引用符は不要です。引用符で囲むと，引用符も環境変数の値に含まれます。

（例）set PDCLTPATH=C:¥Program Files¥hitachi¥hirdb_s¥spool

HiRDBはネットワークドライブのファイルを使用できないため，HiRDBのインストール，および環境構築はローカルドライブで行ってください。また，ユティリティの入出力ファイルなども，ローカルドライブ上のファイルを使用してください。

パス名には，ショートパス名（例えば，C:¥PROGRA~1など）は使用しないでください。

常用漢字以外の漢字の使用について

このマニュアルでは，常用漢字を使用することを基本としていますが，次に示す用語については，常用漢字以外の漢字を使用しています。

改竄（かいざん）

個所（かしょ）

閉塞（へいそく）

KB（キロバイト）などの単位表記について

1KB（キロバイト），1MB（メガバイト），1GB（ギガバイト），1TB（テラバイト）はそれぞれ1,024バイト，1,024²バイト，1,024³バイト，1,024⁴バイトです。

Version 7とVersion 8の製品体系の違い

HiRDB Version 8では，HiRDB Version 7までオプション製品（HiRDB Object OptionおよびHiRDB High Availability）で提供していた機能をHiRDBの標準機能としました。それに伴い，オプション製品が廃止になりました。

また，Version 8以降，HiRDB External Data AccessおよびHiRDB External Data Access AdapterはHiRDBシリーズではなく，Cosminexus Version 7シリーズとなりました。

HiRDB Version 7とVersion 8の製品体系の違いを次に示します。

1.　バッチ処理の高速化

この章では，大量のデータを扱うバッチ処理の高速化を実現するインメモリデータ処理について説明します。

＜この章の構成＞

1.1　バッチ処理の高速化が必要とされる理由

1.2　インメモリデータ処理の仕組み

1.3　インメモリデータ処理を適用すると効果が期待できるケース

1.4　インメモリデータ処理を適用しても効果が期待できないケース

1.5　インメモリデータ処理が適用できないケース

1.1　バッチ処理の高速化が必要とされる理由

企業や組織が保有するデータは増加の一途をたどっています。データ量の増加に伴い，バッチ処理に掛かる時間は長くなる一方です。さらに，業務のサービス時間は延長傾向にあるため，バッチ処理を実行できる時間が短くなってきています。また，これまでメインフレームでやっていたような大量のバッチ処理を，オープンシステムでも実施するという需要が高まっています。このような理由から，オープンシステムでのバッチ処理の高速化が企業や組織の課題となっています。

HiRDBでは，大量のデータを扱うバッチ処理を高速化するために，RDエリア内の全データをメモリ上に一括して読み込み，バッチ処理の実行中はメモリ上のデータだけを更新し，ディスク上のデータは更新しません。バッチ処理が完了したあとにメモリ上の更新データを一括してディスクに書き込みます。バッチ処理中はディスク入出力が発生しないため，その分バッチ処理に掛かる時間を短縮できます。

このバッチ高速化を実現するための処理方式をインメモリデータ処理といいます。

例えば，次のようなケースに当てはまる場合は，インメモリデータ処理を適用してバッチ処理の高速化を検討してください。

ケース1

バッチ処理を実行できる時間の範囲が午前0時から午前6時までの6時間と決まっていて，バッチ処理が完了するまで4時間掛かります。バッチ処理の途中でエラーが発生した場合，決められた時間内にバッチ処理を完了できないおそれがあります。

ケース2

データ量の増加によって，3か月後のバッチ処理時間が12時間以上になると予想され，翌日のオンライン業務に影響が出ると考えられます。

ケース3

将来，メインフレームからデータを移行する予定があります。しかし，データの移行に掛かる時間を試算した結果，移行予定期間内にデータの移行が終わりそうにありません。

1.2　インメモリデータ処理の仕組み

ここでは，インメモリデータ処理の仕組みについて説明します。

なお，インメモリデータ処理を実行するにはHiRDB Acceleratorが必要です。

＜この節の構成＞

1.2.1　インメモリデータ処理の概要

1.2.2　インメモリデータバッファの優位点

1.2.3　インメモリデータ処理に関する用語

1.2.1　インメモリデータ処理の概要

インメモリデータ処理では，RDエリア内の全データをメモリ上に一括して読み込み，バッチ処理の実行中はメモリ上のデータだけを更新し，ディスク上のデータは更新しません。バッチ処理が完了したあとにメモリ上の更新データを一括してディスクに書き込みます。バッチ処理中はディスク入出力が発生しません。ディスク入出力が発生するのは，RDエリア内のデータをメモリ上に読み込むときと，メモリ上の更新データをディスクに書き込むときの2回だけです。

インメモリデータ処理の概要を次に示します。

図1-1　インメモリデータ処理の概要

［説明］

RDエリア内の全データをメモリ上に一括して読み込むことをインメモリ化といいます。インメモリ化はRDエリアごとに行います。インメモリ化しているRDエリアをインメモリRDエリアといいます。また，インメモリデータ処理で使用するデータバッファをインメモリデータバッファといいます。

ポイント

インメモリデータ処理を実行する場合は，グローバルバッファを使用しないでインメモリデータバッファを使用します。インメモリデータバッファは，HiRDBが動的に共用メモリ上に確保するため，HiRDB管理者がインメモリデータバッファを定義する必要はありません。

バッチ処理の実行中はインメモリデータバッファ上のデータだけが更新されて，ディスク上のデータは更新されません。バッチ処理が完了したあとにコマンド（pdholdコマンド）を実行して，インメモリデータバッファ上の更新情報を一括してディスクに書き込みます。シンクポイント時もディスクへの書き込みが発生しません。なお，ログ取得モードであれば，インメモリデータ処理中でも，通常と同じようにデータベースの更新ログが取得されます。障害が発生した場合，そのログを使って，データベースを最新の状態に回復できます。

1.2.2　インメモリデータバッファの優位点

ここでは，グローバルバッファと比較したときのインメモリデータバッファの優位点について説明します。性能面ではインメモリデータバッファの方が優れていますが，障害発生時の対処方法がグローバルバッファに比べてやや複雑になります。

インメモリデータバッファとグローバルバッファのそれぞれの優位点を次に説明します。

＜この項の構成＞

(1)　インメモリデータバッファが優位な点

(2)　グローバルバッファが優位な点

(1)　インメモリデータバッファが優位な点

インメモリデータバッファが優位な点を次に示します。

ディスク入出力回数が少ない
グローバルバッファを使用している場合はディスク入出力が定期的に発生しますが，インメモリデータバッファを使用している場合は，ディスク入出力が発生するのはインメモリ化した時点とディスクへのデータ書き込み時点の2回だけです。シンクポイント時にもディスクへの書き込みが発生しません。そのため，インメモリデータバッファを使用する方が，グローバルバッファを使用したときに比べてディスク入出力回数が少なくなります。

バッファの管理処理が少ない
グローバルバッファを使用している場合は次に示すバッファ管理処理が発生しますが，インメモリデータバッファを使用している場合はこれらのバッファ管理処理が発生しません。

キャッシュバッファチェーン（バッファへのポインタの集合）の管理処理

LRUリストの管理処理

更新バッファの管理処理

インメモリデータバッファを使用した方が，これらの管理処理が不要になり，その分性能が向上します。また，トランザクションの同時実行性も向上します。

チューニングが不要
グローバルバッファの場合はヒット率を意識してグローバルバッファのチューニングをする必要があります。一方，インメモリデータバッファの場合はヒット率を意識する必要がないため，チューニングが必要ありません。そのため，チューニングに掛かるコストを削減できます。

(2)　グローバルバッファが優位な点

グローバルバッファが優位な点を次に示します。

HiRDBが異常終了したときのデータの回復方法
グローバルバッファを使用している場合は，HiRDBが異常終了しても，再開始時に最新の状態にHiRDBが回復します。インメモリデータバッファを使用している場合は，HiRDBが異常終了して再開始しても，HiRDBは自動回復しません。この場合，HiRDB管理者がバックアップとログを使用して最新の状態に回復するか，またはインメモリ化時点以降の処理を再実行する必要があります。

1.2.3　インメモリデータ処理に関する用語

インメモリデータ処理に関する用語を次の表に示します。

表1-1　インメモリデータ処理に関する用語

用語 | 説明
インメモリデータ処理 | RDエリア内の全データをメモリ（インメモリデータバッファ）上に常駐させて，ディスク入出力回数を抑える処理方式のことです。
インメモリデータバッファ | インメモリデータ処理で使用するデータバッファのことです。
インメモリ化 | インメモリデータ処理で，RDエリア内の全データをメモリ上に一括して読み込み，常駐させることです。
インメモリRDエリア | インメモリデータ処理の対象となっているRDエリアのことです。このRDエリア内の全データがメモリ上に常駐します。
DB同期状態 | インメモリRDエリア内のデータとインメモリデータバッファ上のデータの同期が取れている状態のことです。
DB非同期状態 | インメモリRDエリア内のデータとインメモリデータバッファ上のデータの同期が取れていない状態のことです。
RDエリア障害 | インメモリRDエリアに障害が発生した状態です。
バッファ障害 | インメモリデータバッファに障害が発生した状態です。

1.3　インメモリデータ処理を適用すると効果が期待できるケース

次の場合にインメモリデータ処理を適用すると効果が期待できます。

処理時間の長いバッチ処理を実行している場合
大量のデータ更新を行う，処理時間の長いバッチ処理にインメモリデータ処理を適用すると，効果が期待できます。また，ログレスモードを適用すると，さらに処理時間を短縮できます。
バッチ処理に掛かる時間が長いほど，ディスク入出力回数に差が出るため，インメモリデータ処理を適用したときの効果が期待できます。

複数のバッチ処理を連続して実行している場合
複数のバッチ処理を連続して実行する場合にインメモリデータ処理を適用すると効果が期待できます。
バッチ処理を連続して行うほど，ディスク入出力回数に差が出るため，インメモリデータ処理を適用したときの効果が期待できます。

グローバルバッファの排他競合が原因で性能が上がらない場合
グローバルバッファの排他競合が原因で性能が上がらない場合に，インメモリデータ処理を適用すると性能向上が期待できます。
グローバルバッファを使用する場合（インメモリデータ処理を使用しない場合），参照または更新処理の発生時，グローバルバッファ上にデータがキャッシュされているかどうかを検索する処理（キャッシュサーチ処理）が行われます。このとき，グローバルバッファの全ページに対して排他が掛かるため，ほかの参照または更新処理は排他待ちとなります。インメモリデータ処理の場合は，インメモリデータバッファ上に全データがキャッシュされているため，キャッシュサーチ処理が発生しません。グローバルバッファの全ページに対する排他制御がなくなるため，同時実行性の向上が見込まれ，その分性能向上が期待できます。例えば，同じグローバルバッファを割り当てている複数のRDエリアを更新するバッチ処理などで排他競合が多発している場合に，インメモリデータ処理を適用すると性能向上が期待できます。
なお，排他競合の発生頻度については，統計解析ユティリティのグローバルバッファに関する統計情報で確認できます。

メインフレームからデータを移行する場合
メインフレームの膨大なデータをHiRDBに移行する場合（データをHiRDBのデータベースにデータロードする場合）に，インメモリデータ処理を適用すると効果が期待できます。

参考

インメモリデータ処理はユティリティにも適用できます。データロードや表の再編成など，処理時間の長いユティリティを実行する場合にも，効果が期待できます。

1.4　インメモリデータ処理を適用しても効果が期待できないケース

次のような場合にインメモリデータ処理を適用しても効果が期待できません。

処理時間の短いバッチ処理を実行している場合
インメモリデータ処理では，RDエリア内の全データをインメモリ化します。そのため，RDエリアのデータ量に比例して，インメモリ化に掛かる時間や，インメモリデータバッファ上のデータをディスクに書き込む時間が長くなります。これらの処理に掛かる時間とバッチ業務の処理時間を考慮した上で，インメモリデータ処理の適用を検討してください。
例えば，処理時間が30分のバッチ業務にインメモリデータ処理を適用したとします。インメモリデータ処理の適用によってバッチ業務の処理時間は20分と短くなりましたが，インメモリ化の処理に10分，インメモリデータバッファ上のデータをディスクに書き込む時間が10分掛かると，合計40分掛かり，インメモリデータ処理を適用する前より処理時間が長くなってしまいます。

参考

ここの説明で使用している時間はあくまで例です。業務の内容によって各処理に掛かる時間は変わります。

RDエリア内の全データをグローバルバッファ上にキャッシュしている場合
RDエリア内の全データをグローバルバッファ上にキャッシュしている場合と，インメモリデータ処理を適用した場合では，あまり性能に差がありません。

1.5　インメモリデータ処理が適用できないケース

ここでは，インメモリデータ処理が適用できないケースについて説明します。

＜この節の構成＞

(1)　インメモリデータ処理を適用できないRDエリア

(2)　リアルタイムSANレプリケーション（ログ同期方式を除く）を使用している場合

(1)　インメモリデータ処理を適用できないRDエリア

ユーザ用RDエリア，ユーザLOB用RDエリア，およびリスト用RDエリアに対してだけ，インメモリデータ処理を適用できます。次に示すRDエリアについては，インメモリデータ処理を適用できません。

マスタディレクトリ用RDエリア

データディクショナリ用RDエリア

データディレクトリ用RDエリア

データディクショナリLOB用RDエリア

レジストリ用RDエリア

レジストリLOB用RDエリア

なお，ユーザ用RDエリアおよびユーザLOB用RDエリアについても，オープン契機がSCHEDULE属性のRDエリアの場合はインメモリ化できません。また，ユーザ用RDエリアが共用RDエリアの場合もインメモリ化できません。

(2)　リアルタイムSANレプリケーション（ログ同期方式を除く）を使用している場合

全同期方式，全非同期方式，またはハイブリッド方式のリアルタイムSANレプリケーションを使用している場合は，インメモリデータ処理を適用できません。

ログ同期方式のリアルタイムSANレプリケーションの場合は，インメモリデータ処理を適用できます。ただし，ログ適用サイトのデータベースの更新ができなくなるため，ログレスモードは使用しないでください。

2.　インメモリデータ処理を実行するための環境を作る

この章では，インメモリデータ処理を実行するために必ず行う準備と，処理性能を向上させるために考えておくことについて説明します。

＜この章の構成＞

2.1　必ず行う準備

2.2　インメモリデータ処理をより効果的に実行するために考えておくこと

2.1　必ず行う準備

ここでは，インメモリデータ処理を実行するために必ず行う準備について説明します。準備の手順を次の図に示します。

図2-1　必ず行う準備

なお，これ以降の説明は，HiRDBのインストールおよびセットアップは完了していて，すでにHiRDBを運用していることを前提としています。

＜この節の構成＞

2.1.1　マシン環境の確認

2.1.2　HiRDB Acceleratorのインストール

2.1.3　HiRDB Acceleratorのセットアップ（UNIX限定）

2.1.4　システム定義の設定

2.1.1　マシン環境の確認

インメモリデータ処理を実行するためには，マシン環境がここで説明する条件を満たしている必要があります。マシン環境について確認してください。

＜この項の構成＞

(1)　前提プラットフォーム

(2)　メモリ容量の確認

(3)　OSのオペレーティングシステムパラメタの確認（UNIX限定）

(1)　前提プラットフォーム

インメモリデータ処理は次のプラットフォームで実行できます。

HP-UX（64ビットモード）

Solaris（64ビットモード）

AIX（64ビットモード）

Linux (EM64T)，Linux (IPF)

Windows（Windows (x64)，Windows Vista Ultimate，Windows Vista Business，Windows Vista Enterprise）

(2)　メモリ容量の確認

インメモリデータ処理を実行するためのメモリ容量が十分にあるか確認してください。インメモリデータ処理に必要なメモリ容量は，インメモリ化するRDエリアの容量に，HiRDBがインメモリデータバッファを管理するための領域を加えた値になります。

インメモリデータ処理で必要なメモリ所要量については，マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。

(3)　OSのオペレーティングシステムパラメタの確認（UNIX限定）

次に示す設定をするオペレーティングシステムパラメタの値を見直してください。

共用メモリセグメントの合計サイズ

システム上の共用メモリセグメントの最大数

1プロセス当たりの共用メモリセグメントの最大数

OSのオペレーティングシステムパラメタの見積もりについては，マニュアル「HiRDB Version 8 システム導入・設計ガイド」またはOSのマニュアルを参照してください。

2.1.2　HiRDB Acceleratorのインストール

ここでは，HiRDB Acceleratorのインストールおよびアンインストールの手順について説明します。

＜この項の構成＞

(1)　インストール手順

(2)　アンインストール手順

(1)　インストール手順

HiRDB Acceleratorのインストール手順を次に示します。

Windows版の場合

pdstopコマンドでHiRDBを正常終了します。

［コントロールパネル］の［サービス］でHiRDBのサービスを停止します。

HiRDB Acceleratorをインストールします。Administrators権限を持つユーザがインストールを実行してください。手順はインストーラの指示に従ってください。
なお，HiRDB/パラレルサーバの場合は，すべてのサーバマシンにHiRDB Acceleratorをインストールしてください。系切り替え機能を使用している場合は予備系のサーバマシンにも，HiRDB Acceleratorをインストールしてください。
また，マルチHiRDB構成のときは，セットアップ識別子の指定が必要です。セットアップ識別子はpdntenvコマンドで確認できます。

UNIX版の場合

pdstopコマンドでHiRDBを正常終了します。

日立PPインストーラを実行してHiRDB Acceleratorをインストールします。
なお，HiRDB/パラレルサーバの場合は，すべてのサーバマシンにHiRDB Acceleratorをインストールしてください。
また，系切り替え機能を使用している場合は予備系のサーバマシンに，リアルタイムSANレプリケーションを使用している場合はリモートサイトのサーバマシンにも，HiRDB Acceleratorをインストールしてください。

注意

HiRDBをバージョンアップした場合（例えば，バージョン08-03から09-00にバージョンアップした場合など）は，HiRDB Acceleratorを再インストールする必要があります。

(2)　アンインストール手順

HiRDB Acceleratorのアンインストール手順を次に示します。

Windows版の場合

pdstopコマンドでHiRDBを正常終了します。

［コントロールパネル］の［サービス］でHiRDBのサービスを停止します。

［コントロールパネル］の［アプリケーションの追加と削除］からHiRDB Acceleratorをアンインストールします。

UNIX版の場合

pdstopコマンドでHiRDBを正常終了します。

pdsetup -dコマンドでHiRDB AcceleratorをOSから削除します。

日立PPインストーラを実行してHiRDB Acceleratorをアンインストールします。

2.1.3　HiRDB Acceleratorのセットアップ（UNIX限定）

UNIX版の場合，HiRDB Acceleratorのセットアップをしてください。セットアップは，pdopsetupコマンドで実行します。

なお，HiRDB/パラレルサーバの場合，すべてのサーバマシンでpdopsetupコマンドを実行する必要があります。

2.1.4　システム定義の設定

インメモリデータ処理を実行するには，次に示すオペランドを指定してください。

pd_max_resident_rdarea_no
インメモリ化するRDエリアの最大数を指定します。このオペランドに1以上の値を指定すると，インメモリデータ処理を実行できます。
OSがページ固定に対応しているWindowsで，このオペランドに1以上の値を指定した場合は，SHMMAXオペランドにWindowsのLarge Pageのページサイズに切り上げた値を指定してください。
Windowsがページ固定に対応しているかどうか，およびLarge Pageのページサイズについては，pdntenv -osコマンドで確認してください。

pd_max_resident_rdarea_shm_no
インメモリデータバッファが使用する共用メモリセグメントの最大数を指定します。

注意

インメモリ化するRDエリアには，pdbufferオペランドでグローバルバッファが割り当てられている必要があります。グローバルバッファが割り当てられていないRDエリアは，インメモリ化できません。

2.2　インメモリデータ処理をより効果的に実行するために考えておくこと

ここでは，インメモリデータ処理をより効果的に実行するために検討するとよいポイントについて説明します。あらかじめインメモリデータ処理に適したシステム構成にしておくことで，処理性能の向上が期待できます。

＜この節の構成＞

(1)　どのRDエリアをインメモリ化するか

(2)　RDエリア内の表構成にむだがないか

(3)　一括指定ができるRDエリア名になっているか

(4)　ログレスモードを適用できるか

(1)　どのRDエリアをインメモリ化するか

インメモリデータ処理をより効果的に実行するには，表格納RDエリアだけではなく，インデクス格納RDエリアも一緒にインメモリ化してください。

特に，次に示すRDエリアはまとめてインメモリ化してください。

表に定義されているインデクスを格納しているRDエリア

表を横分割している場合，その横分割表が格納されているすべてのRDエリア

(2)　RDエリア内の表構成にむだがないか

インメモリ化するRDエリアに，業務ではアクセスしない表が混在している場合，そのような表は別のRDエリアに格納することをお勧めします。これによって，メモリ領域がむだに確保されることを防ぎます。

RDエリア内に使用しない表が混在している場合の対処例を次の図に示します。

図2-2　RDエリア内に使用しない表が混在している場合の対処例

(3)　一括指定ができるRDエリア名になっているか

インメモリデータ処理に使用するコマンド（pdmemdbコマンド，pdholdコマンド）は，RDエリア名一括指定ができます。RDエリア名一括指定ができるように，RDエリア名の末尾をそろえておくなどの工夫をすると便利です。

（例）

インメモリ化するRDエリア名の末尾を次のようにそろえます。

RDDATA01_mem，RDDATA02_mem，RDIDX01_mem，RDIDX02_mem

上記四つのRDエリアをまとめてインメモリ化する場合，次のように指定できます。

pdmemdb -k stay -r "*_mem"

運用コマンドでのRDエリア名一括指定については，マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。

(4)　ログレスモードを適用できるか

インメモリデータ処理でバッチ業務を実行する場合，ログレスモードで実行すると，より処理時間を短縮できます。バッチ業務を実行する場合は，ログレスモードの適用を検討してください。

3.　インメモリデータ処理を適用する

この章では，業務の種類に応じたインメモリデータ処理の適用例について説明します。

＜この章の構成＞

3.1　基本的な運用の流れ

3.2　バッチ業務に適用する場合

3.3　オンライン業務に適用する場合

3.4　テスト業務に適用する場合

3.5　複数のRDエリアを一度にインメモリ化する場合の注意事項

3.1　基本的な運用の流れ

ここでは，インメモリデータ処理を実行するときの基本的な運用の流れについて説明します。

運用には，大きく分けて次の四つのステップがあります。

RDエリアをインメモリ化する

業務を実行する

インメモリデータバッファとRDエリアの同期を取る

インメモリ化を解除する

基本的な運用の流れを次の図に示します。

図3-1　基本的な運用の流れ

ポイント

RDエリアのデータとインメモリデータバッファのデータが同じ場合をDB同期状態といい，異なる場合をDB非同期状態といいます。

ステップ2.で業務を実行している間は，インメモリデータバッファ上のデータだけが更新され，RDエリアのデータは更新されないため，DB非同期状態になります。インメモリデータバッファとRDエリアの状態は，pddblsコマンドで確認できます。詳細は，「6.2　インメモリデータバッファの利用状況を確認するには」を参照してください。

注意

ステップ1.のインメモリ化は，RDエリアのデータ量に比例して時間が掛かります。その間はシンクポイントが取得されないため，注意してください。

この基本的な運用の流れを基に，3.2ではバッチ業務に適用する場合の手順，3.3ではオンライン業務に適用する場合の手順について説明します。

3.2　バッチ業務に適用する場合

ここでは，インメモリデータ処理をバッチ業務に適用する場合の運用について，例題を使って説明します。

＜この節の構成＞

(1)　例題の条件

(2)　コマンド実行手順

(1)　例題の条件

この例題での条件を次に示します。

二つのバッチ業務を連続して実行します。

バッチ業務でアクセスするRDエリアは，RDDATA01（表格納RDエリア）およびRDIDX01（インデクス格納RDエリア）です。

ログレスモードでバッチ業務を実行します。

運用の流れを次の図に示します。

図3-2　バッチ業務に適用する場合の運用の流れ

参考

初期データロードにもインメモリデータ処理を適用できます。その際，長時間シンクポイントを取得できなくなるのを防ぐため，同期点指定のデータロードの適用を検討してください。同期点指定のデータロードについては，マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。

初期データロードにインメモリデータ処理を適用する場合の手順は，バッチ業務に適用する場合の手順と同じです。(2)(b)および(d)のバッチ業務をpdloadコマンドによる初期データロードに置き換えてお読みください。

なお，初期データロードの場合，(2)(a)のバックアップの取得は必要ありません。

(2)　コマンド実行手順

コマンドの実行手順を次に示します。

(a)　RDエリアをインメモリ化する

RDDATA01およびRDIDX01を閉塞クローズ状態にします。

pdhold -r RDDATA01,RDIDX01 -c

システムログファイルをスワップします。

pdlogswap -d sys -w

RDDATA01およびRDIDX01をインメモリ化します。

pdmemdb -k stay -r RDDATA01,RDIDX01

このとき，インメモリデータバッファとRDエリアは，DB同期状態になります。

なお，ここでは，複数のRDエリアをまとめてインメモリ化しています。この場合の注意事項については，「3.5　複数のRDエリアを一度にインメモリ化する場合の注意事項」を参照してください。

RDDATA01およびRDIDX01の閉塞クローズを解除します。

pdrels -r RDDATA01,RDIDX01 -o

RDDATA01およびRDIDX01のバックアップを取得します。

pdcopy -m C:¥rdarea¥mast¥mast01 -M r
-r RDDATA01,RDIDX01
-b C:¥pdcopy¥backup01 -p C:¥pdcopy¥list01

バックアップの取得方法については，マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

ポイント

ここでは，RDエリアの閉塞クローズを解除してから参照可能モード（-M r）でバックアップを取得しています。通常と異なり，参照可能モードでバックアップを取得している間も更新ができます。このため，バックアップの取得中にバッチ業務を実行できます。インメモリRDエリアのバックアップ取得の仕組みについては，「4.1　バックアップを取得するときに気をつけること」を参照してください。

注意

インメモリ化するときのRDエリアの閉塞は，pdhold -cコマンドで行ってください。pdhold -cコマンドで閉塞クローズ状態にすることによって，ほかのトランザクションが対象RDエリアにアクセスできないようにします。

(b)　一つ目のバッチ業務を実行する

バッチ業務を実行します。
インメモリデータバッファの内容が更新され，DB非同期状態になります。

(c)　インメモリデータバッファとRDエリアの同期を取る

インメモリデータバッファとRDエリアの同期を取ります。

pdhold -r RDDATA01,RDIDX01 -b

一つ目のバッチ業務が終わったら，インメモリデータバッファのデータをRDエリアに書き込み，インメモリデータバッファとRDエリアの同期を取ります。これによって，DB同期状態になります。
pdhold -bコマンドを実行すると，インメモリデータバッファのデータをRDエリアに書き込みます。

システムログファイルをスワップします。

pdlogswap -d sys -w

RDDATA01およびRDIDX01の閉塞を解除します。

pdrels -r RDDATA01,RDIDX01

RDDATA01およびRDIDX01のバックアップを取得します。

pdcopy -m C:¥rdarea¥mast¥mast01 -M r
-r RDDATA01,RDIDX01
-b C:¥pdcopy¥backup02 -p C:¥pdcopy¥list02

ポイント

ログレスモードで業務を実行しているため，一つ目のバッチ業務が終わったら，必ずインメモリデータバッファとRDエリアの同期を取ります。ここで同期を取らないと，二つ目のバッチ業務を実行中にバッファ障害が発生した場合，一つ目のバッチ業務から再実行しなくてはなりません。

(d)　二つ目のバッチ業務を実行する

バッチ業務を実行します。
インメモリデータバッファの内容が更新され，DB非同期状態になります。

(e)　インメモリデータバッファとRDエリアの同期を取る

インメモリデータバッファとRDエリアの同期を取ります。

pdhold -r RDDATA01,RDIDX01 -c

二つ目のバッチ業務が終わったら，インメモリデータバッファのデータをRDエリアに書き込み，インメモリデータバッファとRDエリアの同期を取ります。これによって，DB同期状態になります。
pdhold -cコマンドを実行すると，インメモリデータバッファのデータをRDエリアに書き込みます。

注意

ここで，pdhold -cコマンドを使用しているのは，(f)でインメモリ化を解除するためです。インメモリ化を解除するときのRDエリアの閉塞は，pdhold -cコマンドで行います。pdhold -cコマンドで閉塞クローズ状態にすることによって，ほかのトランザクションが対象RDエリアにアクセスできないようにします。

(f)　インメモリ化を解除する

RDDATA01およびRDIDX01のインメモリ化を解除します。

pdmemdb -k rels -r RDDATA01,RDIDX01

インメモリデータバッファがなくなります。これ以降は，グローバルバッファを使用します。

システムログファイルをスワップします。

pdlogswap -d sys -w

RDDATA01およびRDIDX01のバックアップを取得します。

pdcopy -m C:¥rdarea¥mast¥mast01 -M r
-r RDDATA01,RDIDX01
-b C:¥pdcopy¥backup03 -p C:¥pdcopy¥list03

ここでは前の手順と異なり，RDエリアの閉塞クローズを解除する前にバックアップを取得してください。バックアップを取得する前にRDエリアの閉塞クローズを解除すると，ほかのUAPからの更新が発生する場合があります。更新が発生したあとでRDエリアに障害が発生した場合，ログレスモードでバッチ業務を実行しているため，その更新内容を回復することができません。

RDDATA01およびRDIDX01の閉塞を解除します。

pdrels -r RDDATA01,RDIDX01 -o

3.3　オンライン業務に適用する場合

ここでは，インメモリデータ処理をオンライン業務に適用する場合の運用について，例題を使って説明します。

＜この節の構成＞

(1)　例題の条件

(2)　コマンド実行手順

(1)　例題の条件

この例題での条件を次に示します。

オンライン業務でアクセスするRDエリアは，RDDATA01（表格納RDエリア）およびRDIDX01（インデクス格納RDエリア）です。

運用の流れを次の図に示します。

図3-3　オンライン業務に適用する場合の運用の流れ

(2)　コマンド実行手順

コマンドの実行手順を次に示します。

(a)　RDエリアをインメモリ化する

RDDATA01およびRDIDX01を閉塞クローズ状態にします。

pdhold -r RDDATA01,RDIDX01 -c

システムログファイルをスワップします。

pdlogswap -d sys -w

RDDATA01およびRDIDX01をインメモリ化します。

pdmemdb -k stay -r RDDATA01,RDIDX01

このとき，インメモリデータバッファとRDエリアは，DB同期状態になります。

なお，ここでは，複数のRDエリアを一度にインメモリ化しています。この場合の注意事項については，「3.5　複数のRDエリアを一度にインメモリ化する場合の注意事項」を参照してください。

RDDATA01およびRDIDX01の閉塞クローズを解除します。

pdrels -r RDDATA01,RDIDX01 -o

RDDATA01およびRDIDX01のバックアップを取得します。

pdcopy -m C:¥rdarea¥mast¥mast01 -M r
-r RDDATA01,RDIDX01
-b C:¥pdcopy¥backup01 -p C:¥pdcopy¥list01

バックアップの取得方法については，マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

ポイント

ここでは，RDエリアの閉塞クローズを解除してから参照可能モード（-M r）でバックアップを取得しています。通常と異なり，参照可能モードでバックアップを取得している間も更新ができます。このため，バックアップの取得中にオンライン業務を実行できます。インメモリRDエリアのバックアップ取得の仕組みについては，「4.1　バックアップを取得するときに気をつけること」を参照してください。

注意

インメモリ化するときのRDエリアの閉塞は，pdhold -cコマンドで行ってください。pdhold -cコマンドで閉塞クローズ状態にすることによって，ほかのトランザクションが対象RDエリアにアクセスできないようにします。

(b)　オンライン業務を実行する

オンライン業務を実行します。
これによって，インメモリデータバッファの内容が更新され，DB非同期状態になります。

(c)　インメモリデータバッファとRDエリアの同期を取る

インメモリデータバッファとRDエリアの同期を取ります。

pdhold -r RDDATA01,RDIDX01 -c

オンライン業務が終わったら，インメモリデータバッファのデータをRDエリアに書き込み，インメモリデータバッファとRDエリアの同期を取ります。これによって，DB同期状態になります。
pdhold -cコマンドを実行すると，インメモリデータバッファのデータをRDエリアに書き込みます。

注意

ここで，pdhold -cコマンドを使用しているのは，(d)でインメモリ化を解除するためです。インメモリ化を解除するときのRDエリアの閉塞は，pdhold -cコマンドで行います。pdhold -cコマンドで閉塞クローズ状態にすることによって，ほかのトランザクションが対象RDエリアにアクセスできないようにします。

(d)　インメモリ化を解除する

RDDATA01およびRDIDX01のインメモリ化を解除します。

pdmemdb -k rels -r RDDATA01,RDIDX01

インメモリデータバッファがなくなります。これ以降は，グローバルバッファを使用します。

RDDATA01およびRDIDX01の閉塞を解除します。

pdrels -r RDDATA01,RDIDX01 -o

3.4　テスト業務に適用する場合

ここでは，インメモリデータバッファの更新内容を破棄したり，RDエリアのデータをインメモリデータバッファに再読み込みしたりするなどの運用方法を，インメモリデータ処理をテスト業務に適用する場合の応用例を使って説明します。

＜この節の構成＞

(1)　例題の条件

(2)　コマンド実行手順

(1)　例題の条件

この例題での条件を次に示します。

テスト業務を連続して2回実行します。

テスト業務でアクセスするRDエリアは，RDDATA01（表格納RDエリア）およびRDIDX01（インデクス格納RDエリア）です。

テスト業務の更新内容は，RDエリアに書き込まないで破棄します。

運用の流れを次の図に示します。

図3-4　テスト業務に適用する場合の運用の流れ

(2)　コマンド実行手順

コマンドの実行手順を次に示します。

(a)　RDエリアをインメモリ化する

RDDATA01およびRDIDX01を閉塞クローズ状態にします。

pdhold -r RDDATA01,RDIDX01 -c

RDDATA01およびRDIDX01をインメモリ化します。

pdmemdb -k stay -r RDDATA01,RDIDX01

このとき，インメモリデータバッファとRDエリアは，DB同期状態になります。

なお，ここでは，複数のRDエリアをまとめてインメモリ化しています。この場合の注意事項については，「3.5　複数のRDエリアを一度にインメモリ化する場合の注意事項」を参照してください。

注意

インメモリ化するときのRDエリアの閉塞は，pdhold -cコマンドで行ってください。pdhold -cコマンドで閉塞クローズ状態にすることによって，ほかのUAPが対象RDエリアにアクセスできないようにします。

RDDATA01およびRDIDX01の閉塞クローズを解除します。

pdrels -r RDDATA01,RDIDX01 -o

(b)　テスト業務を実行する

1回目のテスト業務を実行します。
インメモリデータバッファの内容が更新され，DB非同期状態になります。

(c)　インメモリデータバッファ上の更新内容を破棄する

RDDATA01およびRDIDX01を閉塞状態にします。

pdhold -r RDDATA01,RDIDX01

インメモリデータバッファ上のデータを破棄して更新を無効にします。

pdmemdb -k cancel -r RDDATA01,RDIDX01

このとき，インメモリデータバッファはバッファ障害状態に，RDエリアは障害閉塞状態になります。

(d)　RDエリアのデータを再読み込みする

RDDATA01およびRDIDX01をクローズ状態にします。

pdclose -r RDDATA01,RDIDX01

RDエリアのデータをインメモリデータバッファへ再読み込みします。

pdmemdb -k reload -r RDDATA01,RDIDX01

これによって，テスト業務実行前の状態に戻ります。このとき，インメモリデータバッファとRDエリアは，DB同期状態になります。

RDDATA01およびRDIDX01の閉塞を解除します。

pdrels -r RDDATA01,RDIDX01

(e)　テスト業務を実行する

2回目のテスト業務を実行します。
インメモリデータバッファの内容が更新され，DB非同期状態になります。

(f)　インメモリ化を強制解除する

RDDATA01およびRDIDX01を閉塞状態にします。

pdhold -r RDDATA01,RDIDX01

RDDATA01およびRDIDX01のインメモリ化を強制解除します。

pdmemdb -k rels -r RDDATA01,RDIDX01 -d

これによって，インメモリデータバッファはなくなり，RDエリアは障害閉塞クローズ状態になります。なお，更新情報はRDエリアに反映されません。

RDDATA01およびRDIDX01の閉塞を解除します。

pdrels -r RDDATA01,RDIDX01 -o

3.5　複数のRDエリアを一度にインメモリ化する場合の注意事項

複数のRDエリアをインメモリ化する場合，一度にまとめてインメモリ化する方法と，個別にインメモリ化する方法があります。運用が煩雑になるのを防ぐため，関連するRDエリアはまとめてインメモリ化することをお勧めしますが，その場合は次のことに注意してください。

＜この節の構成＞

(1)　インメモリ化に失敗したとき

(2)　セグメントの割り当てについて

(1)　インメモリ化に失敗したとき

複数のRDエリアのうち，一つでもインメモリ化に失敗した場合は，一緒に指定したそのほかのRDエリアもインメモリ化しません。この場合は，pdmemdb -k stayコマンドを再実行してください。

なお，HiRDB/パラレルサーバの場合は，バックエンドサーバごとにこの仕組みが適用されます。

（例）

pdmemdb -k stay -r RD01,RD02,RD03,RD04

RD01とRD02はバックエンドサーバ1で，RD03とRD04はバックエンドサーバ2で管理されています。RD02のインメモリ化に失敗した場合，RD01もインメモリ化しません。RD03とRD04はインメモリ化します。

注意

インメモリ化時だけではなく，インメモリ化の解除，再読み込み，インメモリデータバッファの破棄を行うときにも，この仕組みが適用されます。pdmemdbコマンドで複数のRDエリアを操作したときに，一部のRDエリアに対する処理でエラーが発生すると，すべてのRDエリアの処理を無効化します。

(2)　セグメントの割り当てについて

インメモリデータバッファもグローバルバッファと同様に，共用メモリセグメント上に割り当てられます。

インメモリデータバッファに割り当てられる共用メモリセグメントを効率的に使用するために，複数のRDエリアをまとめてインメモリ化した場合は，インメモリ化を解除するときもまとめて解除してください。共用メモリセグメントの割り当ての仕組みを次に示す例を使って説明します。

（例）

共用メモリセグメントの最大サイズ：1GB

RDエリア（RD01）のサイズ：1.5GB

RDエリア（RD02）のサイズ：0.4GB

RDエリア（RD03）のサイズ：0.7GB

この条件下での共用メモリセグメントの割り当ての仕組みを次の図に示します。

図3-5　共用メモリセグメントの割り当ての仕組み

［説明］

RD01とRD02をまとめてインメモリ化し，それとは別にRD03をインメモリ化しました。
RD01のインメモリデータバッファはセグメント1およびセグメント2に割り当てられます。RD02のインメモリデータバッファはRD01と同じセグメント2に割り当てられます。
RD03のインメモリデータバッファはRD01，RD02とは別のセグメント（セグメント3）に割り当てられます。

RD01のインメモリ化を解除すると，セグメント1は解放されて利用できますが，セグメント2のRD01のインメモリデータバッファに割り当てられた領域は解放されません。そのため，このメモリ領域がむだになります。

RD01を再度インメモリ化すると，新しいセグメント（セグメント1とセグメント4）が割り当てられます。

ポイント

メモリ領域がむだになるのを防ぐため，複数のRDエリアをまとめてインメモリ化した場合は，インメモリ化の解除もまとめて行うようにしてください。

4.　運用時に気をつけること

インメモリデータ処理を実行する場合に，そのほかの機能や運用で注意が必要なときがあります。この章では，そのような注意事項について説明します。

＜この章の構成＞

4.1　バックアップを取得するときに気をつけること

4.2　HiRDBを終了するときに気をつけること

4.3　データベース構成変更ユティリティを使用するときに気をつけること

4.4　インナレプリカ機能を使用しているときに気をつけること

4.5　系切り替え機能を使用しているときに気をつけること

4.6　その他の注意事項

4.1　バックアップを取得するときに気をつけること

ここでは，インメモリRDエリアのバックアップを取得するときの注意点について説明します。

なお，インメモリRDエリアのバックアップを取得する場合，バックアップ取得モードは参照・更新不可能モード（-M x），または参照可能モード（-M r）のどちらかです。更新可能モード（-M s）でのバックアップ取得はできません。

また，インメモリRDエリアの差分バックアップは取得できません。

＜この節の構成＞

4.1.1　バックアップを取得するタイミング

4.1.2　参照可能モード（-M r）でバックアップを取得する場合

4.1.1　バックアップを取得するタイミング

バックアップは，次のタイミングで取得してください。

RDエリアをインメモリ化したあと

インメモリデータバッファとRDエリアの同期を取ったあと

バックアップを取得するタイミングを次の図に示します。

図4-1　バックアップを取得するタイミング

RDエリアとインメモリデータバッファの両方に障害が発生した場合，pdrstrコマンドでRDエリアを回復します。前記で説明した時点でバックアップを取得しないと，インメモリ化時点または同期時点（例えば，バッチ業務の開始前の時点）にRDエリアを回復するときの手順が煩雑になります。

また，バックアップを取得するときは，インメモリRDエリア（表格納RDエリア）だけではなく，関連するRDエリア（インデクス格納RDエリアや，ユーザLOB用RDエリア）も一緒にバックアップを取得してください。関連するRDエリアと一緒にバックアップを取得しておかないで，インメモリRDエリアだけをバックアップ取得時点に回復すると，関連するRDエリアとデータの不整合が発生するおそれがあります。

ポイント

バックアップを取得するときは，次のことに注意してください。

DB同期状態のときにバックアップを取得する

関連するRDエリアはまとめてバックアップを取得する

4.1.2　参照可能モード（-M r）でバックアップを取得する場合

参照可能モードでバックアップを取得する場合，インメモリデータ処理を実行していないときの運用と異なる点について説明します。

＜この項の構成＞

(1)　同時に更新業務を実行できる

(2)　バックアップ取得の仕組み

(1)　同時に更新業務を実行できる

参照可能モードでバックアップを取得する場合，同時に更新業務を実行できます（RDエリアのバックアップを取得しながら，インメモリデータバッファの内容を更新できます）。

(2)　バックアップ取得の仕組み

参照可能モードでバックアップを取得する場合，通常はグローバルバッファの更新情報がRDエリアに書き込まれてから，バックアップが取得されます。これによって，最新の状態のバックアップが取得できます。

しかし，インメモリRDエリアのバックアップを参照可能モードで取得する場合，インメモリデータバッファの更新情報はRDエリアに書き込まれません。そのため，いったんインメモリデータバッファとRDエリアの同期を取り，インメモリデータバッファの更新情報をRDエリアに書き込んでからバックアップを取得してください。

バックアップ取得の手順

参照可能モードでバックアップを取得する場合の手順を次に示します。

pdhold -bコマンドでインメモリデータバッファとRDエリアの同期を取ります。

pdlogswapコマンドでシステムログファイルをスワップします。

pdrelsコマンドでRDエリアの閉塞を解除します。

pdcopy -M rコマンドでRDエリアのバックアップを取得します。
バックアップの取得方法については，マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

更新業務を開始します。

参考

「3.2(2)(c)　インメモリデータバッファとRDエリアの同期を取る」に，運用の流れの中でのバックアップの取得手順が記載されています。

ポイント

通常はバックアップとバックアップ取得時点以降のログがあれば，RDエリアを最新の状態に回復できますが，DB非同期状態のときにバックアップを取得した場合，バックアップ取得以前のログも必要になります。

RDエリアを最新の状態に回復するには，インメモリ化した時点（または前回の同期取得時点）からのログが必要になります。DB非同期状態でバックアップを取得した場合の例を次に示します。

DB非同期状態でバックアップを取得した場合の例

DB非同期状態でバックアップを取得した場合の例を次の図に示します。

図4-2　DB非同期状態でバックアップを取得した場合の例

［障害発生時の状況］

9:00にRDエリアをインメモリ化し，その後インメモリデータバッファの内容を更新しました。DB非同期状態のまま，10:00に参照可能モードでRDエリアのバックアップを取得しました。その後，再び更新業務を行ったあと，更新内容をRDエリアに書き込むときに，インメモリデータバッファとRDエリアに障害が発生しました。

［障害回復時の流れ］

この場合，バックアップを取得した時刻は10:00ですが，バックアップファイルの内容は9:00の時点のままになっています。RDエリアを最新（11:00）の状態に回復するには，10:00に取得したバックアップファイルと9:00からのログが必要になります。

通常では，バックアップ取得時点より古いログは使用しません。通常と同じ運用ができるように，インメモリRDエリアのバックアップを参照可能モードで取得する場合は，インメモリデータバッファとRDエリアの同期を取ったあと（DB同期状態のとき）に行うことをお勧めします。

参考

参照・更新不可能モード（-M x）でバックアップを取得する場合は，必ずRDエリアをpdhold -cコマンドで閉塞クローズ状態にするため，インメモリデータバッファの更新情報がRDエリアに書き込まれてDB同期状態になります。したがって，RDエリアを最新の時点に回復する場合は，バックアップとバックアップ取得時点以降のログを使うという通常と同じ考えでRDエリアを回復できます。

4.2　HiRDBを終了するときに気をつけること

インメモリRDエリアがある場合は，HiRDBの正常終了，および計画停止ができません。HiRDBを停止する場合は，インメモリ化を解除してから停止するか，強制終了してください。

なお，HiRDBを強制終了した場合，インメモリデータバッファ上の更新情報はRDエリアに反映されません。また，再開始後，インメモリ化は解除された状態になります。

注意

RDエリアは障害閉塞状態になります。pddblsコマンドでRDエリアの状態を確認してから，pdrelsコマンドで障害閉塞状態を解除してください。

4.3　データベース構成変更ユティリティを使用するときに気をつけること

インメモリRDエリアに対しては，データベース構成変更ユティリティを使った次の操作ができません。次の操作をする場合は，インメモリ化を解除してから実行してください。

RDエリアの拡張

RDエリアの再初期化

RDエリアの削除

RDエリアの移動

RDエリアの属性変更

RDエリアのレプリカ定義（インナレプリカ機能）

RDエリアの構成情報複写（インナレプリカ機能）

RDエリアの統合（インナレプリカ機能）

4.4　インナレプリカ機能を使用しているときに気をつけること

インメモリRDエリアのレプリカRDエリアは作成できません。また，レプリカRDエリアをインメモリ化することもできません。オリジナルRDエリアはインメモリ化できますが，オリジナルRDエリアをインメモリ化したまま，更新可能なオンライン再編成を実行することはできません。更新可能なオンライン再編成をする場合は，オリジナルRDエリアのインメモリ化を解除してから実行してください。

注意

インメモリRDエリアに追い付き状態管理表を作成しないでください。インメモリRDエリアに追い付き状態管理表を格納した場合，HiRDBが異常終了するなどしてインメモリデータバッファの更新情報がなくなると，追い付き反映ができなくなることがあります。

ポイント

レプリカRDエリアは常にインメモリ化できません。

pdorbeginコマンドの実行からpdorendコマンドの実行の間はオリジナルRDエリアもインメモリ化できません。

インメモリ化している間はpdorbeginコマンドを実行できません。

4.5　系切り替え機能を使用しているときに気をつけること

インメモリRDエリアがある場合に系切り替えが発生すると，インメモリデータバッファがなくなってしまうため，更新情報がRDエリアに反映されません。これは，計画系切り替えや，スローダウンによる系切り替えの場合も同じです。そのため，計画系切り替えは，インメモリ化を解除してから実行してください。

なお，インメモリRDエリアがある場合に系切り替えが発生したとき，またはインメモリ化を解除しないで計画系切り替えを実行したとき，インメモリ化していたRDエリアは障害閉塞状態になります。この場合はpdrelsコマンドで閉塞を解除してから，再度インメモリ化してください。

注意

系が切り替わると，インメモリデータバッファのデータがなくなり，更新情報がRDエリアに反映されません。また，インメモリ化していたRDエリアは障害閉塞状態になります。

1：1スタンバイレス型系切り替え機能を使用している場合，代替BES下のRDエリアのオープン契機は常にSCHEDULE属性になります。このSCHEDULE属性を変えることができないため，代替BES下のRDエリアをインメモリ化することはできません。

4.6　その他の注意事項

ここでは，その他の注意事項について説明します。

＜この節の構成＞

(1)　システム用RDエリアを更新するような操作を行う場合

(2)　セキュリティ監査機能を使用している場合

(3)　改竄防止表を定義している場合

(4)　システム構成変更コマンドを実行する場合

(5)　修正版HiRDBの入れ替えを行う場合

(6)　RDエリアの自動増分機能を使用する場合

(7)　アンロードレスシステムログ運用を適用している場合

(8)　ローカルバッファを割り当てた場合

(9)　更新可能バックアップ閉塞を実行する場合

(1)　システム用RDエリアを更新するような操作を行う場合

インメモリRDエリアに対して，システム用RDエリアを更新するような操作（例えば，CREATE TABLEや，ALTER TABLEなど）を行わないでください。インメモリRDエリアに対して，システム用RDエリアを更新するような操作を行うと，HiRDBが異常終了するなどの障害が発生したときに，システム用RDエリアと同期を合わせて回復する必要があるため，回復作業が難しくなります。

システム用RDエリアを更新するような操作については，マニュアル「HiRDB Version 8 システム運用ガイド」の「同時にバックアップを取得する必要があるRDエリア」を参照してください。

(2)　セキュリティ監査機能を使用している場合

監査証跡表を格納しているRDエリアをインメモリ化しないでください。インメモリ化している間にHiRDBが強制終了または異常終了した場合，インメモリデータバッファ上の更新情報がRDエリア（監査証跡表）に反映されません。

監査証跡表も，ほかの表と同様にデータベース回復ユティリティを使用すれば，更新情報を反映してインメモリRDエリアを最新の状態に回復できますが，セキュリティ上の観点から，インメモリデータ処理の適用はお勧めしません。

また，監査証跡表の自動データロード機能は更新前ログ取得モードで動作するため，自動データロード機能を使用している場合は，監査証跡表に更新情報を反映できなくなるおそれがあります。

(3)　改竄防止表を定義している場合

改竄防止表を格納しているRDエリアをインメモリ化しないでください。インメモリ化している間にHiRDBが強制終了または異常終了した場合，インメモリデータバッファ上の更新情報がRDエリア（改竄防止表）に反映されません。

改竄防止表も，ほかの表と同様にデータベース回復ユティリティを使用すれば，更新情報を反映してインメモリRDエリアを最新の状態に回復できますが，セキュリティ上の観点から，インメモリデータ処理の適用はお勧めしません。

(4)　システム構成変更コマンドを実行する場合

インメモリRDエリアがある場合は，システム構成変更コマンド（pdchgconf）を実行できません。システム構成変更コマンドを実行する場合は，インメモリ化を解除してから行ってください。

(5)　修正版HiRDBの入れ替えを行う場合

インメモリRDエリアがある場合は，修正版HiRDBの入れ替え（pdprgrenew）を実行できません。修正版HiRDBの入れ替えを行う場合は，インメモリ化を解除してから行ってください。

(6)　RDエリアの自動増分機能を使用する場合

インメモリRDエリアには，RDエリアの自動増分は適用されません。ただし，インメモリ化を解除すれば，自動増分が適用されます。そのため，インメモリ化を解除したあとに再度RDエリアの容量不足が発生した場合は，自動的にRDエリアの容量が拡張されます。

(7)　アンロードレスシステムログ運用を適用している場合

バックアップ対象RDエリアにインメモリRDエリアがある場合は，ログポイント情報ファイルを取得できません。

(8)　ローカルバッファを割り当てた場合

インメモリRDエリアにローカルバッファを割り当てた場合でも，そのRDエリアに対するアクセスはインメモリデータバッファを介して行われます。ローカルバッファは使用されません。

(9)　更新可能バックアップ閉塞を実行する場合

インメモリRDエリアに対しては，更新可能バックアップ閉塞（pdhold -b -u）を実行できません。

5.　トラブルシュート

この章では，インメモリデータ処理中に障害が発生した場合の回復方法について説明します。

＜この章の構成＞

5.1　障害回復の基本的な考え方

5.2　障害が発生したときに最初に確認すること

5.3　RDエリア障害が発生した場合の回復手順

5.4　バッファ障害が発生した場合の回復手順

5.1　障害回復の基本的な考え方

ここでは，インメモリデータ処理中に発生した障害を回復するときの，基本的な考え方について説明します。

注意

HiRDBが異常終了して再開始した場合，異常終了する前までの更新情報はRDエリアに反映されません（HiRDBが自動的に最新の状態に回復することはありません）。また，インメモリデータバッファはなくなり，インメモリ化が解除された状態になります。

＜この節の構成＞

(1)　障害の種類

(2)　回復方法を決めるときの基準

(1)　障害の種類

インメモリデータ処理中に障害が発生した場合，インメモリデータバッファの状態とRDエリアの状態を確認する必要があります。

インメモリデータ処理中の障害には，次の3種類があります。

RDエリア障害

RDエリアに障害が発生している状態です。

RDエリアの障害を取り除いたあと，インメモリデータバッファ上のデータをRDエリアに書き込むことで回復できます。インメモリデータバッファ上のデータは最新であるため，RDエリアも最新の状態に回復できます。

バッファ障害

インメモリデータバッファに障害が発生している状態です。

最新の状態に回復する場合は，いったんインメモリ化を解除してから，アンロードログファイルを使ってpdrstrコマンドでRDエリアを最新の状態に回復し，再度インメモリ化します。または，インメモリ化したままアンロードログファイルを使ってpdrstrコマンドでRDエリアを最新の状態に回復し，その内容をインメモリデータバッファに再読み込みします。

同期取得時点に回復する場合は，いったんインメモリ化を解除してから，RDエリアを再度インメモリ化します。または，RDエリアの内容をインメモリデータバッファに再読み込みします。

RDエリア障害かつバッファ障害

インメモリデータバッファとRDエリアの両方に障害が発生している状態です。

最新の状態に回復する場合は，バックアップファイルとアンロードログファイルを使ってpdrstrコマンドでRDエリアを最新の状態に回復し，その内容を再度インメモリ化します。

同期取得時点に回復する場合は，バックアップファイルを使ってpdrstrコマンドでRDエリアを同期取得時点に回復し，その内容を再度インメモリ化します。

これらの障害状態については，pddbls -Mコマンドで確認できます。詳細については，「5.2　障害が発生したときに最初に確認すること」を参照してください。

ポイント

バッファ障害で，かつRDエリアが障害閉塞クローズ状態のときだけ，データベース回復ユティリティ（pdrstr）を実行できます。RDエリア障害が発生している場合（RDエリア障害かつバッファ障害を含む）は，一度インメモリ化を解除してから回復する必要があります。

(2)　回復方法を決めるときの基準

バッファ障害が発生している場合，回復方法は次の条件によって異なります。

どの時点に回復するか（最新の状態か，または同期取得時点か）

同期取得時点に回復する場合，関連RDエリアがあるか

詳細については，「図5-2　回復手順の参照先を決めるフローチャート」を参照してください。

5.2　障害が発生したときに最初に確認すること

障害が発生したときは，まずpddbls -Mコマンドを実行して障害発生個所を確認します。pddbls -Mコマンドの実行結果を次の図に示します。

図5-1　pddbls -Mコマンドの実行結果

MEMORY-STATUSに表示されるRDエリアとインメモリデータバッファの状態から障害発生個所を確認します。RDエリアとインメモリデータバッファの状態を次の表に示します。

表5-1　RDエリアとインメモリデータバッファの状態

MEMORY-STATUSの表示 | 状態 | 意味
Y(SYNC) | 正常 | DB同期状態
Y(ASYNC) | 正常 | DB非同期状態
Y(OBST-MEM) | 障害発生 | バッファ障害状態
Y(OBST-DB) | 障害発生 | RDエリア障害状態
Y(OBST-ALL) | 障害発生 | RDエリア障害状態かつバッファ障害状態
N | 正常 | インメモリ化していない

バッファ障害が発生している場合は，データベースをどの時点に回復するか（最新の状態か，または同期取得時点か）を決めます。また，関連RDエリアがあるかどうかについても確認してください。回復手順の参照先を決めるフローチャートを次の図に示します。

5.3以降では，それぞれの回復方法について説明しています。どのパターンに該当するか，次のフローチャートで確認してください。

図5-2　回復手順の参照先を決めるフローチャート

ポイント

RDエリア障害だけの場合は，常に最新の状態に回復できます。

最新の状態に回復する場合は，関連RDエリアの有無を意識する必要はありません。

同期取得時点とは，DB同期状態のときを指します（インメモリ化した時点，またはRDエリアとインメモリデータバッファの同期を取った時点）。

ログレスモードでバッチ業務を実行中に障害が発生した場合

ログレスモードでバッチ業務を実行中に障害が発生した場合は，次のフローチャートに従ってください。回復手順の参照先を決めるフローチャート（ログレスモードでバッチ業務を実行した場合）を次の図に示します。

図5-3　回復手順の参照先を決めるフローチャート（ログレスモードでバッチ業務を実行した場合）

ポイント

RDエリア障害だけの場合は，インメモリデータバッファ上に最新のデータがあるため，再度インメモリデータバッファとインメモリRDエリアの同期を取ることで，常に最新の状態に回復できます。

バッファ障害が発生している場合（RDエリア障害かつバッファ障害を含む）は，同期取得時点から業務を再実行する必要があります。

同期取得時点とは，DB同期状態のときを指します（インメモリ化した時点，またはRDエリアとインメモリデータバッファの同期を取った時点）。

5.3　RDエリア障害が発生した場合の回復手順

ここでは，RDエリア障害が発生した場合の回復手順について，例題を使って説明します。

＜この節の構成＞

(1)　障害発生時の状況

(2)　障害回復の手順

(3)　障害回復時のインメモリデータバッファおよびインメモリRDエリアの状態遷移

(1)　障害発生時の状況

RDDATA01（表格納RDエリア），RDLOB01（LOBデータ格納RDエリア）およびRDIDX01（インデクス格納RDエリア）をインメモリ化しました。RDLOB02（LOBデータ格納RDエリア）はインメモリ化していません。

また，RDDATA01，RDLOB01およびRDIDX01は異なるHiRDBファイルシステム領域に作成されているとします。

障害発生時の状況を次の図に示します。

図5-4　障害発生時の状況（RDエリア障害が発生した場合）

［説明］

RDDATA01，RDLOB01およびRDIDX01をインメモリ化しました。

更新業務を実行し，インメモリデータバッファとRDLOB02のデータを更新しました。

pdhold -bコマンドでインメモリデータバッファとRDエリアの同期を取りました。このとき，RDDATA01およびRDLOB01への書き込みは正常にできましたが，RDIDX01が書き込みエラーによってRDエリア障害になりました。

このときのインメモリデータバッファと各RDエリアの状態を次に示します。

インメモリデータバッファの状態：正常（最新の状態）

RDDATA01の状態：正常（最新の状態）

RDLOB01の状態：正常（最新の状態）

RDIDX01の状態：RDエリア障害

RDLOB02の状態：正常（最新の状態）

(2)　障害回復の手順

インメモリデータバッファ上に最新のデータがあるため，インメモリデータバッファとRDIDX01の同期を再度取り，RDIDX01を最新の状態に回復します。

障害回復の手順を次の図に示します。

図5-5　障害回復の手順（RDエリア障害が発生した場合）

コマンドの実行手順を次に示します。

サーバプロセスをリフレッシュします。

pdpfresh -s BES1

ディスク交換を行う場合にこの操作を実行してください。この操作を実行しないとディスクを切り離すことができません。

RDDATA01およびRDLOB01の閉塞を解除します。

pdrels -r RDDATA01,RDLOB01

pdhold -bコマンドを実行したため，RDDATA01およびRDLOB01が参照可能バックアップ閉塞状態になっています。閉塞を解除して，RDDATA01およびRDLOB01に対する更新業務を続行します。

RDIDX01の障害を取り除きます。
ディスク障害が発生した場合は，マニュアル「HiRDB Version 8 システム運用ガイド」の「ディスク障害が発生したときの対処方法」を参照して対処してください。

インメモリデータバッファとRDIDX01の同期を取ります。

pdhold -r RDIDX01 -b

インメモリデータバッファ上のデータがRDIDX01に書き込まれました。これによって，RDIDX01は最新の状態に回復されました。

RDIDX01の閉塞を解除します。

pdrels -r RDIDX01

参考

RDエリア障害の回復を行う場合は，バックアップファイルを使用しません。

(3)　障害回復時のインメモリデータバッファおよびインメモリRDエリアの状態遷移

障害回復時，インメモリデータバッファの状態およびインメモリRDエリアの状態は次の表のように遷移します。表の項番は，「(2)障害回復の手順」の実行手順の番号と対応しています。なお，表中の実行コマンドは，一部オプションを省略しています。

表5-2　障害回復時のインメモリデータバッファおよびインメモリRDエリアの状態遷移

項番 | 実行コマンド | 障害が発生したRDエリア | 障害が発生していないRDエリア
RDIDX01 | RDDATA01，RDLOB01
コマンド実行後のバッファの状態※1 | コマンド実行後のRDエリアの状態※2 | コマンド実行後のバッファの状態※1 | コマンド実行後のRDエリアの状態※2
－ | － | RDエリア障害状態 | 障害閉塞かつオープン状態 | DB同期状態 | 参照可能バックアップ閉塞状態
1 | pdpfresh | ↓ | ↓ | ↓ | ↓
2 | pdrels -r RDDATA01,RDLOB01 | ↓ | ↓ | ↓ | オープン状態
3 | － | ↓ | ↓ | ↓ | ↓
4 | pdhold -r RDIDX01 -b | DB同期状態 | 参照可能バックアップ閉塞状態 | ↓ | ↓
5 | pdrels -r RDIDX01 | ↓ | オープン状態 | ↓ | ↓

（凡例）

↓：状態の変化なし

－：該当しない

注※1　バッファの状態とは，インメモリデータバッファの状態のことです。

注※2　RDエリアの状態とは，インメモリRDエリアの状態のことです。

5.4　バッファ障害が発生した場合の回復手順

ここでは，バッファ障害が発生した場合の回復手順について，例題を使って説明します。また，インメモリデータバッファとRDエリアの両方に障害が発生している場合も，基本的な回復手順は同じであるため，ここで一緒に説明します。

なお，ここで説明する回復手順は，インメモリ化するときにバックアップを取得していることを前提としています。バックアップを取得するタイミングについては，「4.1.1　バックアップを取得するタイミング」を参照してください。

＜この節の構成＞

5.4.1　最新の状態に回復する場合

5.4.2　同期取得時点に回復する場合（関連RDエリアなし）

5.4.3　同期取得時点に回復する場合（関連RDエリアあり）

5.4.1　最新の状態に回復する場合

最新の状態に回復する場合について説明します。

＜この項の構成＞

(1)　障害発生時の状況

(2)　障害回復の手順

(3)　障害回復時のインメモリデータバッファおよびインメモリRDエリアの状態遷移

(1)　障害発生時の状況

RDDATA01（表格納RDエリア），RDLOB01（LOBデータ格納RDエリア）およびRDIDX01（インデクス格納RDエリア）をインメモリ化しました。RDLOB02（LOBデータ格納RDエリア）はインメモリ化していません。

障害発生時の状況を次の図に示します。

図5-6　障害発生時の状況（バッファ障害を最新の状態に回復する場合）

［説明］

RDDATA01，RDLOB01およびRDIDX01をインメモリ化しました。また，関連するRDエリアRDLOB02と一緒にバックアップを取得しました。

更新業務を実行し，インメモリデータバッファとRDLOB02のデータを更新しました。

pdhold -bコマンドでインメモリデータバッファとRDエリアの同期を取りました。このとき，バッファ障害になりました。

このときのインメモリデータバッファと各RDエリアの状態を次に示します。

インメモリデータバッファの状態：バッファ障害

RDDATA01の状態：障害閉塞状態（同期取得時（インメモリ化時）の状態）

RDLOB01の状態：障害閉塞状態（同期取得時（インメモリ化時）の状態）

RDIDX01の状態：障害閉塞状態（同期取得時（インメモリ化時）の状態）

RDLOB02の状態：正常（最新の状態）

(2)　障害回復の手順

pdrstrコマンドでRDDATA01，RDLOB01およびRDIDX01を最新の状態に回復します。そのあとに，RDDATA01，RDLOB01およびRDIDX01を再度インメモリ化します。

障害回復の手順を次の図に示します。

図5-7　障害回復の手順（バッファ障害を最新の状態に回復する場合）

［説明］

RDDATA01，RDLOB01およびRDIDX01のインメモリ化を解除します。

アンロードログファイルを使ってRDDATA01，RDLOB01およびRDIDX01を最新の状態に回復します（RDDATA01，RDLOB01およびRDIDX01のデータはバックアップ取得時点と同じ状態であるため，回復時にバックアップファイルは使用しません）。
ただし，RDエリア障害とバッファ障害の両方が発生している場合は，バックアップファイルとアンロードログファイルを使ってRDDATA01，RDLOB01およびRDIDX01を回復します。

RDDATA01およびRDIDX01のデータを再度インメモリ化します。

コマンドの実行手順を次に示します。

RDDATA01，RDLOB01およびRDIDX01をクローズ状態にします。

pdclose -r RDDATA01,RDLOB01,RDIDX01

インメモリ化を強制解除するには，RDエリアの状態が障害閉塞クローズ状態になっている必要があるため，ここでRDDATA01，RDLOB01およびRDIDX01をクローズしています。

RDDATA01，RDLOB01およびRDIDX01のインメモリ化を強制的に解除します。

pdmemdb -k rels -r RDDATA01,RDLOB01,RDIDX01 -d

現用のシステムログファイルを調べます。

pdlogls -d sys

システムログファイルをスワップします。

pdlogswap -d sys -w

現用だったファイルの内容をアンロードします。

pdlogunld -d sys -g log01 -o C:¥usr¥hirdb¥pdlogunld¥unldlog01

RDDATA01，RDLOB01およびRDIDX01をアンロードログファイルから最新の状態に回復します。

pdrstr -m C:¥rdarea¥mast¥mast01 -d C:¥usr¥hirdb¥pdlogunld
-p C:¥usr¥hirdb¥pdrstr¥list¥list01
-w C:¥tmp¥sortwork -r RDDATA01,RDLOB01,RDIDX01

RDDATA01，RDLOB01およびRDIDX01の障害閉塞クローズを解除します。

pdrels -r RDDATA01,RDLOB01,RDIDX01 -o

再度インメモリ化するには，RDエリアの状態がコマンド閉塞クローズ状態になっている必要があるため，ここでいったんRDDATA01，RDLOB01およびRDIDX01の障害閉塞クローズを解除しています。

RDDATA01，RDLOB01およびRDIDX01をコマンド閉塞クローズ状態にします。

pdhold -r RDDATA01,RDLOB01,RDIDX01 -c

RDDATA01，RDLOB01およびRDIDX01を再度インメモリ化します。

pdmemdb -k stay -r RDDATA01,RDLOB01,RDIDX01

これによって，インメモリデータバッファは最新の状態に回復されました。

RDDATA01，RDLOB01およびRDIDX01の閉塞クローズを解除します。

pdrels -r RDDATA01,RDLOB01,RDIDX01 -o

これによって，業務が再開できるようになりました。

RDエリア障害かつバッファ障害の場合

RDエリア障害とバッファ障害の両方が発生している場合は，手順6.でバックアップファイルとアンロードログファイルからRDエリアを最新の状態に回復してください。それ以外の手順については，バッファ障害の場合と同じです。

(3)　障害回復時のインメモリデータバッファおよびインメモリRDエリアの状態遷移

障害回復時，インメモリデータバッファの状態およびインメモリRDエリアの状態は次の表のように遷移します。表の項番は，「(2)障害回復の手順」の実行手順の番号と対応しています。なお，表中の実行コマンドは，一部オプションを省略しています。

表5-3　障害回復時のインメモリデータバッファおよびインメモリRDエリアの状態遷移

項番 | 実行コマンド | コマンド実行後のバッファの状態※1 | コマンド実行後のRDエリアの状態※2
RDDATA01，RDLOB01，RDIDX01
－ | － | バッファ障害状態 | 障害閉塞かつオープン状態
1 | pdclose -r RDDATA01,RDLOB01,RDIDX01 | ↓ | 障害閉塞かつクローズ状態
2 | pdmemdb -k rels -r RDDATA01,RDLOB01,RDIDX01 -d | 未使用状態 | ↓
3 | pdlogls -d sys | ↓ | ↓
4 | pdlogswap -d sys -w | ↓ | ↓
5 | pdlogunld -d sys | ↓ | ↓
6 | pdrstr -r RDDATA01,RDLOB01,RDIDX01 | ↓ | ↓
7 | pdrels -r RDDATA01,RDLOB01,RDIDX01 -o | ↓ | オープン状態
8 | pdhold -r RDDATA01,RDLOB01,RDIDX01 -c | ↓ | コマンド閉塞かつクローズ状態
9 | pdmemdb -k stay -r RDDATA01,RDLOB01,RDIDX01 | DB同期状態 | ↓
10 | pdrels -r RDDATA01,RDLOB01,RDIDX01 -o | ↓ | オープン状態

（凡例）

↓：状態の変化なし

－：該当しない

注※1　バッファの状態とは，インメモリデータバッファの状態のことです。

注※2　RDエリアの状態とは，インメモリRDエリアの状態のことです。

5.4.2　同期取得時点に回復する場合（関連RDエリアなし）

同期取得時点に回復する場合について説明します。

＜この項の構成＞

(1)　障害発生時の状況

(2)　障害回復の手順

(3)　障害回復時のインメモリデータバッファおよびインメモリRDエリアの状態遷移

(1)　障害発生時の状況

RDDATA01（表格納RDエリア），RDLOB01（LOBデータ格納RDエリア）およびRDIDX01（インデクス格納RDエリア）をインメモリ化しました。

障害発生時の状況を次の図に示します。

図5-8　障害発生時の状況（バッファ障害を同期取得時点に回復する場合（関連RDエリアなし））

［説明］

RDDATA01，RDLOB01およびRDIDX01をインメモリ化しました。また，このとき，バックアップを取得しました。

更新業務を実行し，インメモリデータバッファ上のデータを更新しました。

pdhold -bコマンドでインメモリデータバッファとRDエリアの同期を取ろうとしましたが，バッファ障害によって，RDDATA01，RDLOB01およびRDIDX01との同期が取れませんでした。

このときのインメモリデータバッファと各RDエリアの状態を次に示します。

インメモリデータバッファの状態：バッファ障害

RDDATA01の状態：障害閉塞状態（同期取得時（インメモリ化時）の状態）

RDLOB01の状態：障害閉塞状態（同期取得時（インメモリ化時）の状態）

RDIDX01の状態：障害閉塞状態（同期取得時（インメモリ化時）の状態）

(2)　障害回復の手順

RDDATA01，RDLOB01およびRDIDX01中のデータは同期取得時（インメモリ化時）のままです。RDDATA01，RDLOB01およびRDIDX01のデータを再度インメモリ化してインメモリデータバッファを同期取得時点に回復します。

障害回復の手順を次の図に示します。

図5-9　障害回復の手順（バッファ障害を同期取得時点に回復する場合（関連RDエリアなし））

［説明］

RDDATA01，RDLOB01およびRDIDX01のインメモリ化を解除します。

RDDATA01，RDLOB01およびRDIDX01を再度インメモリ化します。
ただし，RDエリア障害とバッファ障害の両方が発生している場合は，バックアップファイルを使ってRDDATA01，RDLOB01およびRDIDX01を回復したあとにインメモリ化します。

コマンドの実行手順を次に示します。

RDDATA01，RDLOB01およびRDIDX01をクローズ状態にします。

pdclose -r RDDATA01,RDLOB01,RDIDX01

インメモリ化を強制解除するには，RDエリアの状態が障害閉塞クローズ状態になっている必要があるため，ここでRDDATA01，RDLOB01およびRDIDX01をクローズしています。

RDDATA01，RDLOB01およびRDIDX01のインメモリ化を強制的に解除します。

pdmemdb -k rels -r RDDATA01,RDLOB01,RDIDX01 -d

RDDATA01，RDLOB01およびRDIDX01の障害閉塞クローズを解除します。

pdrels -r RDDATA01,RDLOB01,RDIDX01 -o

再度インメモリ化するには，RDエリアの状態がコマンド閉塞クローズ状態になっている必要があるため，ここでいったんRDDATA01，RDLOB01およびRDIDX01の障害閉塞クローズを解除しています。

RDDATA01，RDLOB01およびRDIDX01をコマンド閉塞クローズ状態にします。

pdhold -r RDDATA01,RDLOB01,RDIDX01 -c

RDDATA01，RDLOB01およびRDIDX01を再度インメモリ化します。

pdmemdb -k stay -r RDDATA01,RDLOB01,RDIDX01

これによって，インメモリデータバッファは同期取得時点の状態に回復されました。

RDDATA01，RDLOB01およびRDIDX01の閉塞クローズを解除します。

pdrels -r RDDATA01,RDLOB01,RDIDX01 -o

これによって，業務が再開できるようになりました。

RDエリア障害かつバッファ障害の場合

RDエリア障害とバッファ障害の両方が発生している場合は，手順2.でインメモリ化を解除したあと，バックアップファイルからRDエリアを同期取得時点に回復してください。それ以外の手順については，バッファ障害の場合と同じです。

(3)　障害回復時のインメモリデータバッファおよびインメモリRDエリアの状態遷移

障害回復時，インメモリデータバッファの状態およびインメモリRDエリアの状態は次の表のように遷移します。表の項番は，「(2)障害回復の手順」の実行手順の番号と対応しています。なお，表中の実行コマンドは，一部オプションを省略しています。

表5-4　障害回復時のインメモリデータバッファおよびインメモリRDエリアの状態遷移

項番 | 実行コマンド | コマンド実行後のバッファの状態※1 | コマンド実行後のRDエリアの状態※2
RDDATA01，RDLOB01，RDIDX01
－ | － | バッファ障害状態 | 障害閉塞かつオープン状態
1 | pdclose -r RDDATA01,RDLOB01,RDIDX01 | ↓ | 障害閉塞かつクローズ状態
2 | pdmemdb -k rels -r RDDATA01,RDLOB01,RDIDX01 -d | 未使用状態 | ↓
3 | pdrels -r RDDATA01,RDLOB01,RDIDX01 -o | ↓ | オープン状態
4 | pdhold -r RDDATA01,RDLOB01,RDIDX01 -c | ↓ | コマンド閉塞かつクローズ状態
5 | pdmemdb -k stay -r RDDATA01,RDLOB01,RDIDX01 | DB同期状態 | ↓
6 | pdrels -r RDDATA01,RDLOB01,RDIDX01 -o | ↓ | オープン状態

（凡例）

↓：状態の変化なし

－：該当しない

注※1　バッファの状態とは，インメモリデータバッファの状態のことです。

注※2　RDエリアの状態とは，インメモリRDエリアの状態のことです。

5.4.3　同期取得時点に回復する場合（関連RDエリアあり）

同期取得時点に回復する場合について説明します。関連するRDエリアがあるため，それらも一緒に同期取得時点に戻します。

＜この項の構成＞

(1)　障害発生時の状況

(2)　障害回復の手順

(3)　障害回復時のインメモリデータバッファ，インメモリRDエリアおよびインメモリ化していないRDエリアの状態遷移

(1)　障害発生時の状況

RDDATA01（表格納RDエリア），RDLOB01（LOBデータ格納RDエリア）およびRDIDX01（インデクス格納RDエリア）をインメモリ化しました。RDLOB02（LOBデータ格納RDエリア）はインメモリ化していません。

障害発生時の状況を次の図に示します。

図5-10　障害発生時の状況（バッファ障害を同期取得時点に回復する場合（関連RDエリアあり））

［説明］

RDDATA01，RDLOB01およびRDIDX01をインメモリ化しました。また，このとき，関連するRDエリアRDLOB02も一緒にバックアップを取得しました。

更新業務を実行し，インメモリデータバッファとRDLOB02のデータを更新しました。

pdhold -bコマンドでインメモリデータバッファとRDエリアの同期を取りました。このとき，RDDATA01およびRDLOB01への書き込みは正常にできましたが，RDIDX01への書き込み中にバッファ障害になりました。

このときのインメモリデータバッファと各RDエリアの状態を次に示します。

インメモリデータバッファの状態：バッファ障害

RDDATA01の状態：正常（最新の状態）

RDLOB01の状態：正常（最新の状態）

RDIDX01の状態：障害閉塞状態（同期取得時（インメモリ化時）の状態）

RDLOB02の状態：正常（最新の状態）

(2)　障害回復の手順

pdrstrコマンドでRDDATA01，RDLOB01，RDIDX01およびRDLOB02を同期取得時点（インメモリ化時点）に回復します。そのあとに，RDDATA01，RDLOB01およびRDIDX01のデータをインメモリデータバッファに再度インメモリ化します。

障害回復の手順を次の図に示します。

図5-11　障害回復の手順（バッファ障害を同期取得時点に回復する場合（関連RDエリアあり））

［説明］

RDDATA01，RDLOB01およびRDIDX01のインメモリ化を解除します。

バックアップファイルを使ってRDDATA01，RDLOB01，RDIDX01およびRDLOB02を同期取得時点に回復します。

RDDATA01，RDLOB01およびRDIDX01を再度インメモリ化します。

コマンドの実行手順を次に示します。

RDDATA01およびRDLOB01の閉塞を解除します。

pdrels -r RDDATA01,RDLOB01

pdhold -bコマンドを実行したため，RDDATA01およびRDLOB01が参照可能バックアップ閉塞状態になっています。インメモリ化を解除するにはコマンド閉塞クローズ状態になっている必要があるため，いったん参照可能バックアップ閉塞を解除しています。

RDDATA01，RDLOB01およびRDLOB02をコマンド閉塞クローズ状態にします。

pdhold -r RDDATA01,RDLOB01,RDLOB02 -c

RDDATA01およびRDLOB01のインメモリ化を解除します。

pdmemdb -k rels -r RDDATA01,RDLOB01

RDIDX01をクローズ状態にします。

pdclose -r RDIDX01

インメモリ化を強制解除するには，RDエリアの状態が障害閉塞クローズ状態になっている必要があるため，ここでRDIDX01をクローズしています。

RDIDX01のインメモリ化を強制的に解除します。

pdmemdb -k rels -r RDIDX01 -d

RDDATA01，RDLOB01，RDIDX01，およびRDLOB02をバックアップファイルから同期取得時点に回復します。

pdrstr -m C:¥rdarea¥mast¥mast01 -b C:¥usr¥hirdb¥pdcopy¥backup01
-p C:¥usr¥hirdb¥pdrstr¥list¥list01 -r RDDATA01,RDLOB01,RDIDX01,RDLOB02

RDIDX01の障害閉塞クローズを解除します。

pdrels -r RDIDX01 -o

再度インメモリ化するには，RDエリアの状態がコマンド閉塞クローズ状態になっている必要があるため，ここでいったんRDIDX01の障害閉塞クローズを解除しています。

RDIDX01をコマンド閉塞クローズ状態にします。

pdhold -r RDIDX01 -c

RDDATA01，RDLOB01およびRDIDX01を再度インメモリ化します。

pdmemdb -k stay -r RDDATA01,RDLOB01,RDIDX01

これによって，インメモリデータバッファは同期取得時点の状態に回復されました。

RDDATA01，RDLOB01，RDIDX01，およびRDLOB02の閉塞クローズを解除します。

pdrels -r RDDATA01,RDLOB01,RDIDX01,RDLOB02 -o

これによって，業務が再開できるようになりました。

(3)　障害回復時のインメモリデータバッファ，インメモリRDエリアおよびインメモリ化していないRDエリアの状態遷移

障害回復時，障害回復時のインメモリデータバッファ，インメモリRDエリアおよびインメモリ化していないRDエリアの状態は次の表のように遷移します。表の項番は，「(2)障害回復の手順」の実行手順の番号と対応しています。なお，表中の実行コマンドは，一部オプションを省略しています。

表5-5　障害回復時のインメモリデータバッファ，インメモリRDエリアおよびインメモリ化していないRDエリアの状態遷移

項番 | 実行コマンド | 正常に書き込みできたRDエリア | 正常に書き込みできなかったRDエリア | インメモリ化していないRDエリア
RDDATA01，RDLOB01 | RDIDX01 | RDLOB02
コマンド実行後のバッファの状態※１ | コマンド実行後のRDエリアの状態※2 | コマンド実行後のバッファの状態※1 | コマンド実行後のRDエリアの状態※2 | コマンド実行後のRDエリアの状態
－ | － | DB同期状態 | 参照可能バックアップ閉塞状態 | バッファ障害状態 | 障害閉塞かつオープン状態 | オープン状態
1 | pdrels -r RDDATA01,RDLOB01 | ↓ | オープン状態 | ↓ | ↓ | ↓
2 | pdhold -r RDDATA01,RDLOB01,RDLOB02 -c | ↓ | コマンド閉塞かつクローズ状態 | ↓ | ↓ | コマンド閉塞かつクローズ状態
3 | pdmemdb -k rels -r RDDATA01,RDLOB01 | 未使用状態 | ↓ | ↓ | ↓ | ↓
4 | pdclose -r RDIDX01 | ↓ | ↓ | ↓ | 障害閉塞かつクローズ状態 | ↓
5 | pdmemdb -k rels -r RDIDX01 -d | ↓ | ↓ | 未使用状態 | ↓ | ↓
6 | pdrstr -r RDDATA01,RDLOB01,RDIDX01,RDLOB02 | ↓ | ↓ | ↓ | ↓ | ↓
7 | pdrels -r RDIDX01 -o | ↓ | ↓ | ↓ | オープン状態 | ↓
8 | pdhold -r RDIDX01 -c | ↓ | ↓ | ↓ | コマンド閉塞かつクローズ状態 | ↓
9 | pdmemdb -k stay -r RDDATA01,RDLOB01,RDIDX01 | DB同期状態 | ↓ | DB同期状態 | ↓ | ↓
10 | pdrels -r RDDATA01,RDLOB01,RDIDX01,RDLOB02 -o | ↓ | オープン状態 | ↓ | オープン状態 | オープン状態

（凡例）

↓：状態の変化なし

－：該当しない

注※1　バッファの状態とは，インメモリデータバッファの状態のことです。

注※2　RDエリアの状態とは，インメモリRDエリアの状態のことです。

6.　こんなときどうする

この章では，インメモリデータ処理を実行する場合に知っておくとよい操作について説明します。

＜この章の構成＞

6.1　インメモリデータバッファとRDエリアの同期を取るには

6.2　インメモリデータバッファの利用状況を確認するには

6.3　インメモリデータバッファの統計情報を確認するには

6.4　強制的にインメモリ化を解除するには

6.5　インメモリデータバッファ上のデータを破棄するには

6.6　RDエリアのデータをインメモリデータバッファに再読み込みするには

6.1　インメモリデータバッファとRDエリアの同期を取るには

ここでは，インメモリデータバッファとRDエリアの同期を取る方法，およびそのタイミングについて説明します。

＜この節の構成＞

(1)　同期を取る方法

(2)　同期を取るタイミング

(1)　同期を取る方法

インメモリデータバッファとRDエリアの同期を取る場合，ほかのトランザクションが対象RDエリアを参照できるように，通常はpdhold -bコマンドを使います。

また，pdhold -b以外のコマンドでも，インメモリデータバッファとRDエリアの同期が取れます。インメモリデータバッファとRDエリアの同期を取るコマンドを次に示します。

pdhold -b

pdhold -b -w

pdhold -c

pdclose

なお，どのコマンドを使用しても，同期の取得に掛かる処理時間は同じです。

注意

同期取得中の更新トランザクションに対する処理は，使用するコマンドによって異なります。このことを考慮して同期取得に使用するコマンドを決定してください。または，同期を取るときは更新業務を停止してください。

コマンド実行後はRDエリアの状態が変わります（バックアップ閉塞，または閉塞かつクローズ状態）。そのため，業務を続行する場合は，pdrelsコマンドで閉塞を解除する必要があります。

pdhold -bコマンドの場合，リスト用RDエリアは指定できません。

(2)　同期を取るタイミング

バッファとRDエリアの同期を取るタイミングは，主に次の二つが考えられます。

バックアップを取得する前
バックアップを取得する前には，バッファとRDエリアの同期を取ることをお勧めします。

バッチ業務を実行したあと
バッチ業務を実行したあとには，バッチ実行後のインメモリデータバッファ障害に備えて，バッファとRDエリアの同期を取ることをお勧めします。

6.2　インメモリデータバッファの利用状況を確認するには

インメモリデータバッファの利用状況は，pddbls -Mコマンドを実行することで確認できます。コマンドの実行例と実行結果を次に示します。

［コマンド実行例］

pddbls -r ALL -M

［実行結果］

［説明］

インメモリデータバッファの利用状況は，MEMORY-STATUSの値で確認します。

Y：インメモリ化しています。

N：インメモリ化していません。

また，RDエリアとインメモリデータバッファの状態は，次の六つのどれかになります。

MEMORY-STATUSの表示 | 意味
Y(SYNC) | DB同期状態
Y(ASYNC) | DB非同期状態
Y(OBST-MEM) | バッファ障害状態
Y(OBST-DB) | RDエリア障害状態
Y(OBST-ALL) | RDエリア障害状態かつバッファ障害状態
N | インメモリ化していない

6.3　インメモリデータバッファの統計情報を確認するには

＜この節の構成＞

(1)　インメモリデータバッファの名称を調べる

(2)　インメモリデータバッファの統計情報を確認する

(1)　インメモリデータバッファの名称を調べる

インメモリデータバッファの統計情報を確認するには，まず，HiRDBが決定したインメモリデータバッファの名称を調べます。

インメモリデータバッファの名称は，pdbuflsコマンドの実行結果で確認できます。実行結果にインメモリデータバッファの名称を表示させるには，-Mオプションを指定します。コマンドの実行例と実行結果を次に示します。

［コマンド実行例］

pdbufls -k def -M

［実行結果］

(2)　インメモリデータバッファの統計情報を確認する

(1)で調べたバッファの名称をpdbuflsコマンドに指定して，インメモリデータバッファの統計情報を確認できます。

インメモリデータバッファの統計情報は，pdbuflsコマンドに-Mオプションを指定することで確認できます。コマンドの実行例を次に示します。

［コマンド実行例］

pdbufls -k sts -M -a _pdidbuf0000001

コマンドの実行結果については，マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。

6.4　強制的にインメモリ化を解除するには

＜この節の構成＞

(1)　前提条件

(2)　実行方法

(1)　前提条件

障害が発生した場合や，テスト環境の場合は，インメモリ化を強制的に解除することがあります。インメモリ化を強制的に解除する場合は，最初にインメモリデータバッファの状態を確認してください。インメモリデータバッファの状態に合わせて，RDエリアの状態を次の表に示すとおりにコマンドで変更してください。その後，(2)に示す方法でインメモリ化を解除します。

表6-1　インメモリ化を強制的に解除するときのRDエリアの状態

インメモリデータバッファの状態 | コマンド実行後のRDエリアの状態
DB非同期状態 | コマンド閉塞かつオープン状態
バッファ障害状態 | 障害閉塞かつクローズ状態
RDエリア障害状態 | コマンド閉塞かつオープン状態
バッファ障害状態かつRDエリア障害状態 | 障害閉塞かつクローズ状態

(2)　実行方法

強制的にインメモリ化を解除するには，pdmemdb -k rels -dコマンドを使用します。コマンドの実行例を次に示します。

［コマンド実行例］

pdmemdb -k rels -r RDDATA01 -d

これによって，インメモリデータバッファがなくなります。また，RDエリアは障害閉塞状態になります。なお，この場合の障害閉塞は，pdrelsコマンドで解除できます。

注意

pdhold -sコマンドを実行した場合にも，RDエリアのインメモリ化が強制的に解除され，インメモリデータバッファがなくなります。このとき，RDエリアは同期化閉塞状態になります。

6.5　インメモリデータバッファ上のデータを破棄するには

＜この節の構成＞

(1)　前提条件

(2)　実行方法

(1)　前提条件

インメモリデータバッファ上のデータを破棄するには，インメモリデータバッファがDB非同期状態で，RDエリアがコマンド閉塞かつオープン状態である必要があります。

(2)　実行方法

インメモリデータバッファのデータを破棄するには，pdmemdb -k cancelコマンドを使用します。コマンドの実行例を次に示します。

［コマンド実行例］

pdmemdb -k cancel -r RDDATA01

これによって，インメモリデータバッファはバッファ障害状態に，RDエリアは障害閉塞状態になります。なお，この場合の障害閉塞は，pdmemdb -k reloadコマンドを実行してインメモリデータバッファにデータを再読み込みすることで解除できます。

6.6　RDエリアのデータをインメモリデータバッファに再読み込みするには

＜この節の構成＞

(1)　前提条件

(2)　実行方法

(1)　前提条件

RDエリアのデータをインメモリデータバッファに再読み込みするには，インメモリデータバッファがバッファ障害状態で，RDエリアがコマンド閉塞かつクローズ状態である必要があります。

(2)　実行方法

RDエリアのデータをインメモリデータバッファに再読み込みするには，pdmemdb -k reloadコマンドを使用します。コマンドの実行例を次に示します。

［コマンド実行例］

pdmemdb -k reload -r RDDATA01

RDエリアのデータを再読み込みしたため，RDエリアとインメモリデータバッファはDB同期状態になります。

付録

＜この付録の構成＞

付録A　インメモリデータ処理の状態遷移図

付録B　インメモリデータ処理に関するコマンド一覧

付録C　pdmemdbコマンド実行時の前提条件

付録A　インメモリデータ処理の状態遷移図

インメモリデータ処理の状態遷移を次の図に示します。インメモリデータ処理の実行中は，インメモリデータバッファの状態が次に示す図のように遷移します。障害発生時には，コマンドを使って，インメモリデータバッファの状態を変更し，正常な状態に戻す必要があります。そのため，インメモリデータバッファの状態遷移を正しく理解しておく必要があります（この図は状態遷移を正しく理解するためにお使いください）。

図A-1　インメモリデータ処理の状態遷移

付録B　インメモリデータ処理に関するコマンド一覧

インメモリデータ処理に関するコマンド一覧を次の表に示します。

表B-1　インメモリデータ処理に関するコマンド一覧

コマンド
インメモリデータ処理での操作

pdmemdb -k stay
RDエリアをインメモリ化します。

pdmemdb -k rels
インメモリ化を解除します。

pdmemdb -k rels -d
インメモリ化を強制的に解除します。

pdmemdb -k cancel
インメモリデータバッファの更新内容を破棄します。

pdmemdb -k reload
RDエリアのデータをインメモリデータバッファに再読み込みします。

pdhold -b
pdhold -b -w
pdhold -c
pdclose
RDエリアとインメモリデータバッファの同期を取ります。

pddbls -M
RDエリアとインメモリデータバッファの状態を表示します。

pddbls -D
インメモリ化した時刻，およびRDエリアとインメモリデータバッファの同期を取った時刻を表示します。

pdbufls -k def -M
インメモリデータバッファの情報を表示します。

pdbufls -k sts -M
インメモリデータバッファの統計情報を表示します。

付録C　pdmemdbコマンド実行時の前提条件

pdmemdbコマンドを実行する前に，インメモリデータバッファと対象RDエリアの状態を確認してください。正しい状態になっていないとpdmemdbコマンドを実行できません。pdmemdbコマンド実行時の前提条件（インメモリデータバッファと対象RDエリアの状態）を次の表に示します。

表C-1　pdmemdbコマンド実行時の前提条件（インメモリデータバッファと対象RDエリアの状態）

pdmemdbコマンドの-kオプションの指定 | コマンド実行時の前提条件 | コマンド実行後の状態
インメモリデータバッファの状態 | RDエリアの状態 | インメモリデータバッファの状態 | RDエリアの状態
stay | 未使用状態 | コマンド閉塞かつクローズ状態※ | DB同期状態 | コマンド閉塞かつクローズ状態
reload | バッファ障害状態 | 障害閉塞かつクローズ状態
rels | -dオプション指定なし | DB同期状態 | コマンド閉塞かつクローズ状態 | 未使用状態（インメモリ化の解除） | コマンド閉塞かつクローズ状態
-dオプション指定あり | DB非同期状態 | コマンド閉塞かつオープン状態 | 障害閉塞かつクローズ状態
バッファ障害状態 | 障害閉塞かつクローズ状態
RDエリア障害状態 | コマンド閉塞かつオープン状態
バッファ障害状態かつRDエリア障害状態 | 障害閉塞かつクローズ状態
cancel | DB非同期状態 | コマンド閉塞かつオープン状態 | バッファ障害状態 | 障害閉塞かつオープン状態

注※

オンライン再編成閉塞中からコマンド閉塞かつクローズ状態に遷移した場合は，pdmemdb -k stayコマンドを実行できません。

索引

[Ｄ][Ｏ][Ｐ][Ｒ]
[ア行][カ行][サ行][タ行][ハ行][マ行]

(英字)

(Ｄ)

DB同期状態

DB非同期状態

(Ｏ)

OSのオペレーティングシステムパラメタの確認

(Ｐ)

pd_max_resident_rdarea_no

pd_max_resident_rdarea_shm_no

pdbufls -k def -M

pdbufls -k sts -M

pdclose

pddbls -D

pddbls -M

pdhold -b

pdhold -b

pdhold -b -w

pdhold -c

pdmemdb -k cancel

pdmemdb -k reload

pdmemdb -k rels

pdmemdb -k rels -d

pdmemdb -k stay

pdmemdbコマンド実行時の前提条件

(Ｒ)

RDエリア障害

RDエリア障害

RDエリア障害かつバッファ障害

RDエリア名一括指定

(ア行)

(あ)

アンインストール

(い)

異常終了したときのデータの回復方法

インストール

インナレプリカ機能を使用しているときに気をつけること

インメモリRDエリア

インメモリRDエリア

インメモリ化

インメモリ化

インメモリ化できるRDエリア

インメモリ化に失敗したとき

インメモリデータ処理

インメモリデータ処理

インメモリデータ処理の概要

インメモリデータ処理の仕組み

インメモリデータ処理の状態遷移

インメモリデータバッファ

インメモリデータバッファ

インメモリデータバッファの統計情報を確認する

インメモリデータバッファの名称を調べる

インメモリデータバッファの優位点

インメモリデータバッファの利用状況を確認する

(お)

オンライン業務に適用する場合

(カ行)

(か)

回復方法を決めるときの基準

必ず行う準備

(き)

基本的な運用の流れ

強制終了

強制的にインメモリ化を解除するには

(く)

グローバルバッファの割り当て

(け)

計画停止

(こ)

コマンド一覧

(サ行)

(さ)

再読み込みするには

参照可能モード（-M r）でバックアップを取得する場合

(し)

システム定義の設定

障害回復の基本的な考え方

障害が発生したときに最初に確認すること

障害の種類

初期データロード

(せ)

正常終了

セグメントの割り当て

セットアップ

前提プラットフォーム

(タ行)

(て)

ディスク入出力回数

データを破棄するには

テスト業務に適用する場合

(と)

同期点指定のデータロード

同期を取るタイミング

同期を取る方法

(ハ行)

(は)

バックアップ取得の仕組み

バックアップ取得モード

バックアップを取得するタイミング

バックアップを取得するときに気をつけること

バッチ業務に適用する場合

バッファ障害

バッファ障害

(ふ)

複数のRDエリアを一度にインメモリ化する場合

(マ行)

(ま)

マシン環境の確認

(め)

メモリ容量の確認

■ 商標類

ActiveXは，米国およびその他の国における米国Microsoft Corp.の商標です。
AIXは，米国における米国International Business Machines Corp.の登録商標です。
AMDは，Advanced Micro Devices, Inc.の商標です。
BEA WebLogic Serverは，BEA Systems, Inc.の登録商標です。
CORBAは，Object Management Groupが提唱する分散処理環境アーキテクチャの名称です。
DataStage，MetaBroker，MetaStageおよびQualityStageは，IBM Corporationの商標です。
DB2は，米国における米国International Business Machines Corp.の登録商標です。
日本国内においてのDCEの商標使用権は，OSFよりサブライセンスされています。
DNCWARE，ClusterPerfectは，東芝ソリューション株式会社の商標です。
gzipは，米国FSF(Free Software Foundation)が配布しているソフトウェアです。
HACMP/6000は，米国における米国International Business Machines Corp.の商標です。
HP-UXは，米国Hewlett-Packard Companyのオペレーティングシステムの名称です。
IBMは，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
Intelは，Intel Corporationの会社名です。
Itaniumは，アメリカ合衆国および他の国におけるインテル コーポレーションまたはその子会社の登録商標です。
Java及びすべてのJava関連の商標及びロゴは，米国及びその他の国における米国Sun Microsystems, Inc.の商標または登録商標です。
JBuilderは，Borland Software Corporationの米国およびその他の国における商標です。
JDKは，米国 Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
Linuxは，Linus Torvalds氏の日本およびその他の国における登録商標または商標です。
Microsoftは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Microsoft Accessは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Microsoft Office Excelは，米国 Microsoft Corporation の商品名称です。
Motifは，Open Software Foundation,Inc.の商標です。
MS-DOSは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
NLSは，米国Hewlett-Packard Companyの商品名称です。
ODBCは，米国Microsoft Corp.が提唱するデータベースアクセス機構です。
OLEは，米国Microsoft Corp.が開発したソフトウェア名称です。
ORACLEは，米国Oracle Corporationの登録商標です。
Oracleは，米国Oracle Corporation及びその子会社，関連会社の登録商標です。
Oracle 10gは，米国Oracle Corporationの商標です。
Oracle8iは，米国Oracle Corporationの商標です。
Oracle9iは，米国Oracle Corporationの商標です。
OS/390は，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
PA-RISCは，米国Hewlett-Packard Companyの商標です。
POSIXは，the Institute of Electrical and Electronics Engineers, Inc. (IEEE)で制定された標準仕様です。
PowerBuilderは，米国法人Sybase,Inc.の登録商標です。
Red Hatは，米国およびその他の国でRed Hat, Inc.の登録商標若しくは商標です。
RISC System/6000は，米国における米国International Business Machines Corp. の登録商標です。
Solarisは，米国Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
Sun，Sun Microsystems，Javaは，米国Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
TurboLinuxの名称及びロゴは，TurboLinux, Inc.の商標です。
TUXEDOは，米国UNIX System Laboratories, Inc.の商品名称です。
UNIFY2000は，米国Unify Corp.の商品名称です。
UNIXは，X/Open Company Limitedが独占的にライセンスしている米国ならびに他の国における登録商標です。
VERITASおよびVERITASロゴは，米国Symantec Corporationの登録商標です。
VERITAS NetBackupは，米国及びその他の国での米国Symantec Corporationの商標です。
VERITAS NetBackup BusinesServerは，米国及びその他の国での米国Symantec Corporationの商品名称です。
Visual Basicは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Visual C++は，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Visual Studioは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windowsは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows NTは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows Serverは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
Windows Vistaは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
X/Openは，X/Open Company Limited の英国ならびに他の国における登録商標です。
X Window Systemは，米国X Consortium,Inc.が開発したソフトウェアです。
イーサネットは，富士ゼロックス（株）の商品名称です。
プログラムプロダクト「P-9D62-1581，P-9D62-1781，P-F9D62-1181A」には，米国 Sun Microsystems, Inc. が著作権を有している部分が含まれています。
プログラムプロダクト「P-9D62-1581，P-9D62-1781，P-F9D62-1181A」には，UNIX System Laboratories, Inc. が著作権を有している部分が含まれています。