首页 > 数据库 >GBase8c 分布式数据库安装步骤

GBase8c 分布式数据库安装步骤

时间:2024-03-26 19:11:24浏览次数:36  
标签:10.0 数据库 gbase port host GBase8c 节点 分布式

GBase8c 分布式数据库安装步骤

GBase8c技术支持分布式安装数据库

简介

  GBase 8c 多模多态企业级分布式数据库具备高性能、高可用、弹性伸缩、高安全性等特性,可以部署在物理机、虚拟机、容器、私有云和公有云,为关键行业核心系统、互联网业务系统和政企业务系统提供安全、稳定、可靠的数据存储和管理服务。GBase 8c支持行存、列存、内存等多种存储模式;支持单机、主备式、分布式等多种部署形态。
本文档简述如何安装GBase 8c分布式数据库,以及如何连接、使用数据库。GBase 8c数据库的安装包及版本说明,请通过技术人员申请获取或在官网下载[下载路径]https://www.gbase.cn/download/gbase-8c?category=INSTALL_PACKAGE。


一、环境配置

   		groupadd gbase  ##创建用户组
   		useradd -m -d /home/gbase gbase -g gbase  ##创建用户			

  配置sudo,执行visudo,在root ALL=(ALL) ALL下面插入一行gbase ALL=(ALL) NOPASSWD:ALL 保存后退出,则完成对gbase用户的sudoer配置。

   		 systemctl status firewalld
   		 systemctl stop  firewalld
   		 systemctl disable firewalld
			sudo vim /etc/selinux/config

  打开配置文件,将SELINUX参数设置为disabledSELinux status: disabled

  • 第一种: ntp

  GBase 8c分布式数据库系统,需要各节点间时间同步,来保证数据库一致性。一般采用NTP服务方式来保证各节点间的时间同步。检查和配置NTP服务的操作步骤如下:

  • 步骤1 首先检查服务器是否安装NTP服务以及是否正常运行
● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-12-02 19:26:50 CST; 1 weeks 1 days ago
 Main PID: 14440 (ntpd)
   CGroup: /system.slice/ntpd.service
           └─14440 /usr/sbin/ntpd -u ntp:ntp -g

  如果显示running,则表示服务正在运行,则跳过步骤2,直接执行后续步骤。

  • 步骤2 如NTP服务未处于正常运行状态,考虑如下操作

  如果系统可以与外网通信,可以使用如下命令与NTP服务器同步:
[gbase@gbase8c ~]$ sudo ntpdate asia.pool.ntp.org

  • 步骤3 如果服务器所在网络无法与外网通信,需要手动配置NTP服务

  首先确认是否安装ntp:
[gbase@gbase8c ~]$ rpm -qa|grep ntp
  若已安装ntp应返回如下内容:
[gbase@gbase8c ~]$ ntp-4.2.6p5-29.el7.centos.x86_64
[gbase@gbase8c ~]$ ntpdate-4.2.6p5-29.el7.centos.x86_64
  若没有ntp显示,则应删除原有ntpdate后重新安装ntp:
[gbase@gbase8c ~]$ sudo yum -y remove ntpdate-4.2.6p5-29.el7.centos.x86_64
[gbase@gbase8c ~]$ sudo yum -y install ntp

  • 步骤4 配置NTP服务

  安装完毕后,在所有节点上配置NTP服务。选定NTP服务主节点,一般选用主GTM节点作为NTP主节点。NTP节点配置通过修改/etc目录下的ntp.conf配置文件实现,分为主节点配置及其他节点配置。
修改各节点上ntp.conf配置文件,命令如下:
[gbase@gbase8c ~]$ sudo vi /etc/ntp.conf
  主节点修改配置文件,涉及部分配置文件及修改位置如下:

#Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 10.0.7.16 nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1

# Hosts on local network are less restricted.
restrict 10.0.7.255 mask 255.255.248.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# 注释掉以下四行
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 127.127.1.0
Fudge 127.127.1.0 stratum 10

  NTP其他节点修改配置文件,修改涉及部分配置文件及修改位置如下:

#Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 10.0.7.17 nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1

# Hosts on local network are less restricted.
restrict 10.0.7.255 mask 255.255.248.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# 注释掉以下四行
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 10.0.7.16
Fudge 10.0.7.16 stratum 10
  • 步骤5 启动NTP服务,并设置开机自启动。

  全部节点配置完成后,在所有节点启动NTP服务。
