美文网首页js css html
第十六章 使用 ^GBLOCKCOPY 进行快速Global复制

第十六章 使用 ^GBLOCKCOPY 进行快速Global复制

作者: Cache技术分享 | 来源:发表于2023-03-12 07:24 被阅读0次

    第十六章 使用 ^GBLOCKCOPY 进行快速Global复制

    ^GBLOCKCOPY 是一个 IRIS 例程,可在数据库之间执行快速全局复制。它有两种操作模式:交互式和批处理。交互模式是单个进程,而批处理模式允许并行运行配置和运行多个进程。 ^GBLOCKCOPY 包含一个内置监视器和几个报告来跟踪Global复制的进度。如果出现系统故障,可以在它停止的地方重新启动 ^GBLOCKCOPY

    注意:因为没有对正在复制的数据库块进行锁定或完整性检查,所以 ^GBLOCKCOPY 应该仅在Global变量未被主动修改时用于复制它们。虽然 SetKill 操作可以在执行复制的源数据库中的其他Global变量以及目标Global变量、数据库或名称空间中执行而不影响副本,但如果SetKill目标Global的结果是不可预测的发生在正在复制到另一个数据库或名称空间的源全局中。

    ^GBLOCKCOPYGlobal复制到新数据库时,它会在那里创建具有与源Global相同属性的全局,包括保护、日志属性、排序规则类型和保留属性。

    注意:SYS.Database.Copy() 类方法提供类似于 ^GBLOCKCOPY 的功能。

    ^GBLOCKCOPY 的使用

    ^GBLOCKCOPY 可用于以下几种不同的操作:

    • Global从一个数据库复制到另一个数据库或命名空间——可以选择一个或多个Global复制到目标数据库或命名空间。如果Global已存在于目标数据库中,则将源全局中的数据合并到现有数据中。
    • 使用下标级映射将Global从单个数据库拆分为多个数据库——通过使用Global下标级映射 (SLM) 设置命名空间,可以将Global从一个数据库复制到这个新的命名空间中并使其拆分组成SLM的数据库。
    • 将多个数据库中的下标映射Global移到一个数据库中-创建包含整Global的新数据库。然后在一个批处理中设置多个副本,将Global从所有不同的SLM数据库复制到新数据库中。
    • 制作数据库的副本 - 可以通过将所有Global复制到另一个目录来将数据库复制到另一个目录。
    • 通过 ECPGlobal复制到另一台机器 — ^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处理的数据库可以安全使用。

    相关文章

      网友评论

        本文标题:第十六章 使用 ^GBLOCKCOPY 进行快速Global复制

        本文链接:https://www.haomeiwen.com/subject/duyfrdtx.html