首页 > 其他分享 >ptk安装磐维(cmdb)+zookeeper+shardingsphere

ptk安装磐维(cmdb)+zookeeper+shardingsphere

时间:2024-02-19 20:46:38浏览次数:19  
标签:ptk dbmt 磐维 PanWeiDB shardingsphere omm 15400 10.10 data

目录

一、概览

1.1、 ShardingSphere-Proxy

  ShardingSphere-Proxy是透明化的数据库代理端,支持配置文件和DistSQL两种配置方式,作为代理部署在数据库上层,对应用层透明,兼容基于MySQL/PostgreSQL协议的数据库及客户端

1.分库
在水平分库中,就是将数据库中的表,存到不同的数据库,但是不同库的表数量和结构是一样的,只是每个库的数据都不一样,没有交集,库的并集是全量数据

在垂直分库中,以表为依据,按照业务归属不同,将不同的表拆分到不同的库中,不同的库存储的可能是不同的表,库的并集是全量数据

2.分表
水平分表就是将一张表分为多张表,表的结构都一样,每个表的数据都不一样,没有交集,所有表的并集是全量数据;

垂直分表将一张表字段拆分为不同的表,合并起来就是整个全量数据,但是这种可以归属于设计之初的设计缺陷

虽然使用分库分表可以一定程度解决上面所说的问题,但是分了之后也有可能再变大,总不能一直无脑拆分下去把,此时应该使用读写分离,也就是说读写分离应该是在分库分表的基础之上来实施的。

image.png

1.2、 ShardingSphere特性

ShardingSphere支持丰富的分布式场景所需功能,表1列出了这些特性和定义,后面章节会展开介绍。

表1.产品功能

特性 定义 说明
数据分片 ShardingSphere基于底层数据库提供分布式数据库解决方案,可以水平扩展计算和存储。
读写分离 基于对SQL语义理解及对底层数据库拓扑感知能力,提供灵活的读写流量拆分和读流量负载均衡。
分布式事务 支持XA和BASE的混合事务引擎,ShardingSphere 提供在独立数据库上的分布式事务功能,保证跨数据源的数据安全。
高可用 ShardingSphere提供基于原生或 Kubernetes 环境下数据库集群的分布式高可用能力。
数据加密 ShardingSphere提供完整、透明、安全、低成本的数据加密解决方案。
影子库 在全链路压测场景下,ShardingSphere支持不同工作负载下的数据隔离,避免测试数据污染生产环境。
数据库网关 屏蔽应用与底层多元化数据库之间连接,同时为不同的业务场景提供统一的访问协议和语法体系。 实验特性
数据迁移 ShardingSphere提供跨数据源的数据迁移能力,并可支持重分片扩展。 仅支持单机到分布式迁移
流量治理 在故障中为组件提供细粒度的控制能力,并通过熔断,限流等机制提供自愈的可能
可观察性 通过 Agent模块为应用提供可观察性的能力,支持Tracing(链路跟踪)、 Metrics(指标监控)和 Logging(日志) Proxy组件支持
联邦查询 ShardingSphere提供跨数据源的复杂查询分析能力,实现跨源的数据关联与聚合。

ShardingSphere功能丰富全面,但个别实现还不完善,在使用方面也有一些限制:

  1. 权限管理粒度仅支持库级别,不支持表、列粒度的权限控制;

  2. 仅支持单库到分布式的数据迁移分片,且不能在同一个库内做迁移;

  3. 不支持弹性伸缩,不支持数据重分布;

  4. 审计功能目前仅支持一种拦截算法(查询时是否指定了分片列作为过滤条件),暂未支持统计等功能;

  5. 读写分离无法感知延迟来智能调整路由,目前开源版本仅支持固定规则的负载均衡路由策略;

  6. 数据加密仅支持基础的基于列的加密算法,不支持多密钥管理,复杂密态等;

  7. 语法兼容性还需完善:目前支持MySQL,PostgreSQL,SQLServer, Oracle, openGauss以及符合 SQL92 规范的SQL方言,但由于 SQL 语法的复杂性,目前仍然存在少量不支持的 SQL;

二、环境准备

2.1、ip 规划

