ifxclone 实用程序

可以使用 ifxclone 实用程序从当前的数据库服务器快照创建服务器。

语法

Mandatory parameters
Optional parameters
元素 用途 关键注意事项
disposition 指定新服务器的最终规范 如果没有指定 --disposition (-d) 参数,那么将会创建一台标准服务器
ER 指定新服务器实例创建为复制服务器  
HDR 指定新服务器实例创建成为 HDR 辅助服务器  
parameter=value 指定可选的配置参数并且将值设置到目标服务器

确定源服务器的配置参数必须与目标服务器相符。请参阅克隆 RS 辅助服务器的前提条件

RSS 指定新数据库实例创建为远程独立辅助服务器  
SDS 指定新数据库实例创建为共享磁盘辅助服务器 ifxclone 实用程序设置目标服务器的 SDS_PAGING 和 SDS_TEMPDBS 配置参数,但是全配置不在 ifxclone 实用程序范围之内。

如果命令中指定了 --disposition=SDS 但没指定 --useLocal ,您必须将 SD 辅助服务器的ROOTPATH 配置参数值设置得与主服务器上 ROOTPATH 配置参数值相同

size 指定目标服务器的大小。有效的值有 tinysmallmediumlarge 如果没有指定该大小参数,将会使用源实例的大小参数
source_name 指定源实例的名称 源服务器必须是主服务器并且不能是辅助服务器
source_IP 指定源服务器实例的 TCP/IP 地址  
source_port 指定源服务器实例的 TCP/IP 端口地址或与该端口关联的服务名称  
target_name 指定目标服务器实例的名称  
target_IP 指定目标服务器实例的 TCP/IP 地址  
target_port 指定目标服务器实例的 TCP/IP 端口地址或与该端口关联的服务名称  

下表描述了有关 ifxclone 实用程序的选项。

长格式 短格式 含义
--autoconf -a 新克隆服务器和高可用集群或 Enterprise Replicatio 域的其他服务器之间的自动配置连接。如果该选项用于创建复制服务器,那么 --autoconf 选项可以自动配置复制。
--autoconf 选项具有以下要求:
  • 在目标服务器、源服务器和其他群集或复制服务器上,CDR_AUTO_DISCOVER 配置参数必须设置为 1
  • REMOTE_SERVER_CFG 必须设置在所有群集或复制服务器上。
  • 源服务器的信任主机文件必须有目标服务器的主机信息
  • 如果使用 --disposition=ER 选项,并且主服务器为 Enterprise Replication 的一部分,那么在该域内的其他复制服务器必须是活动的
--configParm -c 指定要设置到目标服务器上的配置参数的名称和值
--disposition -d 指定新服务器示例的规定
--help -h 显示用法信息
--size -s 指定目标实例的大小
--source -S 指定源服务器实例的名称
--sourceIP -I 指定源服务器实例的 TCP/IP 地址
--sourcePort -P 指定源服务器实例的 TCP/IP 端口地址或与该端口相关联的服务名
--target -t 指定目标服务器实例的名称
--targetIP -i 指定目标服务器实例的 TCP/IP 地址
--targetPort -p 指定目标服务器实例的 TCP/IP 端口地址或与该端口相关联的服务名
--trusted -T 指定该服务器是可以信任的,并且在访问服务器时不需要获取用户 ID 和密码
--useLocal -L 指定源服务器 onconfig 文件中的配置信息应与目标服务器 onconfig 文件合并。

确定源服务器的配置参数必须与其在目标服务器上的内容相一致。请参阅 所有服务器的前提条件

用法

可以使用 ifxclone 实用程序以最少的步骤或配置克隆一台服务器,或快速安装新节点到现有的 ER 复制域。当运行 ifxclone 实用程序时,从服务器节点获得的大部分安装信息会被克隆。要成功地克隆服务器可能仍需一些配置后步骤,以获得更好地运行的系统。

源服务器是包含希望被克隆日期的服务器。目标服务器是从源服务器中加载数据的服务器。您必须从目标服务器运行 ifxclone 实用程序。

