Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

グローバルの高速コピーのための ^GBLOCKCOPY の使用法

^GBLOCKCOPY は、データベース間でグローバルの高速コピーを行う InterSystems IRIS ルーチンです。動作モードには、インタラクティブとバッチの 2 種類があります。インタラクティブ・モードでは単一のプロセスを実行しますが、バッチ・モードでは複数のプロセスを並列で構成して実行できます。^GBLOCKCOPY には組み込みのモニタと、グローバル・コピーの複数の進行を記録するための複数のレポートが含まれます。システム障害が発生した場合、^GBLOCKCOPY は中断した後に再開します。

Note:

コピー中のデータベース・ブロックではロックも整合性もチェックされないため、^GBLOCKCOPY をグローバルのコピーに使用するのは、それらのグローバルがアクティブには変更されていない場合に限定する必要があります。SetKill の処理は、コピー先のグローバル、データベース、またはネームスペースにおいてだけでなく、コピー実行中のコピー元データベースにおいて他のグローバルに対して実行でき、コピーに影響を与えることもありませんが、別のデータベースやネームスペースにコピーされているコピー元グローバルで、SetsKills を行うと、コピー先のグローバルは予測できなくなります。

^GBLOCKCOPY がグローバルを新規のデータベースにコピーするとき、保護、ジャーナル属性、照合タイプ、および Keep 属性を含むソース・グローバルの同じプロパティを持つグローバルをそこに作成します。

Note:

SYS.Database.Copy()Opens in a new tab クラス・メソッドは、^GBLOCKCOPY と同様の機能を提供します。

^GBLOCKCOPY の使用

^GBLOCKCOPY は、以下のように異なる複数の演算で使用されます。

  • データベースから他のデータベース、またはネームスペースに 1 つ以上のグローバルをコピーします — コピー先のデータベースまたはネームスペースにコピーするグローバルを 1 つ以上選択できます。グローバルがコピー先のデータベースに既に存在する場合、ソース・グローバルのデータは既存のデータに結合されます。

  • 添え字レベル・マッピングを使用して、1 つのデータベースからのグローバルを複数のデータベースに分割します — グローバルの添え字レベル・マッピング (SLM) でネームスペースを設定することで、データベースのグローバルを新規のネームスペースにコピーすることができます。これにより、SLM を構築するデータベース間でグローバルを分割することができます。

  • 複数のデータベース内の添え字マップされたグローバルを、1 つのデータベースに移動します — グローバル全体を含む新規のデータベースを作成します。次に、異なるすべての SLM データベースから新規のデータベースにコピーするバッチで、複数のコピーを設定します。

  • データベースのコピーを作成します — すべてのグローバルを別のディレクトリにコピーすることによって、データベースをそのディレクトリにコピーできます。

  • ECP を通じて他のマシンにグローバルをコピーします^GBLOCKCOPY は、ECP ネットワーク接続上の他のマシンへのグローバルのコピーをサポートします。リモート・マシンに対する ECP 接続、およびそれを示すネームスペース・マッピングを設定する必要があります。次に、“Copy from Database to Namespace” オプションを選択し、コピー先としてリモート・ネームスペースを選択します。

  • データベースの未使用スペースを再要求します — 大規模なグローバルがデータベース内で作成されて削除された場合、データベースには未使用の余分なスペースがあることがあります。データベースのすべてのグローバルを新規のデータベースにコピーし、古いデータベースを新しいもので置換すると、このスペースを削除できます。

  • データベース内のポインタを再編成します — データベースがブロックの分割により断片化された場合、そのデータベース内のデータを再編成すると高速なパフォーマンスを得ることができます。これには、データベース内のすべてのグローバルを新規のデータベースにコピーし、古いデータベースを新規のデータベースに置換します。

  • グローバルの照合を変更します — コピー対象の既存グローバルの照合を変更する場合、^GBLOCKCOPY を実行する前に、目的の既定の照合を指定して、コピー先データベースにグローバルを作成できます。

  • Caché または従来のデータベースまたはネームスペースを InterSystems IRIS にインポートしますCACHE.DAT ファイルまたは従来のデータベース・ファイルを IRIS.DAT データベースまたはネームスペースにインポートする場合、コピー元のディレクトリとして存在するディレクトリを選択するだけです。データベースは IRIS.DAT という名前に変更され、データをコピー先のデータベースやネームスペースにコピーすることができるようになります。

^GBLOCKCOPY の実行

^GBLOCKCOPY を実行する前 (またはアップグレードを実行する前) に、ご使用のデータベースのオペレーティング・システムの完全なバックアップを作成し、データベースに破損がないことを確実にするために整合性チェックを実行します。

Note:

^GBLOCKCOPY の実行を高速にするため、一時データやスクラッチ・データ、および不必要な古いデータはすべて削除します。

^GBLOCKCOPY の実行では、特定のデータベースにあるすべてのグローバルまたは一部のグローバルのみをコピーできます。このルーチンでは、コピーするグローバルの名前を指定することが要求されます。一部のグローバルのみを参照する場合、構文は次のようになります。

  • glonam と入力し、コピーするグローバルとして “glonam” を選択します。

  • glonam と入力し、選択しているグローバル “glonam” を選択解除します。

  • glonam1-glonam2 と入力し、“glonam1” から “glonam2” までの範囲のグローバルを選択します。

  • glonam1-glonam2 と入力し、“glonam1” から “glonam2” までの範囲のグローバルを選択解除します。

グローバルの選択で使用できるワイルドカード文字は次のとおりです。

  • アンパサンド (&) は任意の 1 文字に一致します。

  • 番号記号 (#) は 1 桁に一致します。

  • 疑問符 (?) は任意の 1 文字に一致します。

  • アスタリスク (*) は任意の個数の文字に一致します。

Note:

グローバルの範囲の指定ではワイルドカード文字を使用できません。

グローバルの一部を選択するときは以下の入力も使用できます。

  • ? — 情報入力を列挙します。

  • ?L — 利用可能なグローバルをすべて列挙し、選択済みのグローバルを番号記号 (#) で示します。

  • ?S — 現在選択されているグローバルを列挙します。

  • ?H — グローバル選択構文を列挙します。

^GBLOCKCOPY のバッチ機能を使用して、同時に実行する複数の操作を設定できます。バッチの構成時には、コピー・プロセスの総数と、ディレクトリごとのコピー・プロセスの最大数を入力することが求められます。グローバルごとに最大で 1 つのプロセスを実行できます。バッチ・モードでは、コピー処理の時間が最大グローバルのサイズに比例し、それにストレージの遅延と帯域幅も要因として関与します。操作バッチが実行されている間、Monitor、または Batch Report を使用して進行状況を監視することができます。

Note:

データベースを ^GBLOCKCOPY で処理している間は、データベースにアクセスしないようにしてください。^GBLOCKCOPY の実行中にアクセスすると、データベース操作の結果は予測不可能になります。同じシステム上で、^GBLOCKCOPY で処理しないデータベースは、安全に使用することができます。

FeedbackOpens in a new tab