第十六章 使用 ^GBLOCKCOPY
进行快速Global复制
^GBLOCKCOPY
是一个 IRIS
例程,可在数据库之间执行快速全局复制。它有两种操作模式:交互式和批处理。交互模式是单个进程,而批处理模式允许并行运行配置和运行多个进程。 ^GBLOCKCOPY
包含一个内置监视器和几个报告来跟踪Global
复制的进度。如果出现系统故障,可以在它停止的地方重新启动 ^GBLOCKCOPY
。
注意:因为没有对正在复制的数据库块进行锁定或完整性检查,所以 ^GBLOCKCOPY
应该仅在Global
变量未被主动修改时用于复制它们。虽然 Set
或 Kill
操作可以在执行复制的源数据库中的其他Global
变量以及目标Global
变量、数据库或名称空间中执行而不影响副本,但如果Set
或 Kill
目标Global
的结果是不可预测的发生在正在复制到另一个数据库或名称空间的源全局中。
当 ^GBLOCKCOPY
将Global
复制到新数据库时,它会在那里创建具有与源Global
相同属性的全局,包括保护、日志属性、排序规则类型和保留属性。
注意:SYS.Database.Copy()
类方法提供类似于 ^GBLOCKCOPY
的功能。
^GBLOCKCOPY
的使用
^GBLOCKCOPY
可用于以下几种不同的操作:
- 将
Global
从一个数据库复制到另一个数据库或命名空间——可以选择一个或多个Global
复制到目标数据库或命名空间。如果Global
已存在于目标数据库中,则将源全局中的数据合并到现有数据中。 - 使用下标级映射将
Global
从单个数据库拆分为多个数据库——通过使用Global
下标级映射 (SLM
) 设置命名空间,可以将Global
从一个数据库复制到这个新的命名空间中并使其拆分组成SLM
的数据库。 - 将多个数据库中的下标映射
Global
移到一个数据库中-创建包含整Global
的新数据库。然后在一个批处理中设置多个副本,将Global
从所有不同的SLM
数据库复制到新数据库中。 - 制作数据库的副本 - 可以通过将所有
Global
复制到另一个目录来将数据库复制到另一个目录。 - 通过
ECP
将Global
复制到另一台机器 —^GBLOCKCOPY
支持通过 ECP 网络连接将全局复制到另一台机器。需要设置到远程机器的ECP
连接,以及指向它的命名空间映射。然后选择“从数据库复制到命名空间”选项,并选择远程命名空间作为复制的目的地。 - 回收数据库中未使用的空间——如果一个大的
Global
创建然后在数据库中被杀死,数据库中可能有大量未使用的空间。可以通过将数据库中的所有Global
复制到一个新数据库,然后用新数据库替换旧数据库来删除此空间。 - 重新组织数据库中的指针-如果数据库因块拆分而变得碎片化,可能需要重新组织其中的数据以提高性能。这可以通过将数据库中的所有全局变量复制到新数据库中,然后用新数据库替换旧数据库来实现。
- 更改
Global
排序规则 — 如果要更改正在复制的现有Global
排序规则,可以在运行^GBLOCKCOPY
之前使用所需的默认排序规则在目标数据库中创建全局排序规则。 - 将
Caché
或遗留数据库或名称空间导入IRIS
— 如果有一个CACHE.DAT
文件或遗留数据库文件要导入IRIS.DAT
数据库或名称空间,只需选择它所在的目录作为源目录复制。数据库重命名为IRIS.DAT
,数据可用于复制到目标数据库或命名空间。
运行 ^GBLOCKCOPY
在运行 ^GBLOCKCOPY
之前(或者在执行升级之前),对数据库进行完整的操作系统备份,并运行完整性检查以确保任何数据库都没有损坏。
注意:要使 ^GBLOCKCOPY
运行得更快,请清除所有临时数据和暂存数据以及不需要的任何旧数据。
运行 ^GBLOCKCOPY
时,可以从特定数据库复制全部或部分Global
。该例程提示输入要复制的Global
的名称。要仅引用一些Global
,语法为:
- 输入
glonam
选择要复制的全局“glonam”
。 - 输入
'glonam
将取消选择全局“glonam”
(如果选中)。 - 输入
glonam1-glonam2
可选择从“glonam1”
到“glonam2”
的全局变量范围。 - 输入
'glonam1-glonam2
将取消选择从“glonam1”
到“glonam2”
范围内的任何全局。
以下是用于选择全局变量的通配符:
- 使用
&(&)
来匹配任何单个字母。 - 使用数字符号(
#
)来匹配单个数字。 - 使用问号(
?
)来匹配任何单个字符。 - 使用星号(
*
)来匹配任意数量的字符。
注意:在指定Global
范围时,不能使用通配符。
当选择Global
的分段时,你也可以使用以下输入:
-
?
-列出信息输入。 -
?L
-列出所有可用的Global
;用数字符号(#
)指定已选择的对象。 -
?S
-列出当前选择的Global
。 -
?H
-列出Global
选择语法。
可以使用^GBLOCKCOPY
的批处理功能来设置多个操作同时运行。配置批处理时,会提示每个目录的拷贝进程总数和最大拷贝进程数。每个Global
最多只能运行一个进程。对于批处理模式,复制操作的持续时间与最大Global
的大小成正比;存储延迟和带宽是另外的因素。在运行批操作时,可以使用监视器或批报告监视进度。
注意:用户在被^GBLOCKCOPY
处理时不能访问数据库。如果在^GBLOCKCOPY
运行时访问数据库操作,则数据库操作的结果不可预测。同一系统上没有被^GBLOCKCOPY
处理的数据库可以安全使用。
网友评论