要在 UNIX™ 上运行 ifxclone 实用程序,在目标服务器上您必须以用户 root 、gbasedbt 或 gbasedbt 群组成员的身份运行该命令。您也必须是源服务器的 DBSA。

要在 Windows™ 上运行 ifxclone 实用程序,在目标服务器上您必须以本地管理员群组成员的身份运行该命令。也必须是源服务器的 DBSA 并且在源服务器上您必须隶属于 GBasedbt-Admin 群组。

ifxclone 实用程序使用来自源服务器的 onconfigsqlhosts 配置文件配置目标服务器。ifxclone 实用程序配置一些额外配置设置,不仅仅是配置克隆服务器的那些要求。--autoconf 选项提供额外配置 sqlhosts 文件记录的能力 ,之后会传播 sqlhosts 并对高可用集群服务器或 Enterprise Replication 域信任主机文件信息。Ifxclone 实用程序并不意味着要配置所有可能的配置选项,而是提供克隆源服务器所需的足够的配置。

可以使用大小参数来配置 CPU VP 和缓冲区的数量。 表 1 列出了创建在目标服务器上每一大小选项的 CPU VP 和缓冲池的数量。目标系统创建之后,应执行额外细化的生成配置。如果大小配置省略,则使用在源服务器上配置的参数。

表 1. 大小参数值列表
大小 CPU VP 数量 缓冲池数量
tiny 1 50,000
small 2 100,000
medium 4 250,000
large 8 500,000

可以使用 -c 选项在目标服务器上指定配置参数及其值。也可以使用已有的配置文件。如果目标服务器包含与源服务器配置文件不同的配置文件,ifxclone 实用程序不会重写该文件但是会修改那些克隆过程中必须与源服务器匹配的参数。

如果目标服务器位于与源服务器相同的主机上,那么需要使用 useLocal (-L) 参数。

如果指定了 useLocal 参数,ifxclone 实用程序会合并主服务器的 onconfig 文件和目标服务器的 onconfig 文件。所有服务器的前提条件 列出的配置参数会被 ifxclone 实用程序重写,其余的参数则不会受影响。

如果 useLocal 参数没有被指定为输入参数,ifxclone 实用程序使用源服务器的 onconfig 文件作为目标服务器的 onconfig 文件并且使用 ifxclone 实用程序输入的参数作为服务器的名称。

如果没有指定 useLocal 参数,ifxclone 实用程序使用目标服务器条目更新主机上的 sqlhosts 文件并且复制这些条目到目标服务器的 sqlhosts 文件中去。

以下是 ifxclone 参数选项的优先顺序:
  • 在源服务器上 --configParm (-c) 参数优先于配置文件。
  • --size (-s) 参数优先于合并的配置参数或本地配置文件中的设置。
  • --configParm (-c) 参数优先于 --size (-s) 参数。
  • 必须在每个服务器上相同的参数优先于所有其他选项。

所有服务器的前提条件

克隆服务器前请执行以下前提条件:

在克隆服务器的过程中不允许执行存档操作命令(例如:ontapeON-Bar 命令)。请在开始克隆服务器之前执行存档活动。

在开始克隆服务器之前,必须在目标服务器上设置以下环境变量:

必须在源和目标服务器上标识以下配置参数的值:

如果目标服务器中的 MIRROR 配置参数可用,那么以下配置参数必须在源和目标服务器之间相匹配:

数据库服务器在源和目标服务器上允许只有某些组合 MIRROR 配置参数。请参阅 表 2.

表 2. 源和目标服务器上 MIRROR 配置参数允许的设置
设置于源服务器上的MIRROR 配置参数 设置于目标服务器上的 MIRROR 配置参数 允许或不允许
No No 允许
Yes Yes 允许
Yes No 允许
No Yes 不允许。如果配置了该设置,那么服务器会在目标服务器的 onconfig 文件中提出警告并禁用 MIRROR 参数。

