磐维数据库(PanWeiDB),作为中国移动信息技术中心基于中国本土开源数据库打造的自研数据库产品,其内核能力基于华为openGauss开源软件,并进一步提升了系统稳定性。
磐维数据库简介磐维数据库(PanWeiDB)是中国移动信息技术中心首个面向ICT基础设施的自研数据库产品。其产品内核能力基于华为openGauss开源软件,并进一步提升了系统稳定性。磐维数据库2.0,具有高性能、高可靠、高安全、高兼容等特点,能够为集中式、分布式、云原生、一体机等多种应用场景提供强大支撑。
磐维数据库的安装与连接安装磐维数据库磐维数据库的安装过程较为复杂,涉及到创建用户组和用户、配置内核参数、配置NTP服务保证时间同步、配置互信、创建安装目录、上传数据库安装文件并解压、编辑分布式安装配置的yml文件等多个步骤。
连接磐维数据库磐维数据库可以通过命令行客户端工具(gsql)连接,也可以通过图形客户端工具(如DBeaver)连接。以下是通过gsql连接磐维数据库的示例:
代码语言:shell复制gsql -d hr -p 15400 -U cmdbuser -r通过上述命令,我们可以以操作系统用户panweidb登录数据库主节点,并连接到数据库。
磐维数据库的基本语法用户查询模式在JDBC中,可以设置currentSchema参数来指定查询模式:
代码语言:java复制jdbc:panweidb://ip:port/database_name?currentSchema=schema_name更好的方式是在数据库服务端,对业务db或者user进行永久性设置,参考命令如下:
代码语言:sql复制alter database my_db set search_path = my_schema_name;
alter user my_user set search_path = my_schema_name;
alter user my_user in database my_db set search_path to my_schema_name;客户端编码如果客户端编码与数据库服务端编码不一致,可以显式设置客户端编码。
查询表数据使用gsql查询表数据的基本语法如下:
代码语言:sql复制SELECT * FROM table_name;常用运维管理SQL命令以下是一些常用的运维管理SQL命令:
查看集群状态:gs_om -t status --detail启动数据库集群:gs_om -t start停止数据库集群:gs_om -t stop重启数据库集群:gs_om -t restart查询磐维数据库版本:SELECT pw_version();查询opengauss版本:SELECT opengauss_version();查询PG版本:SELECT version();磐维数据库的upsert语法磐维数据库支持upsert功能,允许DML语句插入一行数据或者在现存行的基础上更新数据行。以下是两种风格的upsert语法:
Oracle风格的upsert语法代码语言:sql复制INSERT INTO table_name (column1, column2) VALUES (value1, value2) ON DUPLICATE KEY UPDATE column2 = EXCLUDED.column2;PG风格的upsert语法代码语言:sql复制INSERT INTO table_name (column1, column2) VALUES (value1, value2) ON CONFLICT(column1) DO UPDATE SET column2 = EXCLUDED.column2;使用示例以下是PG风格的upsert使用示例:
代码语言:sql复制CREATE TABLE test_upsert (id INT PRIMARY KEY, code VARCHAR UNIQUE, info VARCHAR);
INSERT INTO test_upsert (id, code, info) VALUES (1, 'code1', 'info');
-- 再次插入id为1的数据时使用upsert语句
INSERT INTO test_upsert (id, code, info) VALUES (1, 'code1', 'info extra1')
ON CONFLICT(id) DO UPDATE SET info = EXCLUDED.info;