[gbase@gbase8c ~]$ sudo systemctl start ntpd.service
  设置开机自启动:
[gbase@gbase8c ~]$ sudo systemctl enable ntpd.service
注意

  1. 某些虚拟机环境下无法配置NTP开机自启动,需要每次重启后进行手工启动。
  2. 时间同步会影响数据库集群部署及一致性操作,须提前配置生效。
  • 步骤6 配置完毕后,在各节点执行以下命令,查看NTP服务是否连通。
[gbase@gbase8c ~]$ ntpstat
NTP主节点应返回:
synchronised to local net (127.127.1.0) at stratum 6
   time correct to within 11 ms
   polling server every 64 s
NTP其他节点应返回:
synchronised to NTP server (10.0.7.16) at stratum 7
   time correct to within 57 ms
   polling server every 1024 s

注意
  NTP服务器配置完毕后,需要等待5~20分钟才能完成时间同步,如果在配置后提示unsynchronised time server re-starting polling server every 8 s或unsynchronised polling server every 8 s均属正常,等待一段时间再次执行ntpstat命令查看即可。

  • 第二种 :chrony
    手动搭建chrony时间同步服务器,一般选用主GTM节点作为服务端。
  • 步骤一:安装chrony
# Cneos7默认已安装,chrony守护程序 的默认位置是/usr/sbin/chronyd。命令行实用程序将安装到/usr/bin/chronyc
yum install chrony
# 启动命令
systemctl start chronyd
systemctl status chronyd
systemctl enable chronyd
  • 步骤二 :服务端配置(主GTM服务器配置)
# Centos7.6已默认安装,查看状态
systemctl status  chronyd
# 注释其他server开头的配置,添加阿里云NTP公共时间同步服务器或者本地GTM服务器
vim /etc/chrony.conf
添加内容
server ntp.aliyun.com iburst   #或为server 10.0.7.16 iburst
allow 0.0.0.0/0
local stratum 10
# 重启chronyd
systemctl restart  chronyd
# 查看时间同步源,查看时间同步进度
chronyc sources –v
  • 步骤三:客户端配置(其他节点服务器)
 # Centos7.6已默认安装,查看状态
systemctl status  chronyd
# # 注释其他server开头的配置,添加本地NTP公共时间同步服务器
vim /etc/chrony.conf
server 10.0.7.16 iburst
# 重启chronyd
systemctl restart  chronyd
# 查看时间同步源,查看时间同步进度
chronyc sources –v

  在所有节点创建gbase用户免密登录。需在所有节点使用gbase用户,进行以下操作。
  (1) 创建免密配置文件
[gbase@gbase8c ~]$ mkdir ~/.ssh
[gbase@gbase8c ~]$ chmod 700 ~/.ssh
  (2) gbase用户生成密钥文件:
[gbase@gbase8c ~]$ ssh-keygen -t rsa
  将公钥文件上传至同集群所有节点(包括本节点),即可实现免密登录(此操作需输入密码):
[gbase@gbase8c ~]$ssh-copy-id [email protected]
[gbase@gbase8c ~]$ssh-copy-id [email protected]
[gbase@gbase8c ~]$ssh-copy-id [email protected]
  (3) 验证互信
  在任一节点服务器,通过ssh命令验证是否已实现互信免密。
  例如,在10.0.7.16服务器上,通过ssh命令登录其他两个服务器:
[gbase@gbase8c_7_16 ~]$ ssh 10.0.7.17
[gbase@gbase8c_7_16 ~]$ ssh 10.0.7.18
  若直接返回如下信息,而无需输入密码,即为成功。

二、yml配置

  修改配置文件中节点参数信息。例如:

gha_server:
  - gha_server1:
      host: 10.0.7.16
      port: 20001
dcs:
  - host: 10.0.7.16
    port: 2379
  - host: 10.0.7.17
    port: 2379
  - host: 10.0.7.18
port: 2379
gtm:
  - gtm1:
      host: 100.0.7.16
      agent_host: 10.0.7.16
      role: primary
      port: 6666
      agent_port: 8001
      work_dir: /home/gbase/data/gtm/gtm1
  - gtm2:
      host: 100.0.7.17
      agent_host: 10.0.7.17
      role: standby
      port: 6666
      agent_port: 8002
      work_dir: /home/gbase/data/gtm/gtm2