克隆 RS 辅助服务器的前提条件

  1. 在目标服务器上设置一下环境变量:
    • GBASEDBTDIR
    • GBASEDBTSERVER
    • ONCONFIG
    • GBASEDBTSQLHOSTS
  2. 在目标服务器上,创建存在于源服务器上所有的 chunk 和镜像 chunk 。如果目标服务器使用镜像,那么镜像 chunk 的路径必须与其在与服务器上的路径相匹配并且这些 chunk 必须存在。执行以下步骤来为目标服务器创建 chunk 和(如果必要)镜像 chunk :
    1. 在源服务器上,运行 onstat -d 命令显示 chunk 和 镜像 chunk 的列表:
      onstat -d
    2. 在目标服务器上,以用户 gbasedbt 的身份登录并使用命令 touchchownchmod 创建被 onstat -d 命令报告的 chunk 。例如,要创建名为 /usr/gbasedbt/chunks/rootdbs.chunk 的 chunk,请执行以下步骤:
      $ su gbasedbt
                      Password:
                      $ touch /usr/gbasedbt/chunks/rootdbs.chunk
                      $ chown gbasedbt:gbasedbt /usr/gbasedbt/chunks/rootdbs.chunk
                      $ chmod 660 /usr/gbasedbt/chunks/rootdbs.chunk
    3. onstat -d 命令报告的每个 chunk 重复执行上一步中的所有命令。
  3. 在目标服务器上,运行带适当参数的 ifxclone 实用程序。
  4. 可以选择在目标服务器上创建 onconfigsqlhosts 文件。

示例 1,使用源服务器配置克隆一台 RS 辅助服务器

该示例显示了如何使用来自源服务器上的 onconfigsqlhosts 配置文件配置服务器。

在本示例中,忽略了 -L 选项引起的 ifxclone 实用程序从源服务器检索重要配置信息。该配置文件作为创建目标服务器配置的模板。使用 ifxclone 实用程序创建配置文件可以节省时间并减少其向配置文件中介绍错误的的机会。

对于本示例,假设源服务器 (Amsterdam)将 sqlhosts 文件配置如下:

#Server   Protocol HostName        Service Group
        Amsterdam onsoctcp 192.168.0.1 123     -   

还必须具有目标服务器的名称、IP 地址和端口号。本示例使用了以下信息:

  1. 在目标服务器上,以用户 gbasedbt 的身份登录并使用 touchchownchmod 命令创建 chunk、更改其所有者并更改其许可权。Chunk 路径必须与 chunk 在源服务器上的路径匹配。
  2. 在目标服务器上,运行 ifxclone实用程序:
    ifxclone -T -S Amsterdam -I 192.168.0.1 -P 123 -t Berlin 
              -i 192.168.0.2 -p 456 -d RSS

    ifxclone 实用程序修改源服务器上的 sqlhosts 文件,并在新目标服务器上创建该文件的副本。目标服务器上的 sqlhosts 文件与源服务器上的相同:

    #Server   Protocol HostName        Service Group
                  Amsterdam onsoctcp 192.168.0.1 123     -   
                  Berlin    onsoctcp 192.168.0.2 456         

示例 2,通过合并源服务器配置克隆 RS 辅助服务器

使用 -L (--useLocal) 选项在远程主机上创建服务器的克隆:-L 选项用于将源 onconfig 文件配置信息与目标 onconfig 文件合并。此选项还将把源 sqlhosts 文件复制到目标服务器。本示例使用以下信息:

  1. 在目标计算机上创建 onconfigsqlhosts 文件并设置环境变量。
  2. 在目标服务器上,以用户 gbasedbt 的身份登录并使用 touchchownchmod 命令创建 chunk、更改其所有者并更改其许可权。Chunk 路径必须与 chunk 在源服务器上的路径匹配。
  3. 在目标服务器上 ,运行 ifxclone 实用程序:
    ifxclone -T -L -S Amsterdam -I 192.168.0.1 -P 123 -t Berlin 
              -i 192.168.0.2 -p 456 -d RSS

示例 3,向集群添加一台 RS 辅助服务器