节点类 主机名 IP sharding
主库a panweia1 10.10.3.13
备库 panweia2 10.10.3.14
主库b panweib1 10.10.3.15
备库 panweib2 10.10.3.16
主库c panweic1 10.10.3.17
备库 panweic2 10.10.3.18

2.2、修改主机名

hostnamectl set-hostname panweia1
hostnamectl set-hostname panweia2
hostnamectl set-hostname panweib1
hostnamectl set-hostname panweib2
hostnamectl set-hostname panweic1
hostnamectl set-hostname panweic2

2.3、关闭防火墙和透明大页(所有节点)

1) 关闭 SELINUX
修改 /etc/selinux/config文件中的“SELINUX”值为“disabled”
2) 关闭防火墙并禁止开机重启
systemctl disable firewalld.service
systemctl stop firewalld.service
3) 关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled

2.4 配置yum,安装系统包

mkdir /media/cdrom
mount /dev/cdrom /media/cdrom
cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak/

vi /etc/yum.repos.d/oracle.repo
[Server]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
baseurl=file:///media/cdrom
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release


yum install -y bzip2 libaio-devel flex bison ncurses-devel glibc-devel libxml2-devel patch redhat-lsb-core unzip gcc gcc-c++ perl openssl-devel libffi-devel libtool zlib-devel
yum install -y libaio-devel gcc gcc-c++ zlib-devel expect 


 yum install -y numactl
 

2.5 修改系统参数

cat >> /etc/sysctl.conf << eof
kernel.sem = 250 6400000 1000 25600
net.core.rmem_default = 262144
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.tcp_keepalive_intvl=30
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_wmem=8192 250000 16777216
net.core.netdev_max_backlog=65535
net.core.somaxconn=65535
eof
sysctl -p

2.6 创建omm用户和用户组及目录

groupadd omm
useradd -g omm omm
passwd omm
omm

shell# mkdir /enmo
shell# chown omm:omm -R /enmo
shell# su - omm
shell$ cd /enmo
shell$ mkdir ptk
shell$ mkdir cmdb
shell$  mkdir soft
shell$

三、PTK安装磐维数据库 (所有节点都要操作)

3.1 PTK介绍

PTK (Provisioning Toolkit)是一款针对 数据库开发的软件安装和运维工具,仅需要执行一行命令即可帮助用户便捷地完成数据库的安装部署。

3.2 下载ptk

https://cdn-mogdb.enmotech.com/ptk/latest/ptk_linux_x86_64.tar.gz

3.3 ptk 参数文件

global:
    cluster_name: cmdb_cluster1
    user: omm
    group: omm
    base_dir: /enmo/cmdb
db_servers:
    - host: 10.10.3.13
      db_port: 15400
      role: primary
      ssh_option:
        port: 22
        user: root
        password: pTk6ZDlkNTFjNDQ9PD48PUE/QWRpNmV1QUE0eE52UVpUNVR4TEZUYXB2a0JjYlRubTRFUU1ZaHBjZUM1N28=
    - host: 10.10.3.14
      db_port: 15400
      role: standby
      ssh_option:
        port: 22
        user: root
        password: pTk6ZDlkNTFjNDQ9PD48PUE/QVA2a1Y1cmMwaW5OQmJZZ3FxMThxd3hjZmVTOUVRbkoyWHFzTnVsNDN4TWc=
   
   
   
global:
    cluster_name: cmdb_cluster2
    user: omm
    group: omm
    base_dir: /enmo/cmdb
db_servers:
    - host: 10.10.3.15
      db_port: 15400
      role: primary
      ssh_option:
        port: 22
        user: root
        password: pTk6ZjE2MTQxNWM9PD48PUJBQHNST0lYejl6b1lsSkxFYVpJUktkYXVHcFdldE93R3lFdnQyYkp5YWU4RFk=
    - host: 10.10.3.16
      db_port: 15400
      role: standby
      ssh_option:
        port: 22
        user: root
        password: pTk6ZjE2MTQxNWM9PD48PUJBQDhMak1xdlItTnpJeDdpNk5WVEh6X3RiWE5wekJRRm96SkQ3b01tR0F2Sms=
      
   
   
global:
    cluster_name: cmdb_cluster3
    user: omm
    group: omm
    base_dir: /enmo/cmdb
