优炫实时应用集群 (UXDB SRAC)

1 概述

1.1 UXDB SRAC 介绍

UXDB SRAC(Share-disk Real Application Cluster)是一款为应用提供更高级别的高可用数据库集群解决方案,可以让集群内多个服务器像一台机器那样协同工作,在提升集群整体系统处理能力的同时确保了业务连续性和数据安全。集群采用全对称模型架构设计,支持集群内任意节点操作全量数据且无差别执行任意业务,可最大限度发挥集群内所有硬件资源性能。此产品为客户带来的核心价值是:提供更高级别的业务连续性保障基石,客户无需应用改造即可实现集群的线性扩展和故障自愈,具备高可用、高性能和易伸缩等特性。

IMG

图1 UXDB SRAC总体架构示意图

UXDB SRAC是基于共享存储构建的多写多读数据库集群,通过构建文件系统数据缓存与元数据缓存的方式,使集群能自行管理、使用文件系统底层数据。实现文件系统元数据一致性控制技术,能够协调多机之间的文件系统缓存一致性,使得多机能够并发地、高速地、安全地操作共享数据文件。支持最高8节点集群部署,具备99.999%以上高可用性。 基于内存融合技术和集群事务并发控制技术构建了集群全对称架构。内存融合技术使集群内每个实例的数据缓冲区相互连通,数据资源通过高速内网进行相互分享,并且全局共享内存的并发操作规则符合数据库控制要求,达到逻辑上融合内存的效果;集群事务并发控制技术在每个实例上都保留全局的事务状态信息,能够允许每个实例上的数据库连接仅通过访问本机内存就能获知全局的事务状态,通过一些关键的信息同步、协调、控制方法为各个实例上的全局事务状态保障实时一致性,形成全局实时一致的集群数据库事务状态控制体系。 在全对称架构体系下构建故障检测与恢复子系统,故障出现后可选取任意一个存活实例对故障实例的数据进行恢复,该技术保障在数据库总体服务不停止的情况下,对宕机的数据库实例的数据进行重新处理和恢复的一系列操作,可最大限度保障应用程序连续不中断操作。

1.2. 产品优势

1. 全栈高可用

集群部署全栈高可用分为三个关键层次:应用接入层、数据库集群层和共享存储层。

应用接入层 集群对外支持统一智能接入点(SCAN IP),此功能可以确保应用连接请求被智能地分发到集群内数据库实例,其内部不但支持多种负载均衡策略配置,而且内部支持故障自动漂移的高可用策略。对应用可以极大简化驱动配置且无需关心集群内部有多少实例。

数据库集群层 数据库集群实例架构:集群内多个实例具备全读全写能力,在集群数据库的业务部署与在单机数据库操作没有区别,简化了应用的业务开发部署,在高可用支持层面,为了最大限度的保障业务系统连续性,集群数据库恢复策略构建了基于数据库实例的全对称架构,在故障一个数据库实例或服务器后,在其故障数据库实例上缓存的最新版本数据,会从存活数据库实例中任意选择一个实例执行在线恢复,不影响集群中剩余数据库实例执行业务流,存活数据库实例仍然保持全对称模式对外提供服务。

共享存储层 底层存储使用共享存储,所有的数据库文件(数据文件、控制文件、WAL日志等)都存放在磁盘阵列上,能够确保集群所有实例可以共同操作同一份数据库文件;共享存储磁盘阵列本身支持RAID的冗余模式来防止单块磁盘或整个存储路径的故障,保障数据的持久性和可用性;其次对于文件系统层面也支持数据镜像组模式配置,提供多副本策略。

2. 高效的事务处理

数据库集群支持低延迟和高吞吐量的事务特性,可充分利用集群内所有节点的硬件资源进行事务并行化处理。集群支持高效事务处理能力其关键点:智能负载均衡、并行事务处理和强一致保障机制。