该示例显示了如何向现有的 GBase 8s 高可用性集群添加 RS 辅助服务器。本示例使用以下信息:

  1. 在目标计算机上创建 onconfigsqlhosts 文件并设置环境变量。
  2. 在目标服务器上,以用户 gbasedbt 的身份登录并使用 touchchownchmod 命令创建 chunk、更改其所有者并更改其许可权。Chunk 路径必须与 chunk 在源服务器上的路径匹配。
  3. 在目标服务器上 ,运行 ifxclone 实用程序:
    ifxclone -T -L -S Amsterdam -I 192.168.0.1 -P 123 -t Berlin 
              -i 192.168.0.2 -p 456 -s medium -d RSS

克隆 ER 服务器的前提条件

在尝试克隆 ER 服务器前请完成以下前提条件。

  1. 源服务器(要被克隆的服务器)必须有 ER 配置并激活。
  2. 对于指定目录名的配置参数,其目录名必须存在于目标服务器上。例如:如果在源服务器上要将 CDR_LOG_STAGING_DIR 配置参数设置为目录名,那么此目录也必须在目标服务器上存在。
  3. 如果源服务器上的 ATS 或 RIS 可用,那么目标服务器上必须有适当的 ATS 或 RIS 目录。请参阅 Enabling ATS and RIS File GenerationCreating ATS and RIS Directories。如果目录不存在那么 ATS/RIS spooling 将会失败。
  4. 如果源服务器已设置了 CDR_SERIAL 配置参数,那么您必须在要克隆的服务器上将 CDR_SERIAL 的值设置成不同的值。在所有复制服务器上,CDR_SERIAL 的值必须都不相同。可以在 ifxclone 命令行中使用 --configParm (-c) 参数指定 CDR_SERIAL 配置参数的唯一值。
  5. 新 ER 克隆上的时间必须适当同步。请参阅 Time Synchronization.
  6. 源服务器(要被克隆的服务器)必须没有任何已停止或暂停的复制,也不能有任何影子复制定义。

ifxclone 实用程序运行过程中,避免执行更改目标服务器参与的复制集的 ER 管理任务。

示例:创建一台 ER 服务器克隆

假设有五台服务器:S1、S2、S3、S4 和 S5。它们在 ER 域中并配置为根服务器。您想要在名为 machine6 的电脑上添加新的服务器—— S6,并且希望它拥有和 S3 服务器一样的数据。
  1. 在machine6 上安装并配置 GBase 8s 数据库软件。您可以使用部署实用程序部署预配置的数据库服务器实例。
  2. 将 S3 服务器上的 sqlhosts 文件辅导到 S6 服务器并修改它,为新服务器添加新条目。例如,假设新服务器的 ER 群组名为 g_S6 且ID 为 60,sqlhosts 文件将添加如下新行:
    g_S6    group     -           -         i=60
                  S6      onsoctcp  machine6    service6  g=g_S6
  3. 向其他五台服务器( S1 到 S5)上的 sqlhosts文件中添加以上两行内容。
  4. 将 S3 服务器上的 onconfig 文件复制到 S6 服务器。并将DBSERVERNAME 配置参数更改为 S6。不要修改除路径信息以外的任意存储或 chunk 参数。
  5. S6 服务器 (machine6) 提供 chunk 路径和其他存储到服务器 S3 大小相同。确保 S6 有足够的内存和磁盘空间资源。
  6. 以用户 gbasedbt 的身份运行以下命令:
    ifxclone -L -S S3 -I machine3 -P service3 -t S6 -i machine6 -p service6 -d ER

    执行时,输入用户 gbasedbt 的用户名 gbasedbt 及其密码。

  7. 监视 S6 和 S3 服务器的服务器日志。当克隆进程结束后,可以在服务器 S3 和 S6 上运行以下命令来检查服务器的状态:
    cdr list server
您可以看到新的 ER 服务器 g_S6 连接了所有其他五台服务器。此外,ER 节点 g_S6 将加入所有 g_S3 所加入的 ER 节点。