coordinator:
  - cn1:
      host: 100.0.7.17
      agent_host: 10.0.7.17
      role: primary
     #syncMode: sync
      port: 5432
      agent_port: 8003
      work_dir: /home/gbase/data/coord/cn1
  - cn2:
      host: 100.0.7.18
      agent_host: 10.0.7.18
      role: primary
      port: 5432
     #syncMode: sync
      agent_port: 8004
      work_dir: /home/gbase/data/coord/cn2
datanode:
  - dn1:
      - dn1_1:
          host: 100.0.7.17
          agent_host: 10.0.7.17
          role: primary
          port: 15432
          agent_port: 8007
          work_dir: /home/gbase/data/dn1/dn1_1
      - dn1_2:
          host: 100.0.7.18
          agent_host: 10.0.7.18
          role: standby
          port: 15432
          agent_port: 8007
          work_dir: /home/gbase/data/dn1/dn1_2
      - dn1_3:
          host: 100.0.7.16
          agent_host: 10.0.7.16
          role: standby
          port: 15432
          agent_port: 8007
          work_dir: /home/gbase/data/dn1/dn1_3
  - dn2:
      - dn2_1:
          host: 100.0.7.18
          agent_host: 10.0.7.18
          role: primary
          port: 20010
          agent_port: 8008
          work_dir: /home/gbase/data/dn2/dn2_1
          # numa:
          #   cpu_node_bind: 0,1
          #   mem_node_bind: 0,1
      - dn2_2:
          host: 100.0.7.16
          agent_host: 10.0.7.16
          role: standby
          port: 20010
          agent_port: 8008
          work_dir: /home/gbase/data/dn2/dn2_2
          # numa:
          #   cpu_node_bind: 2
          #   mem_node_bind: 2
      - dn2_3:
          host: 100.0.7.17
          agent_host: 10.0.7.17
          role: standby
          port: 20010
          agent_port: 8008
          work_dir: /home/gbase/data/dn2/dn2_3
          # numa:
          #   cpu_node_bind: 3
          #   mem_node_bind: 3
env:
  # cluster_type allowed values: multiple-nodes, single-inst, default is multiple-nodes
  cluster_type: multiple-nodes
  pkg_path: /home/gbase/gbase_package
  prefix: /home/gbase/gbase_db
  version: V5_S3.0.0B01
  user: gbase
  port: 22
  third_ssh: false
#constant:
#  virtual_ip: 10.0.7.254/24
#  virtual_nic: ens224

其中,必选参数说明如下:
 host参数:指定此节点由数据面节点(gtm、cn、dn)访问连接的IP地址。
 agent_host参数:指定此节点由控制面节点(gha_server、dcs)访问连接的IP地址。可与host参数相同,表示数据面和控制面均通过同一IP地址访问连接此节点。
注意
 当主机为双网卡时,建议控制面设置在千兆网卡,数据面设置在万兆网卡,以避免大流量数据影响高可用报文的实时性。
 role参数:集群节点角色类型。可选值为primary或standby。在gtm、coordinator、datanode节点参数中,为必选字段。
 port参数:集群节点连接端口号。
 agent_port参数:高可用端口号。
 syncMode参数:仅CN为只读(standby)时,需设置此项。可选值为sync、async。其中sync(同步)表示只读CN在同步备机进行读操作;async表示只读CN在异步备机进行读操作。
 work_dir参数:集群节点数据存放目录。
 cluster_type参数:指定集群的类型。部署分布式集群时,指定参数为multiple-nodes;部署主备式集群时,指定参数为single-inst。
 pkg_path参数:指定数据库安装包的存放路径。与5.2准备安装包中安装目录相同。
 prefix参数:指定运行目录路径。安装时后台自动扫描该目录是否已存在,若不存在,则自动创建;若已存在,请注意需确保owner为gbase用户。
 version参数:指定安装包版本。格式为V5_S3.0.0BXX,XX为具体版本号,可根据安装包名称相应修改。如该参数配置错误,将找不到安装包而导致安装失败。
 user参数:指定操作系统用户gbase。一般无需修改。
 port参数:指定ssh端口。默认为22,一般无需修改。
 third_ssh参数:默认值为false。当使用第三方ssh工具时,将third_ssh参数设置为true。
注意
 可能受资源限制等因素影响,需重复使用同一节点,保证其仅承担一个高可用组的主节点角色。且避免端口复用而报错。

三、数据库安装

  • 1、创建安装目录
      例如,数据库安装目录为/home/gbase/gbase_package,则具体操作如下:
[root@gbase8c ~]$ su - gbase
[gbase@gbase8c ~]$ mkdir -p /home/gbase/gbase_package
[gbase@gbase8c ~]$ cd /home/gbase/
  • 2、解压安装包
      例如,数据库安装目录为/home/gbase/gbase_package,则具体操作如下:
[gbase@gbase8c gbase_package]$ tar -zxvf GBase8cV5_S3.0.0B01_centos7.8_x86_64.tar.gz

  对解压得到的GBase8cV5_S3.0.0B01_Centos7.8_x86_64_om.tar.gz安装包,继续进行解压。

[gbase@gbase8c gbase_package]$ tar -zxvf GBase8cV5_S3.0.0B01_Centos7.8_x86_64_om.tar.gz

  解压后gbase.yml会在当前目录。

  • 3.数据库安装
      完成两层安装包解压后,会在安装目录下生成script子目录。进入script下执行gha_ctl命令安装GBase 8c数据库。语法格式为:
./gha_ctl install <-c cluster> <-p confpath>

其中参数说明:
 -c参数:指定数据库名称,为可选字段。缺省默认值gbase。
 - -p参数:指定配置文件保存路径,为可选字段。缺省默认值/home/gbase。
注意
 - 集群名需与配置文件名保持一致。
 - 安装完成后,不要删除gha_ctl命令文件所在的script目录,否则将导致运维命令丢失。

  • 示例

  部署命令如下:

[gbase@gbase8c ~]$ cd /home/gbase/gbase_package/script/
[gbase@gbase8c script]$ ./gha_ctl install -p /home/gbase/ -c gbase
返回部署成功信息:
{
    "ret":0,
    "msg":"Success"
}

四、参数配置及相关命令

1、参数修改

  支持远程连接相关参数修改。
  将会设置白名单、listen_addresses、password_encryption_type三个参数。

  • listen_addresses

  参数说明:声明服务器侦听客户端的TCP/IP地址
  修改命令如下:需要修改CN、GTM、DN所有节点

 gs_guc set -N all -I all -Z coordinator -c "listen_addresses = '*'"
 gs_guc set -N all -I all -Z datanode -c "listen_addresses = '*'"
 gs_guc set -N all -I all -Z gtm -c "listen_addresses = '*'"
  • password_encryption_type

  参数说明:该字段决定采用何种加密方式对用户密码进行加密存储。修改此参数的配置不会自动触发已有用户密码加密方式的修改,只会影响新创建用户或修改用户密码操作。
  该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:0、1、2、3
  •0表示采用md5方式对密码加密。
  •1表示采用sha256和md5两种方式分别对密码加密。
  •2表示采用sha256方式对密码加密。
  •3表示采用sm3方式对密码加密。
  修改命令如下:需要修改CN、GTM、DN所有节点

gs_guc reload -N all -I all -Z coordinator -c "password_encryption_type=1"
gs_guc reload -N all -I all -Z gtm -c "password_encryption_type=1"
gs_guc reload -N all -I all -Z datanode -c "password_encryption_type=1"
  • 白名单

  修改命令如下:需要修改CN、GTM、DN所有节点

gs_guc reload -N all -I all -Z coordinator -h "host all all 0.0.0.0/0 md5"
gs_guc reload -N all -I all -Z gtm -h "host all all 0.0.0.0/0 md5"
gs_guc reload -N all -I all -Z datanode -h "host all all 0.0.0.0/0 md5"

2、相关命令

[1]

数据库启动

语法格式:gha_ctl start all -l dcslist <-c cluster>
样例:
gha_ctl start all -l http://10.0.7.16:2379   #IP端口为yml中dcs的任意ip和端口

数据库状态

语法格式:gha_ctl monitor all -l dcslist <-c cluster>
样例:
gha_ctl monitor all -l http://10.0.7.16:2379 -HI  #IP端口为yml中dcs的任意ip和端口

数据库停止

语法格式:gha_ctl stop all -l dcslist <-c cluster>
样例:
gha_ctl stop all -l http://10.0.7.16:2379   #IP端口为yml中dcs的任意ip和端口

数据库连接

  建议:分布式架构读写请连接CN
语法样式:gsql -d dbname -p port <-U user_name> <-h hostip>
 -d参数指定要连接到的数据库名称。首次连接可以指定生成的默认数据库postgres。
 -p参数指定通过节点哪个端口号连接。可查看安装使用的yml文件。
 -U参数指定以哪个数据库用户身份连接,权限可能不同。缺省默认为gbase。
 -h参数指定数据库节点所在的服务器IP。缺省默认为当前服务器IP。