db_servers:
    - host: 10.10.3.17
      db_port: 15400
      role: primary
      ssh_option:
        port: 22
        user: root
        password: pTk6NmZkYTIyNjg9PD48PUM8PEc1V29NUTFJZjhFQWFtRzRaNEctN3drYVV5UHJwYXlNZHl2ZFVQYmItM1E=
    - host: 10.10.3.18
      db_port: 15400
      role: standby
      ssh_option:
        port: 22
        user: root
        password: pTk6MzEwNWM3Y2Y9PD48PUM8PUhOWlFqSVJKNEdxZGgtUHlHUFAxNHBYb19CTnZENmF2cGs1UFBWbzladmc=
     
 

3.4 安装磐维


ptk encrypt 123123

shell# /enmo/ptk/ptk checkos -f config.yaml
INFO[2023-10-20T15:54:28.871] prechecking dependent tools...               
WARN[2023-10-20T15:54:28.992] [10.10.3.13][omm] device(/dev/sda) readahead value=8192, expect 16384. 
WARN[2023-10-20T15:54:29.021] [10.10.3.14][omm] device(/dev/sda) readahead value=8192, expect 16384. 
INFO[2023-10-20T15:54:29.033] [10.10.3.14][omm] check port 15400         
INFO[2023-10-20T15:54:29.033] [10.10.3.13][omm] check port 15400            
INFO[2023-10-20T15:54:33.131] [10.10.3.14][omm] timezone: +0800          
INFO[2023-10-20T15:54:33.171] all checkers finished                        
INFO[2023-10-20T15:54:33.171] time elapsed: 4s                             
# Check Results
                Item                |  Level   
------------------------------------+----------
  A1.Check_OS_Version               | OK       
  A2.Check_Kernel_Version           | OK       
  A3.Check_Unicode                  | OK       
  A4.Check_TimeZone                 | OK       
  A5.Check_Swap_Memory_Configure    | Warning  
  A6.Check_SysCtl_Parameter         | Warning  
  A7.Check_FileSystem_Configure     | OK       
  A8.Check_Disk_Configure           | OK       
  A9.Check_BlockDev_Configure       | Warning  
  A9.Check_Logical_Block            | OK       
  A10.Check_Asynchronous_IO_Request | OK       
  A10.Check_IO_Configure            | OK       
  A10.Check_NR_Request              | Warning  
  A11.Check_Network_Configure       | OK       
  A12.Check_Time_Consistency        | OK       
  A13.Check_Firewall_Status         | OK       
  A14.Check_THP_Status              | OK       
  A15.Check_Dependent_Package       | OK       
  A16.Check_CPU_Instruction_Set     | OK       
  A17.Check_Port                    | OK       
  A18.Check_Selinux                 | OK       
  A19.Check_User_Ulimit             | OK       
Total count 22, abnormal count 0, warning count 4
   
[omm@panweia1 soft]$  ptk install -f config.yaml --pkg ./PanWeiDB_1.0.0_CentOS7_x86.tar.gz
INFO[2023-10-20T16:24:58.490] PTK Version: 1.0.9 release                   
INFO[2023-10-20T16:24:58.490] load config from config.yaml                 
If you continue to install the software,
you are accepting the license agreement of the software.

  [Y]: Accept and continue
  [C]: Show content of licence agreement
  [N]: Abort installation and exit

✔ Please enter (default: Y): y
Cluster Name: "cmdb_cluster1"
+--------------+--------------+-------------+-------+---------+-----------------+----------+
| az(priority) |      ip      | user(group) | port  |  role   |    data dir     | upstream |
+--------------+--------------+-------------+-------+---------+-----------------+----------+
| AZ1(1)       | 10.10.3.13 | omm(omm)    | 15400 | primary | /enmo/cmdb/data | -        |
|              | 10.10.3.14 | omm(omm)    | 15400 | standby | /enmo/cmdb/data | -        |
+--------------+--------------+-------------+-------+---------+-----------------+----------+
✔ Is cluster config correct (default=n) [y/n]: y                        

   cluste_name  |     host     | user | port  |    status     | message  
----------------+--------------+------+-------+---------------+----------
  cmdb_cluster1 | 10.10.3.13 | omm  | 15400 | start_success | success  
                | 10.10.3.14 | omm  | 15400 | start_success | success  
[omm@panweia1 soft]$    