智能负载均衡 支持多种负载均衡配置策略,监视器统计模块会将业务请求根据不同的负载均衡策略分配到集群对应的实例上。用户可根据不同机器硬件资源进行择优配置。

并行事务处理 集群能够针对同一套业务、同一份数据,使用多机并行的方式执行数据库业务,多机、多节点之间并行操作的效果符合集群同一套事务与并发控制的方式。该架构下的数据库集群该架构是具备并行处理事务的能力,性能表现将会明显大于单机数据库。

3. 易伸缩

集群实例按需配置 支持按需增减节点,在集群实例变动时会立即进入工作状态,在共享存储与内存融合的集群架构下不需要任何的数据导入等流程。对于添加和删除实例可在集群数据库实例正常提供服务的情况下进行,无需特殊安排停机或停服务,可实现真正的零计划内停机保障业务的连续性。

存储空间自由扩展 支持存储在线扩展能力,数据库无需停机且保障业务正常运行。随着数据量的增长,文件系统会智能地将数据分布到可用存储上,确保磁盘IO负载均匀。

2 环境准备

2.1 系统推荐

不同操作系统版本的配置可能存在差异,本文推荐使用 Kylin-Server-V10-SP3 系统。

X86 系统下载 ARM64 系统下载

2.2 操作权限与执行节点规范

用户权限要求
本文中,仅 3.1 章节相关操作需切换至 root 用户执行,其余所有操作均统一使用 uxdb 用户完成。

执行节点规则
各大章节开头会明确标注本章操作对应的执行节点;子章节若无特殊说明,默认沿用所属大章节的执行节点要求。若子章节单独标注了执行节点,则该规则仅在本小节内生效,其余子章节仍遵循大章节规范。

2.3 硬件规划

建议集群节点数量 ≥ 2,当节点数与物理服务器数量达到 1:1 配比时,可获得最优性能与资源利用率。

实例数量服务器数量配置类型性能表现适用场景
1 实例1 台单机部署⭐⭐开发测试
2 实例2 台最小集群⭐⭐⭐小型业务
3 实例3 台推荐配置⭐⭐⭐⭐生产环境
4+ 实例4 台以上大规模集群⭐⭐⭐⭐⭐高并发业务

2.4 网络规划

1. 私网通信要求

  • 带宽:≥ 10 Gbps(推荐 25 Gbps / 100 Gbps)
  • 延迟:≤ 1 ms(目标 ≤ 0.5 ms)
  • 抖动:≤ 0.1 ms
  • 丢包率:≤ 0.001%

2. 防火墙端口开放

用途端口
文件系统通信7777
数据库内部通信54321
业务接入通信52025、1521

3. 集群 IP 规划

机器外网 IPVIPSCAN_IPDB_IPUXFS_IP
node1192.30.0.101192.30.0.11192.30.0.10192.168.2.101192.168.3.101
node2192.30.0.102192.30.0.12 192.168.2.102192.168.3.102
node3192.30.0.103192.30.0.13 192.168.2.103192.168.3.103
node4192.30.0.104192.30.0.14 192.168.2.104192.168.3.104

重要:必须确保上述 IP 地址仅用于本集群(建议逐一 ping 检测,避免被其他机器占用)。

4. 网卡说明

建议每台服务器配置 3 张网卡,且所有节点的同名网卡使用一致名称。若共用单张网卡也可运行,但集群性能会下降。

  • 网卡一(em1):配置 UXFS_IP,用于文件系统通信,属内网网段。要求所有节点间可互通(ping 通)。
  • 网卡二(em2):配置 DB_IP,用于数据库实例间通信,属内网网段。要求所有节点间可互通(ping 通)。
  • 网卡三(em3):配置外网 IP、VIP、SCAN_IP,用于外部应用连接数据库。要求外网 IP、VIP、SCAN_IP 处于同一网段;外网 IP 需提前配置并确保外部可访问;VIP 和 SCAN_IP 配置在数据库参数文件中,由数据库启动后自动生成。

