Gauss数据库配置
适配版本
4.7.8.3
之后的版本
配置步骤
Maven配置
去华为官网下周驱动包:gsjdbc4.jar;
https://support.huaweicloud.com/mgtg-dws/dws_01_0032.html
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>gsjdbc</artifactId>
<version>4</version>
<scope>system</scope>
<!-- 下面两种方式都可以-->
<systemPath>${pom.basedir}/libs/gsjdbc4.jar</systemPath>
<!--<systemPath>/Users/wangxian/java-tools/guassdb/gsjdbc4.jar</systemPath>-->
</dependency>
JDBC连接配置
pamirs:
datasource:
pamirs:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: org.postgresql.Driver
url: jdbc:postgresql://127.0.0.1:5432/pamirs?currentSchema=demo
username: XXXXXX
password: XXXXXX
initialSize: 5
maxActive: 200
minIdle: 5
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
asyncInit: true
base:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: org.postgresql.Driver
url: jdbc:postgresql://127.0.0.1:5432/pamirs?currentSchema=demo_base
username: XXXXXX
password: XXXXXX
initialSize: 5
maxActive: 200
minIdle: 5
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
asyncInit: true
连接url配置
点击查看官方文档:官方文档
url格式
jdbc:postgresql://${host}:${port}/${database}?currentSchema=${schema}
在pamirs连接配置时,${database}和${schema}必须完整配置,不可缺省。
其他连接参数如需配置,可自行查阅相关资料进行调优。
方言配置
pamirs方言配置
pamirs:
dialect:
ds:
base:
type: GaussDB
version: 5
majorVersion: 5.0.1
pamirs:
type: GaussDB
version: 5
majorVersion: 5.0.1
数据库版本 | type | version | majorVersion |
---|---|---|---|
5.x | GaussDB | 5 | 5.0.1 |
PS:由于方言开发环境为5.0.1
版本,其他类似版本(5.x)原则上不会出现太大差异,如出现其他版本无法正常支持的,可在文档下方留言。
schedule方言配置
pamirs:
event:
enabled: true
schedule:
enabled: true
dialect:
type: GaussDB
version: 5
major-version: 5.0.1
type | version | majorVersion |
---|---|---|
GaussDB | 5 | 5.0.1 |
PS:由于schedule
的方言在多个版本中并无明显差异,目前仅提供一种方言配置。
其他配置
逻辑删除的值配置
pamirs:
mapper:
global:
table-info:
logic-delete-value: (EXTRACT(epoch FROM CURRENT_TIMESTAMP) * 1000000 + EXTRACT(MICROSECONDS FROM CURRENT_TIMESTAMP))::bigint
Gauss数据库用户初始化及授权
-- init root user (user name can be modified by oneself)
-- 创建用户root
CREATE USER wangxian PASSWORD 'wx@123456';
-- if using automatic database and schema creation, this is very important.
-- 给用户root指定系统权限CREATEDB
ALTER USER wangxian CREATEDB;
SELECT * FROM pg_roles;
-- if using gauss database, this authorization is required.
GRANT CREATE ON DATABASE pamirs TO root;
从mysql迁移数据到Gauss数据库的注意事项
由于mysql自增id的配置在建表语句,但是Gauss是独立一张序列表记录自增id的,所以同步完数据后需要对自增id部分的数据独立迁移
目前平台内置模块内用自增id的模型有:
base
模块的LeafAlloc
base
模块的WorkerNode
trigger
模块的PamirsSchedule
eip
模块的EipLog
designerCommon
模块的ModelMetaChangeRecord
迁移sql示范,其中的库名请根据实际情况修改,没有依赖的模块也无需执行对应sql,业务模型如需迁移也可参考该sql
SELECT setval('demo_base.leaf_alloc_id_seq', (select id from demo_base.leaf_alloc order by id desc limit 1), true);
SELECT setval('demo_base.base_worker_node_id_seq', (select id from demo_base.base_worker_node order by id desc limit 1), true);
SELECT setval('demo_pamirs.pamirs_schedule_0_id_seq', (select id from demo_pamirs.pamirs_schedule_0 order by id desc limit 1), true);
SELECT setval('demo_pamirs.eip_eip_log_id_seq', (select id from demo_pamirs.eip_eip_log order by id desc limit 1), true);
SELECT setval('demo_pamirs.common_model_meta_change_record_id_seq', (select id from demo_pamirs.common_model_meta_change_record order by id desc limit 1), true);
Gauss如何手动设置自增序列的值
使用setval
函数
setval
函数可以直接设置序列的当前值。它适用于需要精确控制序列值的情况。
setval
的第一个参数是序列的名称。- 第二个参数是要设置的值(例如10)。
- 第三个参数表示是否将
is_called
标志设置为true
,即下次调用nextval
时返回设置的值。
示例操作
假设你的序列全名是demo_pamirs.pamirs_schedule_0_id_seq
,其中demo_pamirs为库名,以下是具体操作步骤:
- 重置序列的当前值
# 设置序列为10 SELECT setval('demo_pamirs.pamirs_schedule_0_id_seq', 10, true);
- 验证序列的新值:
# last_value字段的值为10 SELECT * FROM demo_pamirs.pamirs_schedule_0_id_seq;
本文来自投稿,不代表Oinone社区立场,如若转载,请注明出处:https://doc.oinone.top/backend/6424.html