四、zookeeper

4.1 部署集群Zookeeper(部署三个节点)

1.解压安装包到安装目录

shell# chown omm:omm apache-zookeeper-3.7.1-bin.tar.gz 
shell# mkdir /enmo/zookeeper

shell# tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /enmo/zookeeper
shell# mv apache-zookeeper-3.7.1-bin zk

4.2 配置环境变量

--所有节点

export ZKHOME=/enmo/zookeeper/zk
export PATH=/root/.ptk/bin:$ZKHOME/bin:$PATH
source ~/.bash_profile

4.3 编辑配置文件
---将conf目录配置文件zoo_sample.cfg复制成zoo.cfg,并添加所需配置。

shell$ cat zoo.cfg |grep -v '#'
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/enmo/zookeeper/zk
clientPort=2181


server.1=10.10.3.13:2888:3888
server.2=10.10.3.15:2888:3888
server.3=10.10.3.17:2888:3888

五、shardingsphere安装

5.1 shardingsphere介绍

ShardingSphere-Proxy是一个maven打包的java工程,只需解压并添加必需的配置文件即可完成安装,下文详细介绍了安装及配置步骤,配置文件中高亮显示的内容需要根据部署环境和业务需要修改,其他配置可按需修改。

5.2 目录和解压

shell$ mkdir /enmo/shardingsphere
shell$ tar -zxvf apache-shardingsphere-5.3.0-shardingsphere-proxy-bin.tar.gz -C /enmo/shardingsphere
shell$ mv apache-shardingsphere-5.3.0-shardingsphere-proxy-bin ssp
shell$ cd ssp/

5.3 创建数据库

------------------10.10.3.13
PanWeiDB=# 
PanWeiDB=# create user dbmt identified by "Bcv_1308" Sysadmin; 
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
PanWeiDB=# create database data_312 owner dbmt;

CREATE DATABASE
PanWeiDB=# 
PanWeiDB=# create database data_310 owner dbmt;

CREATE DATABASE
PanWeiDB=# 
PanWeiDB=# create database data_311 owner dbmt;

CREATE DATABASE
PanWeiDB=# 
PanWeiDB=# \l+
                                                          List of databases
   Name    | Owner | Encoding | Collate | Ctype | Access privileges | Size  | Tablespace |                Description                 
-----------+-------+----------+---------+-------+-------------------+-------+------------+--------------------------------------------
 data_310  | dbmt  | UTF8     | C       | C     |                   | 12 MB | pg_default | 
 data_311  | dbmt  | UTF8     | C       | C     |                   | 12 MB | pg_default | 
 data_312  | dbmt  | UTF8     | C       | C     |                   | 12 MB | pg_default | 
 postgres  | omm   | UTF8     | C       | C     |                   | 26 MB | pg_default | default administrative connection database
 template0 | omm   | UTF8     | C       | C     | =c/omm           +| 12 MB | pg_default | default template for new databases
           |       |          |         |       | omm=CTc/omm       |       |            | 
 template1 | omm   | UTF8     | C       | C     | =c/omm           +| 12 MB | pg_default | unmodifiable empty database
           |       |          |         |       | omm=CTc/omm       |       |            | 
(6 rows)

PanWeiDB=# 
----------------------------10.10.3.15