img

2.5 下载安装包

本软件为商业软件,不提供公开下载。如需试用,请通过“免费体验”渠道获取。

所需安装包示例:

  • uxdb-std-kylin10-x86_64-v2.1.1.1.04R.run
  • hacluster-ky10sp3-ky10.ky10.x86_64.rpm
  • uxfs-tools-1.8.9-1.ky10.x86_64.rpm

3 基础环境配置

注意:本章操作需在所有集群节点上执行。

3.1 配置 sudo 权限

1. 创建用户

若系统中尚无 uxdb 用户,请执行:

su root
useradd uxdb
passwd uxdb

2. 确认 uxdb 用户的 uid/gid 一致

检查各节点上 uxdb 用户的 UID 和 GID:

cat /etc/passwd | grep uxdb

img

若各节点不一致,请修改为相同值(默认为 1000):

usermod -u 1000 uxdb
groupmod -g 1000 uxdb

3. 配置 sudo 权限

编辑 sudoers 文件:

vim /etc/sudoers

添加以下行:

uxdb ALL=(ALL) NOPASSWD: ALL

3.2 配置其他环境变量

1. 挂载文件系统

切换为 uxdb 用户:

su uxdb

创建 UXFS 挂载目录:

sudo mkdir -p /u01/uxdbsrac

创建表决盘挂载目录:

sudo mkdir -p /ha/shared

2. 创建安装目录

若计划将软件安装在 /home/uxdb 下,可跳过此步;否则按需创建:

cd /home/uxdb
mkdir install

3. 修改主机名

  • node1 执行:

    sudo hostnamectl set-hostname node1
    exec bash
    
  • node2 执行:

    sudo hostnamectl set-hostname node2
    exec bash
    

4. 时间同步

检查各节点时间是否一致:

date

若不一致,先检查时区:

timedatectl

查看可用时区并设置为北京时间(东八区):

timedatectl list-timezones | grep -i asia
sudo timedatectl set-timezone Asia/Shanghai
timedatectl   # 验证

若时区一致但时间仍有偏差,请配置 NTP 服务进行同步。