例如,以最简便的方式,通过CN节点连接到postgres数据库,执行以下命令:
[gbase@gbase8c ~]$gsql -d postgres -p 5432

五、数据库基本操作

CREATE DATABASE database_name
    [ [ WITH ] { [ OWNER [=] user_name ] |
               [ TEMPLATE [=] template ] |
               [ ENCODING [=] encoding ] |
               [ LC_COLLATE [=] lc_collate ] |
               [ LC_CTYPE [=] lc_ctype ] |
               [ DBCOMPATIBILITY [=] compatibilty_type ] |
               [ TABLESPACE [=] tablespace_name ] |
               [ CONNECTION LIMIT [=] connlimit ]}[...] ];
参数说明
•database_name
数据库名称。

取值范围:字符串,要符合标识符的命名规范。

•OWNER [ = ] user_name
数据库所有者。缺省时,新数据库的所有者是当前用户。

取值范围:已存在的用户名。

•TEMPLATE [ = ] template
模板名。即从哪个模板创建新数据库。openGauss采用从模板数据库复制的方式来创建新的数据库。初始时,openGauss包含两个模板数据库template0、template1,以及一个默认的用户数据库postgres。

取值范围:仅template0。

•ENCODING [ = ] encoding
指定数据库使用的字符编码,可以是字符串(如'SQL_ASCII')、整数编号。

不指定时,默认使用模版数据库的编码。模板数据库template0和template1的编码默认与操作系统环境相关。template1不允许修改字符编码,因此若要变更编码,请使用template0创建数据库。

常用取值:GBK、UTF8、Latin1。
  • 相关示例:
 - 	5.1 登陆数据库
		gsql -d postgres -r
	5.2 查看数据库
		\l+
	5.3 创建数据库
		create database tpcc_test ENCODING 'UTF8' LC_COLLATE'en_US.UTF-8' LC_CTYPE'en_US.UTF-8' owner tpcc_user;
	5.4 创建用户并授SYSADMIN权
		create user tpcc_user identified by 'Gbase_123';
		grant all privileges to tpcc_user;
	5.5 创建表
		create table t1( a int,b varchar(10)) DISTRIBUTE by hash(a) ; --分布表
		create table t2(id int, name varchar) distribute by replication; --复制表
	5.6 创建扩展(postgis)
		create extension postgis;
	5.7 JDBC:
	    url:jdbc:postgresql://172.16.5.103:5432/gbase
        类名:org.postgresql.Driver
    5.8 创建node group
    	create node group defaut_nodegroup with(dn1,dn2);
    5.9 copy
    	\copy tablename from '/home/gbase/customer.csv'with CSV DELIMITER '|';
    5.10 insert 
    	insert into t2 values(1,'test1'),(2,'test2'),(3,'test3');
    5.11 select 
        --CN 查询
        select * from t2;   
        --查询指定DN组中的数据
        EXECUTE DIRECT ON (dn1) $$select * from t2$$;
        EXECUTE DIRECT ON (dn2) $$select * from t2$$;
        EXECUTE DIRECT ON (hg3) $$select * from t2$$;

六、相关名词介绍

简称/术语 说明
多模多态分布式数据库 GBase 8c是基于openGauss3.0构建的一款多模多态的分布式数据库,支持行存、列存、内存等多种存储模式和单机、主备式、分布式等多种部署形态。GBase 8c具备高性能、高可用、弹性伸缩、高安全性等特性,可以部署在物理机、虚拟机、容器、私有云和公有云,为关键行业核心系统、互联网业务系统和政企业务系统提供安全、稳定、可靠的数据存储和管理服务。
分布式事务 分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上
原子性 整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性 在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。
隔离性 两个事务的执行是互不干扰的,一个事务不可能看到其他事务运行时,中间某一时刻的数据。
持久性 在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。
DN Data Node 数据节点。数据节点是数据实际存放的节点,保存表和索引等数据库对象。数据节点接收协调器下发的读写操作,并将结果返回给协调器处理。数据节点间也可以通信,进行跨数据节点的数据重分布和联合查询。
CN Coordinator 协调器,协调器管理和客户端的连接,对客户端发来的SQL 进行解析, 生成执行计划,把执行计划发到相应的数据节点进行读写操作,并将结果汇总返回 给客户端。对于涉及跨 DN 的数据写操作,协调者还负责协调所有参与者进行两阶段提交。
GTM GTM全局事务管理器。全局事务管理器管理全局事务号和活动事务状态,确保系统的全局一致性。
Gha_Server 高可用服务。主要是管理监测各个节点,主备节点故障时进行切换。
Dcs 是存储集群配置和集群运行信息,选择主leader

  1. 注:如要生效数据库相关命令需要source ~/.bashrc或者重新连接gbase用户

