目录
一、概览
1.1、 ShardingSphere-Proxy
ShardingSphere-Proxy是透明化的数据库代理端,支持配置文件和DistSQL两种配置方式,作为代理部署在数据库上层,对应用层透明,兼容基于MySQL/PostgreSQL协议的数据库及客户端
1.分库
在水平分库中,就是将数据库中的表,存到不同的数据库,但是不同库的表数量和结构是一样的,只是每个库的数据都不一样,没有交集,库的并集是全量数据
在垂直分库中,以表为依据,按照业务归属不同,将不同的表拆分到不同的库中,不同的库存储的可能是不同的表,库的并集是全量数据
2.分表
水平分表就是将一张表分为多张表,表的结构都一样,每个表的数据都不一样,没有交集,所有表的并集是全量数据;
垂直分表将一张表字段拆分为不同的表,合并起来就是整个全量数据,但是这种可以归属于设计之初的设计缺陷
虽然使用分库分表可以一定程度解决上面所说的问题,但是分了之后也有可能再变大,总不能一直无脑拆分下去把,此时应该使用读写分离,也就是说读写分离应该是在分库分表的基础之上来实施的。
1.2、 ShardingSphere特性
ShardingSphere支持丰富的分布式场景所需功能,表1列出了这些特性和定义,后面章节会展开介绍。
表1.产品功能
特性 | 定义 | 说明 |
---|---|---|
数据分片 | ShardingSphere基于底层数据库提供分布式数据库解决方案,可以水平扩展计算和存储。 | |
读写分离 | 基于对SQL语义理解及对底层数据库拓扑感知能力,提供灵活的读写流量拆分和读流量负载均衡。 | |
分布式事务 | 支持XA和BASE的混合事务引擎,ShardingSphere 提供在独立数据库上的分布式事务功能,保证跨数据源的数据安全。 | |
高可用 | ShardingSphere提供基于原生或 Kubernetes 环境下数据库集群的分布式高可用能力。 | |
数据加密 | ShardingSphere提供完整、透明、安全、低成本的数据加密解决方案。 | |
影子库 | 在全链路压测场景下,ShardingSphere支持不同工作负载下的数据隔离,避免测试数据污染生产环境。 | |
数据库网关 | 屏蔽应用与底层多元化数据库之间连接,同时为不同的业务场景提供统一的访问协议和语法体系。 | 实验特性 |
数据迁移 | ShardingSphere提供跨数据源的数据迁移能力,并可支持重分片扩展。 | 仅支持单机到分布式迁移 |
流量治理 | 在故障中为组件提供细粒度的控制能力,并通过熔断,限流等机制提供自愈的可能 | |
可观察性 | 通过 Agent模块为应用提供可观察性的能力,支持Tracing(链路跟踪)、 Metrics(指标监控)和 Logging(日志) | Proxy组件支持 |
联邦查询 | ShardingSphere提供跨数据源的复杂查询分析能力,实现跨源的数据关联与聚合。 |
ShardingSphere功能丰富全面,但个别实现还不完善,在使用方面也有一些限制:
-
权限管理粒度仅支持库级别,不支持表、列粒度的权限控制;
-
仅支持单库到分布式的数据迁移分片,且不能在同一个库内做迁移;
-
不支持弹性伸缩,不支持数据重分布;
-
审计功能目前仅支持一种拦截算法(查询时是否指定了分片列作为过滤条件),暂未支持统计等功能;
-
读写分离无法感知延迟来智能调整路由,目前开源版本仅支持固定规则的负载均衡路由策略;
-
数据加密仅支持基础的基于列的加密算法,不支持多密钥管理,复杂密态等;
-
语法兼容性还需完善:目前支持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