[omm@panweib1 conf]$ gsql -r
gsql ((PanWeiDB(openGauss) 1.0.0 build 9a7e96bc) compiled at 2022-10-15 20:54:36 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

PanWeiDB=# create user dbmt identified by "Bcv_1308" Sysadmin; 
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
PanWeiDB=# 

PanWeiDB=# 
PanWeiDB=# create database data_313 owner dbmt;
CREATE DATABASE
PanWeiDB=# create database data_314 owner dbmt;
CREATE DATABASE
PanWeiDB=# create database data_315 owner dbmt;
CREATE DATABASE
PanWeiDB=# 
----------------------10.10.3.17

PanWeiDB=# create user dbmt identified by "Bcv_1308" Sysadmin; 
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
PanWeiDB=#  create database data_316 owner dbmt;
CREATE DATABASE
PanWeiDB=#  create database data_317 owner dbmt;
CREATE DATABASE
PanWeiDB=#  create database data_318 owner dbmt;
CREATE DATABASE
PanWeiDB=# 

5.4 配置server.yaml

安装路径下conf文件夹是默认的配置文件路径,其中server.yaml是数据库相关的配置,其他config-*文件为规则相关的配置,可以根据需要创建任意以“config-”开头的yaml文件。

mode:
  type: Cluster
  repository:
    type: ZooKeeper
    props:
      namespace: nlkf_db
      server-lists: 10.10.3.13:2181,10.10.3.15:2181,10.10.3.17:2181
      retryIntervalMilliseconds: 500
      timeToLiveSeconds: 60
      maxRetries: 3
      operationTimeoutMilliseconds: 500

authority:
  users:
    - user: dbmt
      password: Bcv_1308
  privilege:
    type: ALL_PERMITTED

transaction:
  defaultType:  LOCAL
sqlParser:
  sqlCommentParseEnabled: true
  sqlStatementCache:
    initialCapacity: 2000
    maximumSize: 65535
  parseTreeCache:
    initialCapacity: 128
    maximumSize: 1024
props:
  max-connections-size-per-query: 1
  kernel-executor-size: 16  # Infinite by default.
  proxy-frontend-flush-threshold: 128  # The default value is 128.
  proxy-frontend-database-protocol-type: openGauss
  proxy-hint-enabled: false
  sql-show: false
  check-table-metadata-enabled: false
  proxy-backend-query-fetch-size: -1
  proxy-frontend-executor-size: 0
  proxy-backend-executor-suitable: OLAP
  proxy-frontend-max-connections: 0 # Less than or equal to 0 means no limitation.
  sql-federation-type: NONE
  proxy-backend-driver-type: JDBC
  proxy-mysql-default-version: 5.7.22 # In the absence of schema name, the default version will be used.
  proxy-default-port: 3307 # Proxy default port.
  proxy-netty-backlog: 1024 # Proxy netty backlog.

5.5 配置config-sharding.yaml

databaseName: sharding_db
dataSources:
  ds_0:                        #数据源名字
    url: jdbc:opengauss://10.10.3.13:15400,10.10.3.14:15400/data_310?targetServerType=master&loadBalanceHosts=true&connectionExtraInfo=true
    username: dbmt
    password: Bcv_1308 
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 50
    minPoolSize: 1
  ds_1:                      #可配置多个数据源
    url: jdbc:opengauss://10.10.3.13:15400,10.10.3.14:15400/data_311?targetServerType=master&loadBalanceHosts=true&connectionExtraInfo=true
    username: dbmt
    password: Bcv_1308
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 50
    minPoolSize: 1
  ds_2:                      #可配置多个数据源
    url: jdbc:opengauss://10.10.3.13:15400,10.10.3.14:15400/data_312?targetServerType=master&loadBalanceHosts=true&connectionExtraInfo=true
    username: dbmt
    password: Bcv_1308
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 50
    minPoolSize: 1
  ds_3:                      #可配置多个数据源
    url: jdbc:opengauss://10.10.3.15:15400,10.10.3.16:15400/data_313?targetServerType=master&loadBalanceHosts=true&connectionExtraInfo=true
    username: dbmt
    password: Bcv_1308
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 50
    minPoolSize: 1    
  ds_4:                      #可配置多个数据源
    url: jdbc:opengauss://10.10.3.15:15400,10.10.3.16:15400/data_314?targetServerType=master&loadBalanceHosts=true&connectionExtraInfo=true
    username: dbmt
    password: Bcv_1308
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 50
    minPoolSize: 1
  ds_5:                      #可配置多个数据源
    url: jdbc:opengauss://10.10.3.15:15400,10.10.3.16:15400/data_315?targetServerType=master&loadBalanceHosts=true&connectionExtraInfo=true
    username: dbmt
    password: Bcv_1308
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 50
    minPoolSize: 1    
  ds_6:                      #可配置多个数据源
    url: jdbc:opengauss://10.10.3.17:15400,10.10.3.18:15400/data_316?targetServerType=master&loadBalanceHosts=true&connectionExtraInfo=true
    username: dbmt
    password: Bcv_1308
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 50
    minPoolSize: 1    
  ds_7:                      #可配置多个数据源
    url: jdbc:opengauss://10.10.3.17:15400,10.10.3.18:15400/data_317?targetServerType=master&loadBalanceHosts=true&connectionExtraInfo=true
    username: dbmt
    password: Bcv_1308
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 50
    minPoolSize: 1
  ds_8:                      #可配置多个数据源
    url: jdbc:opengauss://10.10.3.17:15400,10.10.3.18:15400/data_318?targetServerType=master&loadBalanceHosts=true&connectionExtraInfo=true
    username: dbmt
    password: Bcv_1308
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 50
    minPoolSize: 1          
 

rules:
- !SHARDING
  tables:
    aopen_api_cdrreq:
      actualDataNodes: ds_${0..8}.aopen_api_cdrreq_${0..1} 
      databaseStrategy:                                                     
        standard:                                             
          shardingColumn: id        
          shardingAlgorithmName: s12_cdrreq_inline 
      tableStrategy:
        standard:
          shardingColumn: name
          shardingAlgorithmName: cdrreq_inline

    aopen_api_cdrrsp:
      actualDataNodes: ds_${0..8}.aopen_api_cdrrsp_${0..1}
      databaseStrategy:
        standard:
          shardingColumn: id
          shardingAlgorithmName: s12_cdrreq_inline
      tableStrategy:
        standard:
          shardingColumn: name
          shardingAlgorithmName: cdrreq_inline

    aopen_api_cdrreq_new:
      actualDataNodes: ds_${0..8}.aopen_api_cdrreq_new_${0..1} 
      databaseStrategy:                                                     
        standard:                                             
          shardingColumn: id        
          shardingAlgorithmName: s12_cdrreq_inline 
      tableStrategy:
        standard:
          shardingColumn: name
          shardingAlgorithmName: cdrreq_inline

    aopen_api_cdrrsp_new:
      actualDataNodes: ds_${0..8}.aopen_api_cdrrsp_new_${0..1}
      databaseStrategy:
        standard:
          shardingColumn: id
          shardingAlgorithmName: s12_cdrreq_inline
      tableStrategy:
        standard:
          shardingColumn: name
          shardingAlgorithmName: cdrreq_inline          

      keyGenerateStrategy:
        column: reqseq 
        keyGeneratorName: snowflake

  bindingTables:
    - aopen_api_cdrreq,aopen_api_cdrrsp
    - aopen_api_cdrreq_new,aopen_api_cdrrsp_new
  broadcastTables:
    - aopen_api_define
  shardingAlgorithms:
    cdrreq_inline:
      type: HASH_MOD 
      props:
        sharding-count: '2' 
    s12_cdrreq_inline:
      type: HASH_MOD
      props:
        sharding-count: '12' 
    test_mod:
      type: MOD 
      props:
        sharding-count: '2' 
  keyGenerators:
    snowflake:
      type: SNOWFLAKE
#
#  auditors:

#    sharding_key_required_auditor:
#      type: DML_SHARDING_CONDITIONS

######################################################################################################
#
# If you want to connect to MySQL, you should manually copy MySQL driver to lib directory.
#

5.6 shardingsphere 启动

cd /enmo/shardingsphere/ssp/bin
./start.sh

六、 测试

登录sharding
gsql -h 10.10.3.13 -p 3307 -U dbmt -W Bcv_1308 -d sharding_db
创建分片表
create table aopen_api_cdrreq(id int,name text,price int,uid int);
sharding_db=> 
sharding_db=> insert into aopen_api_cdrreq values (2,'2',2,2);
INSERT 0 1
sharding_db=> insert into aopen_api_cdrreq values (3,'21',2,2);
INSERT 0 1
sharding_db=> insert into aopen_api_cdrreq values (3,'2',2,2);
INSERT 0 1
sharding_db=> 
sharding_db=> insert into aopen_api_cdrreq values (4,'221',2,2);
INSERT 0 1
sharding_db=>  create index  on aopen_api_cdrreq(id);
CREATE INDEX

PanWeiDB=# \q
shell$ gsql -d data_310 -r 
gsql ((PanWeiDB(openGauss) 1.0.0 build 9a7e96bc) compiled at 2022-10-15 20:54:36 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

data_310=# \d
                               List of relations
 Schema |        Name        | Type  | Owner |             Storage              
--------+--------------------+-------+-------+----------------------------------
 public | aopen_api_cdrreq_0 | table | dbmt  | {orientation=row,compression=no}
 public | aopen_api_cdrreq_1 | table | dbmt  | {orientation=row,compression=no}
(2 rows)

data_310=# select * from aopen_api_cdrreq_1;
 id | name | price | uid 
----+------+-------+-----
(0 rows)

data_310=# select * from aopen_api_cdrreq_0;
 id | name | price | uid 
----+------+-------+-----
(0 rows)

shell$ gsql -d data_312 -r 
gsql ((PanWeiDB(openGauss) 1.0.0 build 9a7e96bc) compiled at 2022-10-15 20:54:36 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

data_312=# select * from aopen_api_cdrreq_0;
 id | name | price | uid 
----+------+-------+-----
  2 | 2    |     2 |   2
(1 row)

data_312=# 

标签:ptk,dbmt,磐维,PanWeiDB,shardingsphere,omm,15400,10.10,data
From: https://www.cnblogs.com/xinxin1222/p/18021908

相关文章

  • ptk 安装无法使用gs_checkperf
    目录适用范围问题概述问题原因解决方案适用范围ptk安装的mogdb、opengauss、磐维问题概述近期生产环境新上来一套ptk安装的磐维数据库(opengauss3.0),在巡检的时候发现gs_checkperf这个命令执行报错,用om的安装方式可以正常运行。[omm@panweia1postgresql]$[omm@panweia1......
  • 磐维2.0 之pg_stat_statements插件
    目录一、概念描述二、安装插件三、pg_stat_statements视图四、pg_stat_statements相关参数五、测试验证一、概念描述pg_stat_statements是pg的一个扩展插件,通常用于统计数据库的资源开销,分析TOPSQL,找出慢查询。二、安装插件testdb=#testdb=#createextensionpg_stat_sta......
  • shardingsphere springboot application.yml配置
    shardingsphere springbootapplication.yml配置 spring:sharding-sphere:datasource:names:mastermaster:type:com.zaxxer.hikari.HikariDataSourcedriver-class-name:com.mysql.cj.jdbc.Driverjdbc-url:jdbc:mysql:......
  • ShardingSphere-JDBC学习
    springBoot 引入maven<dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.0.0-RC1<......
  • springboot~shardingsphere在非spring框架中的使用
    shardingsphere已经很方便的被springboot集成了,你只要引入sharding-jdbc-spring-boot-starter这个包就可以了,而如果是原生java的话,你就需要自己去实现了,主要是重新定义数据源,定义规则等问题,本文主要介绍原生环境下的shardingsphere的使用。依赖引用<dependencies><!--......
  • Mac上运行windows软件-GPTK
    GPTK官网https://www.applegamingwiki.com/wiki/Game_Porting_Toolkit使用Whisky安装GPTKWhiskyhttps://github.com/Whisky-App/Whisky把下载的Whisky.app移动到应用程序中运行,选择下一步开始安装GPTK......
  • 理解 Apache ShardingSphere 的 SPI,以及为何它比 Dubbo 更简单
    为什么学习ShardingSphere的SPI?你可能已经熟悉Java和Dubbo的SPI(ServiceProviderInterface)机制,所以你可能会想:“为什么要学习ShardingSphere的SPI机制呢?”原因非常简单:ShardingSphere的源代码更简单、更容易适应。ShardingSphere的SPI机制执行非常顺畅,日常操作所......
  • shardingSphere-JDBC 多数据源主从+切片配置
    4.x版本配置maven依赖<dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.1.1</version></dependency>application配置spri......
  • SpringBoot 整合 ShardingSphere JDBC、MySQL分表实例
    1.概述ShardingSphere分为ShardingSphere-JDBC、ShardingSphere-Proxy、ShardingSphere-Sidecar(TODO)。ShardingSphere官方手册:传送门;这里使用的是ShardingSphere-JDBC,ShardingSphere-JDBC为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar......
  • ShardingSphere学习笔记
    MySQL7的root密码校验方式:mysql_native_passwordMySQL8的root密码校验方式:caching_sha2_password将mysql8的root密码校验方式改为7的:ALTERUSER'root'@'%'IDENTIFIEDWITHmysql_native_passwordBY'123456'; 进入docker容器:防止中文显示乱码:dockerexec-itxxx-na......