标签:10.0,数据库,gbase,port,host,GBase8c,节点,分布式
From: https://www.cnblogs.com/balon/p/18097367

相关文章

  • Oracle数据库入门第三课(函数)
    前面二白讲了一些简单的查询语句,仅仅知道查询语句的语法是不够的,要想实现更多的需求,更重要的是函数的使用,这节课我们简单说一下一些函数的使用。一、函数的分类什么叫做函数?函数就是用来实现某种功能的,提前声明好的代码块分类:•系统函数         ‣单行函数......
  • 数据库实验(一)SQL Server触发器
    目录触发器的定义触发器和存储过程的区别触发器的优点触发器的作用触发器的分类DML触发器DDL触发器登录触发器触发器的工作原理inserted表deleted表创建触发器编程要求测试要求: 实验代码:触发器的定义触发器是建立在触发事件上的。例如,对表执行INSERT、U......
  • 上传图片前端使用base64数据格式展示,后端数据库存储二进制文件
    添加时上传图片upload.render({elem:'#docImg',url:Feng.ctxPath+'/doctor/upload'//改成您自己的上传接口,before:function(obj){//预读本地文件示例,不支持ie8obj.preview(function(index,file,result){......
  • Go使用rocketmq实现分布式事务-demo
    本示例只是demo,没有接入mysqlrocketmq自行安装severpackagemainimport( "context" "fmt" "github.com/apache/rocketmq-client-go/v2" "github.com/apache/rocketmq-client-go/v2/primitive" "github.com/apache/rocketmq-clien......
  • Mysql的Innodb引擎--一起学习吧之数据库
    MySQL的InnoDB引擎是MySQL数据库管理系统中的一个重要的存储引擎,它通过提供事务支持、行级锁定、外键约束、MVCC、缓存、索引优化、数据恢复以及分区和表空间等功能,为数据库提供了高性能、高可靠性和高扩展性的解决方案。这使得InnoDB成为大多数MySQL应用的首选存储引擎。一、......
  • Oracle导出数据库与还原
    导出部分1.获取到Oracledirectory目录与实际电脑目录的映射2.CMD导出Oracle数据库DMP文件//expdp用户/密码@数据库监听地址schemas=表空间名称dumpfile=自定义名称.dmpdirectory=DATA_DIR(上面SQL中DIRECTORY_NAME选择一个导出的文件就会在对应的DIRECTORY_PATH......
  • 【IT老齐058】Zookeeper解决分布式系统商品库存超卖问题
    【IT老齐058】Zookeeper解决分布式系统商品库存超卖问题场景解决方案传统的synchronized是无效的,它只针对一个JVM进程内多个线程起到同步作用,对跨进程无效。利用数据库select...forupdate语句对库存进行锁定,依赖数据库自身特性,遇到跨库(分库分表)处理起来比较麻烦。利用......
  • Python数据库模块(sqlite3,SQLite3)
    一、sqlite命令创建数据库:在控制台sqlite3name.databases查看数据库.tables查看表格名databaseName.dump>dumpName将数据库存在文本文件dumpName中,恢复就用databaseName<dumpName;attachdatabase......
  • Jmeter压则数据库
    一、连接数据库有什么用用作参数据化数据(例如我们做的登录,要从数据库里面进行查询数据)清理垃圾数据(把没用的数据库里的数据进行清除)用作结果的断言(例如我们添加购物车下订单,检查接口返回的订单号,是否与数据库中生成的订单号一致)准备测试数据(通过数据库插入更多的数据)......
  • robotramework 连接数据库之PostgreSQL
    【情况描述】: 我在创建数据保存的时候,需要用到某个名称,而参数是这个名称对应的id,所以线要获取这个id,如下图数据库: --#  方案过程如下:#1、先导入库,本次我是用的是 PostgreSQL这个数据库,所以先安装该库;安装:pip install  psycopg2 2、编写代码; 3、获取该i......