所选语种没有对应资源,请选择:

本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>

提示

尊敬的用户,您的IE浏览器版本过低,为获取更好的浏览体验,请升级您的IE浏览器。

升级

华为 SAP HANA 一体机 RH5885H&RH8100 V3(SLES 12 SP1)双机安装指南_备节点多实例 03

评分并提供意见反馈 :
华为采用机器翻译与人工审校相结合的方式将此文档翻译成不同语言,希望能帮助您更容易理解此文档的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 华为对于翻译的准确性不承担任何责任,并建议您参考英文文档(已提供链接)。
配置HANA srHook

配置HANA srHook

在安装多实例的备节点上配置srHook,目的是在备节点takeover升为主节点时,取消生产数据库的内存限制及打开列表preload,配置方法如下:

  1. 以root用户登录备节点,然后使用命令su - s00adm切换到HANA数据库用户(s00adm中s00请使用实际数据库SID的小写替换)。
  2. 编辑文件“/hana/shared/S00/global/hdb/custom/config/global.ini”

    执行命令vi /hana/shared/S00/global/hdb/custom/config/global.ini

    输入“i”进入编辑模式。

    在文件增加下面字段:其中本例global_allocation_limit=524288表示内存限制,单位为MB,请根据实际情况限制内存,可咨询客户或软件实施伙伴确认,本例为:

    [ha_dr_provider_SrTakeover]

    provider =SrTakeover
    path = /hana/shared/srHook
    execution_order = 1
    
    [memorymanager]
    global_allocation_limit = 524288
    
    [system_replication]
    site_id = 2
    mode = sync
    actual_mode = sync
    site_name = HW00002
    operation_mode = logreplay
    preload_column_tables = false
    
    [system_replication_communication]
    listeninterface = .internal
    
    [system_replication_hostname_resolution]
    10.5.2.10 = HW00001
    10.5.2.11 = HW00002

  3. 按“ESC”,将vi编辑器切换至命令行模式。按“:”,将vi编辑器切换至底行模式,输入wq,按“Enter”,保存修改并退出vi编辑器。

    打印示例:

    HW00002:/ # vi /hana/shared/S00/global/hdb/custom/config/global.ini
    [ha_dr_provider_SrTakeover]
    provider =SrTakeover
    path = /hana/shared/srHook
    execution_order = 1
    
    [memorymanager]
    global_allocation_limit =524288
    
    [system_replication]
    site_id = 2
    mode = sync
    actual_mode = primary
    site_name = HW00002
    operation_mode = delta_datashipping
    preload_column_tables = false
    
    [system_replication_communication]
    listeninterface = .internal
    
    [system_replication_hostname_resolution]
    10.5.2.10 = HW00001
    10.5.2.11 = HW00002

  4. 以root用户登录备节点在备节点,在“/hana/shared”目录下创建名为“srHook”的目录。

    mkdir -p /hana/shared/srHook

  5. 在备节点“/hana/shared/srHook”下创建名为“SrTakeover.py”的文件

    vi SrTakeover.py
    说明:
    • SrTakeover.py文件内容如下,用实际的PRD 实例号替代<INSTNR>,<USERNAME>用SYSTEM替代,<PASSWORD>用数据库密码替代,修改完成后保存退出。(如本例实例号为00,USERNAME为SYSTEM,PASSWORD为Huawei_123)。
    • 多租户时端口为“3<INSTNR>13”,非多租户时端口为“3<INSTNR>15”。
    """
    Sample for a HA/DR hook provider.
    
    When using your own code in here, please copy this file to location on /hana/shared outside the HANA installation.
    This file will be overwritten with each hdbupd call! To configure your own changed version of this file, please add to your global.ini lines similar to this:
    
    [ha_dr_provider_<className>]
    provider = <className>
    path = /hana/shared/haHook
    execution_order = 1
    
    
    For all hooks, 0 must be returned in case of success.
    
    SUSE Specific Instructions:
    Replace the following tokens : <INSTNR> - Instance Number [e.g. 00 - 99 ]
    <USERNAME> - Username [ e.g. SYSTEM ]
    <PASSWORD> - user password [ e.g. Welcome01 ]
    
    
    """
    
    from hdb_ha_dr.client import HADRBase, Helper
    import os, time, dbapi
    
    
    class SrTakeover(HADRBase):
    
    def __init__(self, *args, **kwargs):
    # delegate construction to base class
    super(SrTakeover, self).__init__(*args, **kwargs)
    
    def about(self):
    return {"provider_company" :       "SUSE",
    "provider_name" :          "SrTakeover", # provider name = class name
    "provider_description" :   "Replication takeover script to set parameters to default.",
    "provider_version" :       "1.0"}
    
    
    def startup(self, hostname, storage_partition, system_replication_mode, **kwargs):
    self.tracer.debug("enter startup hook; %s" % locals())
    self.tracer.debug(self.config.toString())
    
    
    self.tracer.info("leave startup hook")
    return 0
    
    def shutdown(self, hostname, storage_partition, system_replication_mode, **kwargs):
    self.tracer.debug("enter shutdown hook; %s" % locals())
    self.tracer.debug(self.config.toString())
    
    self.tracer.info("leave shutdown hook")
    return 0
    
    def failover(self, hostname, storage_partition, system_replication_mode, **kwargs):
    self.tracer.debug("enter failover hook; %s" % locals())
    self.tracer.debug(self.config.toString())
    
    self.tracer.info("leave failover hook")
    return 0
    
    def stonith(self, failingHost, **kwargs):
    self.tracer.debug("enter stonith hook; %s" % locals())
    self.tracer.debug(self.config.toString())
    
    # e.g. stonith of params["failed_host"]
    # e-g- set vIP active
    
    self.tracer.info("leave stonith hook")
    return 0
    
    def preTakeover(self, isForce, **kwargs):
    """Pre takeover hook."""
    self.tracer.info("%s.preTakeover method called with isForce=%s" % (self.__class__.__name__, isForce))
    
    if not isForce:
    # run pre takeover code
    # run pre-check, return != 0 in case of error => will abort takeover
    return 0
    else:
    # possible force-takeover only code
    # usually nothing to do here
    return 0
    
    
    def postTakeover(self, rc, **kwargs):
    """Post takeover hook."""
    self.tracer.info("%s.postTakeover method called with rc=%s" % (self.__class__.__name__, rc))
    
    if rc == 0:
    # normal takeover succeeded
    conn = dbapi.connect('localhost',3<INSTNR>13,'<USERNAME>','<PASSWORD>')
    cursor = conn.cursor()
    stmnt = "ALTER SYSTEM ALTER CONFIGURATION ('global.ini','SYSTEM') UNSET ('memorymanager','global_allocation_limit') WITH RECONFIGURE"
    cursor.execute(stmnt)
    stmnt = "ALTER SYSTEM ALTER CONFIGURATION ('global.ini','SYSTEM') UNSET ('system_replication','preload_column_tables') WITH RECONFIGURE"
    cursor.execute(stmnt)
    return 0
    elif rc == 1:
    # waiting for force takeover
    conn = dbapi.connect('localhost',3<INSTNR>13,'<USERNAME>','<PASSWORD>')
    cursor = conn.cursor()
    stmnt = "ALTER SYSTEM ALTER CONFIGURATION ('global.ini','SYSTEM') UNSET ('memorymanager','global_allocation_limit') WITH RECONFIGURE"
    cursor.execute(stmnt)
    stmnt = "ALTER SYSTEM ALTER CONFIGURATION ('global.ini','SYSTEM') UNSET ('system_replication','preload_column_tables') WITH RECONFIGURE"
    cursor.execute(stmnt)
    return 0
    elif rc == 2:
    # error, something went wrong
    return 0

  6. 完成SrTakeover.py文件编辑后,输入wq,按“Enter”,保存修改并退出编辑器。
  7. 在备节点拷贝文件_“_init__.py dbapi.py resultrow.py”“/hana/shared/srHook”目录。

    cd /usr/sap/hdbclient/hdbcli/
    cp __init__.py dbapi.py resultrow.py /hana/shared/srHook

  8. 在备节点执行进入“/hana/shared/srHook”目录,更改文件权限及owner,其中s00请用实际的生产实例sid代替。

    cd /hana/shared/srHook
    chmod 740 *.py
    chown -R s00adm:sapsys /hana/shared/srHook

  9. 以root用户登录备节点,然后使用命令su - qasadm切换到HANA数据库用户(qasadm中qas请使用实际测试数据库SID的小写替换)。
  10. 编辑“/hana/shared/QAS/global/hdb/custom/config/global.ini ”, 限制测试数据库的内存大小(QAS是测试数据库SID名称,请根据用户实际SID替换)。

    1. 执行命令vi /hana/shared/QAS/global/hdb/custom/config/global.ini
    2. 输入“i”进入编辑模式。
    3. 在文件增加下面字段: 其中本例global_allocation_limit=1048576表示内存限制,单位为MB,请根据实际情况限制内存,可咨询客户或软件实施伙伴确认,本例为:
      [system_information]
      usage=test
      
      [memorymanager]
      global_allocation_limit=1048576
      说明:

      测试系统最大内存配置根据实际需求来设定。

  11. 本步骤只在备节点同时存在测试和开发两个数据库实例时需执行。
  12. 以root用户登录备节点,然后使用命令su - devadm切换到HANA数据库用户(devadm中dev请使用实际开发数据库SID的小写替换)。
  13. 编辑文件“/hana/shared/DEV/global/hdb/custom/config/global.ini”, 限制开发数据库的内存大小(DEV是开发数据库SID名称, 请根据用户实际SID替换)。

    1. 执行命令vi /hana/shared/DEV/global/hdb/custom/config/global.ini
    2. 输入“i”进入编辑模式。
    3. 在文件增加下面字段:其中本例global_allocation_limit=1048576表示内存限制,单位为MB,请根据实际情况限制内存,可咨询客户或软件实施伙伴确认,本例为:
      [system_information]
      usage=development
      
      [memorymanager]
      global_allocation_limit=1048576
      说明:

      开发系统最大内存配置根据实际需求来设定

  14. 执行命令HDB start启动备节点数据库。

    打印示例如下:

    HW00002:/usr/sap/S00/HDB00> HDB start
    StartService
    Impromptu CCC initialization by 'rscpCInit'.
      See SAP note 1266393.
    OK
    OK
    Starting instance using: /usr/sap/S00/SYS/exe/hdb/sapcontrol -prot NI_HTTP -nr 00 -function StartWait 2700 2
    12.10.2015 15:16:53
    Start
    OK
    12.10.2015 15:17:27
    StartWait
    OK

  15. 执行命令hdbnsutil -sr_state查看数据库状态。显示online状态为“true”以及模式为“sync”而且能够查到两个节点,则表示同步模式注册成功。

    打印示例如下:

    HW00002:/usr/sap/S00/HDB00> hdbnsutil -sr_state
    checking for active or inactive nameserver ...
    System Replication State
    ~~~~~~~~~~~~~~~~~~~~~~~~
    online: true
    mode: sync
    site id: 2
    site name: HW00002
    active primary site: 1
    
    Host Mappings:
    ~~~~~~~~~~~~~~
    HW00002 -> [HW00001] HW00001
    HW00002 -> [HW00002] HW00002
    primary masters:HW00001
    done.
    HW00002:/usr/sap/S00/HDB00>

翻译
下载文档
更新时间:2018-10-17

文档编号:EDOC1100045798

浏览量:2621

下载量:203

平均得分:
本文档适用于这些产品
相关文档
相关版本
Share
上一页 下一页