このドキュメントでは、Caché
GBLOCKCOPY ルーチンを実行してグローバルをコピーする方法と手順について説明します。
GBLOCKCOPY は、データベース間でグローバルのコピーを高速に行う Caché ルーチンです。これはターミナルと対話形式で実行するか、バックグラウンドのジョブとして 1 以上のグローバルをコピーするバッチに構成されます。
GBLOCKCOPY には組み込みのモニタと、グローバル・コピーの複数の進行を記録するための複数のリポートが含まれます。システム障害が発生した場合、
GBLOCKCOPY は中断した後に再開します。
Note:
GBLOCKCOPY ルーチンは、
Set や
Kill に現在アクセスしていないグローバルでのみ、使用されます。
Set や
Kill が、他のデータベースやネームスペースにコピーされているソース・グローバルで発生した場合、コピー先のグローバルで発生する結果は予測できません。
Set や
Kill は、コピーが実行されているソース・データベース内の、他のグローバルで実行されます。これらは、コピーに影響を与えることなく、コピー先のグローバル、データベース、またはネームスペースで実行されます。
GBLOCKCOPY がグローバルを新規のデータベースにコピーするとき、保護、ジャーナル属性、照合タイプ、および Keep 属性を含むソース・グローバルの同じプロパティを持つグローバルをそこに作成します。唯一の例外は、グローバルが以下の照合の 1 つの場合です。
上記の場合、照合は Caché 標準に自動的に変更されます。
-
データベースから他のデータベース、またはネームスペースに 1 つ以上のグローバルをコピーします (ユーザがコピーする 1 つ以上のグローバルを選択できます)。グローバルがコピー先のデータベースにすでに存在する場合、ソース・グローバルのデータは既存のデータに結合されます。
-
2 KB ページ・サイズのデータベースを、8 KB ページ・サイズのデータベースに変換します。ユーザは、[Auto Create Batch] オプションを使用して、2 KB ページ・サイズのバッチを 8 KB ページ・サイズへの変換を設定することができます。あるいは、容量と時間が許す限り、1 度に 1 つずつ変換することもできます。
-
マルチ・ボリュームのデータベースをシングル・ボリュームに結合します。複数の 2 GB ボリュームのデータベースを持つ場合 (UNIX プラットフォームで共通)、このデータベースのすべてのグローバルを選択し、それをシングル・ボリュームにコピーすることができます。データベースは現在 2 GB を超過できるため、これは複数のデータベースを 1 つに統合するのに便利なメソッドです。
-
添え字レベル・マッピングを使用して、1 つのデータベースからのグローバルを複数のデータベースに分割します。グローバルの添え字レベル・マッピング (SLM) でネームスペースを設定することで、データベースのグローバルを新規のネームスペースにコピーすることができます。これにより、SLM を構築するデータベースでグローバルを分割することができます。
-
複数のデータベース内の添え字マップされたグローバルを、1 つのデータベースを移動します。グローバル全体を含む新規のデータベースを作成します。次に、異なるすべての SLM データベースから新規のデータベースにコピーするバッチで、複数のコピーを設定します。データベースは現在、2 GBを超過できるため、これは複数のデータベースを 1 つに統合するのに便利なメソッドです。
-
データベースのコピーを作成します。すべてのグローバルを別のディレクトリにコピーすると、データベースはそのディレクトリにコピーされます。
-
-
データベースの未使用スペースを再要求します。大規模なグローバルがデータベース内で作成されて削除された場合、データベースには未使用の余分なスペースがあることがあります。このスペースを削除するには、データベースのすべてのグローバルを新規のデータベースにコピーし、古いデータベースを新しいもので置換します。
-
データベース内のポインタを再編成します。データベースがブロックの分割により断片化された場合、そのデータベース内のデータを再編成すると高速なパフォーマンスを得ることができます。これには、データベース内のすべてのグローバルを新規のデータベースにコピーし、古いデータベースを新規のデータベースに置換します。
-
グローバルの照合を変更します。ソース・グローバルが以下の照合タイプの 1 つの場合、
GBLOCKCOPY を使用してコピーされた場合、グローバルの照合は、Caché 標準に自動的に変更されます。
照合のタイプを変更したい (例えば Caché 標準から German1) グローバルがすでに存在している場合、
GBLOCKCOPY を実行する前に、適切な既定の照合を持つコピー先のデータベースを作成します。
Note:
ISM 5.10/6.4 から移行されたデータベースには、ISM 照合を持つグローバルが含まれます。
-
-
-
古いデータベースを
CACHE.DAT データベース、またはネームスペースにインポートします。
CACHE.DAT データベースやネームスペースにインポートしたい古いデータベース・ファイルがある場合は、コピー時にそのファイルが存在するディレクトリをソース・ディレクトリとして選択します。データベースは
CACHE.DAT という名前に変更され、データをコピー先のデータベースやネームスペースにコピーすることができるようになります。
-
ISM 5.10/6.4
MUMPS.DAT データベースを
CACHE.DAT データベース、またはネームスペースにインポートします。
CACHE.DAT データベースやネームスペースにインポートしたい
MUMPS.DAT ファイルがある場合、そのファイルが存在するディレクトリをソース・ディレクトリを選択します。データベースは
CACHE.DAT という名前に変更され、データをコピー先のデータベースやネームスペースにコピーすることができるようになります。
GBLOCKCOPY を実行する前 (またはアップグレードを実行する前) に、ご使用のデータベースのオペレーティング・システムの完全なバックアップを作成し、他のデータベースとの衝突がないことを確実にするために整合性チェックを実行します。
Note:
GBLOCKCOPY の実行を高速にするため、一時データやスクラッチ・データ、および不必要な古いデータはすべて削除します。ISM のアップグレードには、アップグレードの前に削除してください。Caché の 2 KB ページ・サイズから 8 KB ページ・サイズに変換する場合は、
GBLOCKCOPY を実行する前に削除してください。
GBLOCKCOPY のバッチ機能を使用して、同時に実行するために変換バッチを設定することができます。
Auto Create a Batch オプションを選択します。このオプションは、システム上のデータベースのリストに対して
^SYS("UCI") グローバルを調査します。2 KB ページ・サイズを使用しているデータベースが検出された場合、変換バッチにオプションが追加されます。変換バッチが一度設定されると、バッチを実行するオプションを選択することができます。変換バッチが実行されている間、Monitor、または Batch Report を使用して進行状況を監視することができます。
%SYS>d ^GBLOCKCOPY
This routine will do a fast global copy from a database to another database or
to a namespace. If a namespace is the destination, the global will follow any
mappings set up for the namespace.
1) Interactive copy
2) Batch copy
3) Exit
Option? 2
1) Manage Batches
2) Run a Batch
3) Restart a Batch
4) Add Processes to a running Batch
5) Stop a Running batch
6) Monitor Running Batch
7) Batch Report
8) Exit
Option? 1
1) Create a Batch
2) Edit a Batch
3) List Batches
4) Delete a Batch
5) Auto create a Batch
6) Exit
Option? 5
1) Convert 2K DB to 8K DB
2) Convert OPENM/ISM DB
3) Both
4) Exit
Option? 1
Batch name to auto create? CVT2K
Detected 2K c:\temp\a\CACHE.DAT, convert to 8K CACHE.DAT? Yes => Yes
Detected 2K c:\temp\x\CACHE.DAT, convert to 8K CACHE.DAT? Yes => Yes
Detected 2K c:\temp\z\CACHE.DAT, convert to 8K CACHE.DAT? Yes => No
Auto creating the following database conversions:
Convert 2K c:\temp\a\CACHE.DAT => 8K c:\temp\a\CACHE.DAT
Convert 2K c:\temp\x\CACHE.DAT => 8K c:\temp\x\CACHE.DAT
Confirm auto creation of batch CVT2K? No => yes
Database c:\temp\a\CACHE.DAT renamed to c:\temp\a\old\CACHE.DAT
Database c:\temp\x\CACHE.DAT renamed to c:\temp\x\old\CACHE.DAT
Batch Name: CVT2K 0 of 0 Processes running, 0 per directory
# Source DB=>Destination DB/NS Last Update Done/ToDo/Err State
-- ---------------------------- ----------- ------------- -----
1 c:\temp\a\old\=>c:\temp\a\ 0/ 15/ 0 Queue
2 c:\temp\x\old\=>c:\temp\x\ 0/ 15/ 0 Queue
Auto creation of batch CVT2K complete
1) Convert 2K DB to 8K DB
2) Convert OPENM/ISM DB
3) Both
4) Exit
Option? 4
1) Create a Batch
2) Edit a Batch
3) List Batches
4) Delete a Batch
5) Auto create a Batch
6) Exit
Option? 6
1) Manage Batches
2) Run a Batch
3) Restart a Batch
4) Add Processes to a running Batch
5) Stop a Running batch
6) Monitor Running Batch
7) Batch Report
8) Exit
Option? 2
Batch name to run? ?
Name # Source DB=>Destination DB/NS Globals Status
---- - ---------------------------- ------- ------
CVT2K 1 c:\temp\a\old\=>c:\temp\a\ All Queue
2 c:\temp\x\old\=>c:\temp\x\ All Queue
Batch name to run? CVT2K
How many copy processes do you want to run at once? 2 =>
How many of these copy processes do you want to run for each directory? 1 =>
Confirm copy? Yes =>
GBLOCKCOPY を使用したアップグレード・タスク
GBLOCKCOPY を使用してデータベースを変換する
Caché をアップグレードした後、
GBLOCKCOPY ルーチンを使用して以下の処理を実行します。
-
-
-
ページ・サイズが 2 KB の任意のデータベースを 8 KB のデータベースに変換します。
Note:
さらに高度なパフォーマンスを得るためには、既存の 2 KB ページ・サイズのデータベースから 8 KB ページ・サイズのデータベースへの変換を推奨しています。これは、アップグレード時でも、後からでも実行することができます。データベースは、データベースの停止時間やディスクの空き容量にしたがって、1 度に 1 つ、あるいは複数変換することができます。
%SYSCONV と GBLOCKCOPY の相違点
%SYSCONV ルーチンは
MUMPS.DAT データベースの名前を
CACHE.DAT に変換し、ルーチン・ソースとオブジェクト・コードを保存する配置済みのグローバルの変換を実行し (余分なディスク容量は必要としません)、ルーチンをリコンパイルします。データベースは 2 KB ページ・サイズを使用します。
%SYSCONV ルーチンは、ISM 5.10/6.4 のアップグレード用のみに使用します。これは、余分のディスク容量を使用しないで、1 度に 1 ノード分のデータのみ移動するため、低速で実行します。
GBLOCKCOPY ルーチンは、元のデータベースの完全なコピーを作成するときに、余分のディスク容量を必要とします。元のデータベースは、その
従来の サブ・ディレクトリで
CACHE.DAT という名前に変更されます。新規の 8 KB データベースは、データベース・ディレクトリに作成されます。その後、
従来の ディレクトリのデータは、新規のデータベースにコピーされます。変換後、変換されたデータが認証されるときに、ユーザは
従来の データベースを削除することができます。
GBLOCKCOPY ルーチンは、同じディスク容量での実行を制約されておらず、1 度にすべてのブロックが移動するので、高速で動作します。しかし、(
%SYSCONV が行うような) ルーチンやオブジェクト・コードではなく、データベース内の
すべての データを移動するので、データベースのサイズによっては
%SYSCONV よりも時間がかかってしまうこともあります。
Note:
データベースは 2 KB のページ・サイズから 8 KB のページ・サイズに変換されるので、2 KB バッファに割り当てられた MB 数は、Caché 構成マネージャで 8 KB まで変更する必要があります。
アップグレード後も、マネージャ・データベースは 2 KB のページ・サイズのままです。
GBLOCKCOPY を使用して、以下のようにこれを 8 KB ページ・サイズに変換することができます。
-
すべてのユーザのシステムへのアクセスを切断します。
-
-
-
新規に作成されたデータベースを、マネージャ・ディレクトリにコピーします。
-
%SYS>d ^GBLOCKCOPY
This routine will do a fast global copy from a database to another database or
to a namespace. If a namespace is the destination, the global will follow any
mappings set up for the namespace.
1) Interactive copy
2) Batch copy
3) Exit
Option? 1
1) Copy from Database to Database
2) Copy from Database to Namespace
3) Exit
Option? 1
Source Directory for Copy (? for List)? c:\cachesys\mgr
Destination Directory for Copy (? for List)? c:\temp\mgr
Database c:\temp\mgr\ does not exist
Do you want to create it? No => Yes
Database c:\temp\mgr\ created
All Globals? No => Yes
39 items selected from
39 available globals
Turn journaling off for this copy? Yes => Yes
Confirm copy? Yes => Yes