5. 配置节点互信免密(uxdb 用户)

  1. 所有节点编辑 /etc/hosts,添加内网 IP 与主机名映射:

    sudo vi /etc/hosts
    
    192.168.3.101 node1
    192.168.3.102 node2
    192.168.3.103 node3
    192.168.3.104 node4
    
  2. 所有节点生成 SSH 密钥对:

    ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
    ls ~/.ssh/id_rsa*   # 验证
    
  3. 在 node1 上收集所有公钥:

    mkdir -p /tmp/ssh_keys
    cp ~/.ssh/id_rsa.pub /tmp/ssh_keys/node1.pub
    scp node2:~/.ssh/id_rsa.pub /tmp/ssh_keys/node2.pub
    cat /tmp/ssh_keys/*.pub > /tmp/ssh_keys/authorized_keys
    
  4. 将合并后的 authorized_keys 分发至所有节点:

    for NODE in node1 node2; do
        scp /tmp/ssh_keys/authorized_keys $NODE:~/.ssh/
        ssh $NODE "chmod 600 ~/.ssh/authorized_keys"
    done
    
  5. 删除 node1 上的临时文件:

    rm -rf /tmp/ssh_keys
    
  6. 所有节点验证免密登录(首次需输入 yes):

    ssh 192.30.0.101 date
    ssh 192.30.0.102 date
    ssh 192.168.2.101 date
    ssh 192.168.2.102 date
    ssh 192.168.3.101 date
    ssh 192.168.3.102 date
    
  7. 所有节点设置 SSH 文件权限:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_rsa ~/.ssh/authorized_keys
    
  8. 配置 SSH 服务端:

    sudo vi /etc/ssh/sshd_config
    

    确保以下行存在且未被注释:

    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    

    重启 SSH 服务:

    sudo systemctl restart sshd
    

4 共享磁盘准备

共享磁盘需被集群内所有节点访问(即各节点执行 lsblk 均能看到同一块盘)。若已有共享存储(如华为 FusionStorage),可跳过本章。本章使用 iSCSI 模拟共享存储,此方式会降低数据库性能,建议生产环境采用专用共享存储。

4.1 环境准备

  • iSCSI 客户端:node1、node2
  • iSCSI 存储服务器:server(需额外添加一块未使用的空盘)

IP 分配:

机器IP 地址
node1192.168.3.101
node2192.168.3.102
Server192.168.3.110

4.2 配置 iSCSI 服务端

注意:以下操作在 server 上执行。

  1. 安装 iSCSI target 软件:

    sudo yum -y install targetcli
    sudo systemctl start target
    sudo systemctl enable target
    
  2. 查看可用磁盘(本例使用 /dev/sdb):

    lsblk
    

    img

  3. 进入 targetcli 配置界面:

    cd /home/uxdb
    sudo targetcli
    
  4. 创建块存储后端:

    /> /backstores/block create disk_shared /dev/sdb
    

    img

  5. 创建 iSCSI Target,命名格式为 iqn.yyyy-mm.<反向域名>:自定义名称(自定义名称不能含下划线):

    /iscsi create iqn.2025-06.com.racshared:server
    

    img

  6. 创建 ACL,允许客户端连接:

    /> /iscsi/iqn.2025-06.com.racshared:server/tpg1/acls create iqn.2025-06.com.racshared:client1
    /> /iscsi/iqn.2025-06.com.racshared:server/tpg1/acls create iqn.2025-06.com.racshared:client2
    

    img

  7. 创建 LUN 映射:

    /> /iscsi/iqn.2025-06.com.racshared:server/tpg1/luns create /backstores/block/disk_shared
    

    img

  8. 配置监听 IP 和端口:

    /> cd /iscsi/iqn.2025-06.com.racshared:server/tpg1/portals
    /iscsi/iqn.20.../tpg1/portals> create 192.168.3.110 3260
    

    img

    若创建失败,先执行 delete 0.0.0.0 3260 删除默认监听。

  9. 设置 CHAP 认证用户名密码:

    /> cd /iscsi/iqn.2025-06.com.racshared:server/tpg1/acls/iqn.2025-06.com.racshared:client1/
    /iscsi/iqn.20...hared:client1> set auth userid=rac
    /iscsi/iqn.20...hared:client1> set auth password=123456
    /> cd /iscsi/iqn.2025-06.com.racshared:server/tpg1/acls/iqn.2025-06.com.racshared:client2/
    /iscsi/iqn.20...hared:client2> set auth userid=rac
    /iscsi/iqn.20...hared:client2> set auth password=123456
    

    img

  10. 保存退出:

    /> exit
    

    img

4.3 配置 iSCSI 客户端

注意:以下操作在所有 client 节点(node1、node2)上执行。

  1. 安装 iSCSI 客户端软件:

    sudo yum -y install iscsi-initiator-utils
    sudo systemctl start iscsi
    sudo systemctl enable iscsi
    
  2. 配置 Initiator 名称,必须与服务端 ACL 中设置的一致:

    sudo vi /etc/iscsi/initiatorname.iscsi
    

    node1 使用:

    InitiatorName=iqn.2025-06.com.racshared:client1
    

    node2 使用:

    InitiatorName=iqn.2025-06.com.racshared:client2
    

    img

  3. 修改 iSCSI 配置文件,启用 CHAP 认证:

    sudo vi /etc/iscsi/iscsid.conf
    

    去掉以下行注释:

    node.session.auth.authmethod = CHAP
    

    配置用户名密码(与服务端一致):

    node.session.auth.username = rac
    node.session.auth.password = 123456
    

    img

  4. 重启服务,使配置生效:

    sudo systemctl restart iscsid
    sudo systemctl restart iscsi
    
  5. 发现 Target:

    sudo iscsiadm -m discovery -t sendtargets -p 192.168.3.110
    

    img

    若连接失败,请关闭 server 防火墙:

    sudo systemctl stop firewalld
    sudo systemctl disable firewalld
    
  6. 设置节点自动登录:

    sudo iscsiadm -m node -p 192.168.3.110 --op update -n node.startup -v automatic
    sudo iscsiadm -m node -p 192.168.3.110 -n node.startup
    sudo iscsiadm -m node -p 192.168.3.110 --op update -n node.conn[0].startup -v automatic
    sudo iscsiadm -m node -p 192.168.3.110 -n node.startup
    

    imgimg

  7. 登录 iSCSI 设备(若已配置自动登录则无需重复执行):

    sudo iscsiadm -m node -p 192.168.3.110 -l
    

    img

  8. 格式化共享磁盘(仅在其中一个客户端执行一次):

    sudo mkfs.ext4 /dev/sdb
    

    img

  9. 验证文件共享:

    • 在 node1 上挂载并创建文件:
      sudo mkdir /mnt/shared
      sudo mount /dev/sdb /mnt/shared
      sudo chown -R uxdb:uxdb /mnt/shared
      cd /mnt/shared
      touch 1.txt
      echo "123456789" > 1.txt
      cat 1.txt
      

      img

    • 在 node2 上挂载并查看:
      sudo mkdir /mnt/shared
      sudo mount /dev/sdb /mnt/shared
      cd /mnt/shared
      ls
      cat 1.txt
      

      img

    • 测试成功后,所有 client 卸载挂载:
      sudo umount /mnt/shared
      

5 命令行安装集群

注意:本章操作需在所有集群节点上执行。

  1. 赋予安装包执行权限并运行:

    sudo chmod +x uxdb-std-kylin10-x86_64-v2.1.1.1.04R.run
    sudo ./uxdb-std-kylin10-x86_64-v2.1.1.1.04R.run
    
  2. 选择命令行安装模式:输入 1 img

  3. 欢迎界面:输入 1 img

  4. 产品简介界面:输入 1 img

  5. 许可协议界面:输入 1 img

  6. 选择安装用户:输入 uxdb,然后输入 1 img

  7. 选择安装路径:输入 /home/uxdb,然后依次输入 Y1 img

  8. 选择安装方式:依次输入 11 img

  9. 选择安装类型:输入 N,然后 Y,最后 1 img

  10. 选择 License 文件:直接按回车跳过,然后输入 1 img

  11. 等待安装完成(无需输入) img

  12. 生成配置脚本:按回车键,然后输入 Y img

6 获取许可证 License

注意:本章操作需在所有集群节点上执行。

6.1 获取 license

  1. 进入 UXDB 安装路径下的 license 目录:

    cd /home/uxdb/uxdbinstall/license
    
  2. 生成硬件信息文件:

    sudo rm -f UxdbLicense.json
    ./GetUserInfo.sh --version_type=standard --version=v2.1.1.1.04R
    

    version_type 可选 standard(标准版)或 enterprise(企业版)。可通过 ./GetUserInfo.sh --help 查看详细说明。

  3. 将生成的 uxdbLicense.json 文件发送给优炫技术支持,获取对应的 uxdb.lic 许可证文件。

  4. 将获取的 uxdb.lic 放入各节点的 license 目录下:

    cp uxdb.lic /home/uxdb/uxdbinstall/license/
    

6.2 安装 license

  1. 安装许可证(文件已在目录中):

    # 无需额外操作,只需确保 uxdb.lic 位于正确位置
    
  2. 执行提权命令(新安装数据库必须执行,若数据库已运行请先停止):

    sudo setcap cap_setuid+ep /home/uxdb/uxdbinstall/dbsql/bin/uxdb
    

7 文件系统部署与使用

注意:文件系统模块暂不对外提供,如需使用请联系技术支持。

8 数据库的使用

注意:本章操作默认在 node1 上执行,特殊标注的除外。

8.1 初始化表决盘

  1. 在 node1 上初始化表决盘:

    /home/uxdb/uxdbinstall/dbsql/bin/initdb --shared-disk-path=/ha/shared -R
    

    img

  2. node2 需重新挂载表决盘并重启服务:

    sudo umount /ha/shared
    sudo mount /dev/sdb1 /ha/shared
    sudo systemctl restart ha-cluster
    

    确保所有节点 /ha/shared 目录内容一致。 img

8.2 数据库创建和启动

  1. 创建数据库:

    /home/uxdb/uxdbinstall/dbsql/bin/initdb -W -R -D /u01/uxdbsrac/racdata -H /ha/shared
    
    • -W:创建时设置数据库超级管理员密码。
    • -D:指定数据库集群目录。
    • -R:启用 RAC 模式。
    • -H:指定表决盘目录。 img
  2. 配置集群实例信息(IP 为 DB_IP):

    vi /u01/uxdbsrac/racdata/super_rac.inventory
    
    # INSTANCEID  IP         PORT
    1       192.168.2.101     54321
    2       192.168.2.102     54321
    3       192.168.2.103     54321
    4       192.168.2.104     54321
    
  3. 配置 VIP 信息(IP 为外网 IP,网卡名根据实际修改):

    vi /u01/uxdbsrac/racdata/super_rac_vip.inventory
    
    # INSTANCEID  IP         PORT     INTERFACE      VIP
    1       192.30.0.101    52025    em3        192.30.0.11
    2       192.30.0.102    52025    em3        192.30.0.12
    3       192.30.0.103    52025    em3        192.30.0.13
    4       192.30.0.104    52025    em3        192.30.0.14
    
  4. 配置 SRAC 集群参数:

    vi /u01/uxdbsrac/racdata/super_rac.conf
    
    # 普通集群配置参数(根据实际情况调整)
    heartbeat_try_times = 36
    popQueueTimeout = 600
    pcm_request_timeout = 300
    heap_default_fillfactor = 80
    stats_collector = on
    autovacuum = on
    expand_relation_nblocks = 8
    enable_indexonlyscan = off
    
    # 表决盘配置
    enable_voting_disk = on
    voting_disk = '/ha/shared'
    
    # SCAN IP 与 TAF 配置
    enable_scan = on
    enable_client_failover = on
    scan_vip = '192.30.0.10'
    scan_port = 1521
    
    # 负载均衡配置示例
    load_balance_advisor='{application_name=lba1; lba_policy=LB_RR; instances=instance1,instance2,instance3,instance4}&{application_name=lba2; lba_policy=LB_WRR; instances=instance1:2,instance2:3,instance3:2,instance4:3}'
    

    scan_vipscan_port 按规划填写。LB_RR 为轮询策略,LB_WRR 为权重策略。

  5. 配置实例参数(可根据硬件调整):

    vi /u01/uxdbsrac/racdata/ux_template/uxsinodb.conf
    
    max_connections = 500
    shared_buffers = 8GB
    max_wal_size = 20GB
    effective_cache_size = 16GB
    ckpt_strategy = 12
    glb_ckpt_timeout = 3600
    checkpoint_timeout = 15min
    
    # 日志配置(保留一天)
    log_filename = 'uxsinodb_%H%M.log'
    log_rotation_age = 1min
    log_rotation_size = 0GB
    log_truncate_on_rotation = on
    log_directory = '/home/uxdb/log'
    
  6. 查看 VIP 状态:

    /home/uxdb/uxdbinstall/dbsql/bin/ux_vipoper -D /u01/uxdbsrac/racdata status
    

    img

  7. 启动 SRAC 集群实例:

    • node1

      /home/uxdb/uxdbinstall/dbsql/bin/ux_ctl -D /u01/uxdbsrac/racdata -o "-c uxdb_rac=on -c instance_id=1 -p 52025" start
      /home/uxdb/uxdbinstall/dbsql/bin/ux_vipoper -D /u01/uxdbsrac/racdata status
      

      img

    • node2

      /home/uxdb/uxdbinstall/dbsql/bin/ux_ctl -D /u01/uxdbsrac/racdata -o "-c uxdb_rac=on -c instance_id=2 -p 52025" start
      /home/uxdb/uxdbinstall/dbsql/bin/ux_vipoper -D /u01/uxdbsrac/racdata status
      

      img

    任意节点执行以下命令,应看到两个实例:

    /home/uxdb/uxdbinstall/dbsql/bin/uxsql -h 192.30.0.10 -p 1521 --enable-scan -c "show all instance;"
    

    img

  8. 停止 SRAC 集群实例(正常使用无需执行):

    • node1:
      /home/uxdb/uxdbinstall/dbsql/bin/ux_ctl -D /u01/uxdbsrac/racdata -o "-c uxdb_rac=on -c instance_id=1 -p 52025" stop
      
    • node2:
      /home/uxdb/uxdbinstall/dbsql/bin/ux_ctl -D /u01/uxdbsrac/racdata -o "-c uxdb_rac=on -c instance_id=2 -p 52025" stop
      
  9. 删除 SRAC 集群(正常使用无需执行):

    /home/uxdb/uxdbinstall/dbsql/bin/removedb -D /u01/uxdbsrac/racdata
    

8.3 配置连接

注意:本小节配置需在所有集群节点上执行。

  1. 配置 TAF 环境变量:

    vi /home/uxdb/.bash_profile
    

    添加:

    export UXDB_CONFIG_FILE=/home/uxdb/uxdbinstall/dbsql/bin/uxdb.cfg
    

    重新载入(不要将 source 写入配置文件):

    source /home/uxdb/.bash_profile
    
  2. 配置 TAF 参数文件:

    vi /home/uxdb/uxdbinstall/dbsql/bin/uxdb.cfg
    
    enable_taf=true
    reconnect_interval=5
    reconnect_count=120
    taf_mode=client
    
  3. 参数优先级说明(自上而下优先级递减):

    • 用户输入参数:最高优先级,连接字符串中指定的 TAF 参数直接生效。
    • 配置文件参数:若用户未传入,则读取 uxdb.cfg 中的设置。
    • 驱动默认参数:最低优先级,无上述配置时使用驱动内置默认值。
  4. 使用 SCAN IP 连接数据库示例:

    /home/uxdb/uxdbinstall/dbsql/bin/uxsql "host=192.30.0.12 port=1521 application_name=lba1 enable_scan=true enable_taf=true taf_mode=client reconnect_count=10 reconnect_interval=3"
    

    img

    参数说明:

    • host:SCAN IP 或具体节点 IP
    • port:SCAN 端口(1521)
    • enable_scan=true:启用 SCAN IP 功能
    • enable_taf=true:启用客户端透明故障转移
    • taf_mode:TAF 模式,支持 sessionclient
    • reconnect_count:最大重连次数
    • reconnect_interval:重连间隔(秒)

9 初始测试

9.1 创建测试库

创建名为 uxbench50 的数据库:

/home/uxdb/uxdbinstall/dbsql/bin/createdb uxbench50

9.2 uxbench 初始化

初始化 50 仓数据:

time /home/uxdb/uxdbinstall/dbsql/bin/uxbench -i -s 50 uxbench50 -n

9.3 执行 uxbench 压力测试

并发数 30,持续 600 秒,重连次数 120,重连间隔 2 秒:

/home/uxdb/uxdbinstall/dbsql/bin/uxbench -c 30 -T 600 -P 10 uxbench50 -n --host=192.30.0.12 --port=1521 --enable-scan --enable-taf --taf-mode="session" --reconnect-count=120 --reconnect-interval=2

该命令通过 SCAN IP 连接,并启用 TAF 功能。